Verbindingstekenreeks voor Azure Storage configureren

Een verbindingsreeks bevat de autorisatiegegevens die vereist zijn voor uw toepassing om tijdens runtime toegang te krijgen tot gegevens in een Azure Storage-account met behulp van autorisatie voor gedeelde sleutels. U kunt verbindingsreeks configureren voor:

  • Verbinding maken naar de Emulator van de Azurite-opslag.
  • Toegang tot een opslagaccount in Azure.
  • Toegang tot opgegeven resources in Azure via een Shared Access Signature (SAS).

Zie Toegangssleutels voor opslagaccounts beheren voor meer informatie over het weergeven van toegangssleutels voor uw account en het kopiëren van een verbindingsreeks.

Uw toegangssleutels beveiligen

Toegangssleutels voor opslagaccounts bieden volledige toegang tot de configuratie van een opslagaccount, evenals de gegevens. Wees altijd voorzichtig met het beveiligen van uw toegangssleutels. Gebruik Azure Key Vault om uw sleutels veilig te beheren en te roteren. Toegang tot de gedeelde sleutel verleent een gebruiker volledige toegang tot de configuratie van een opslagaccount en de bijbehorende gegevens. De toegang tot gedeelde sleutels moet zorgvuldig worden beperkt en bewaakt. Gebruik SAS-tokens met een beperkt toegangsbereik in scenario's waarin autorisatie op basis van Microsoft Entra-id's niet kan worden gebruikt. Vermijd hardcoderingstoegangssleutels of slaat ze ergens op in tekst zonder opmaak die toegankelijk is voor anderen. Draai uw sleutels als u denkt dat ze mogelijk zijn aangetast.

Belangrijk

Microsoft raadt u aan om microsoft Entra ID te gebruiken om aanvragen te autoriseren voor blob-, wachtrij- en tabelgegevens, indien mogelijk, in plaats van de accountsleutels te gebruiken (autorisatie voor gedeelde sleutels). Autorisatie met Microsoft Entra ID biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde sleutels. Zie .NET-toepassingen verifiëren met Azure-services voor meer informatie over het gebruik van Microsoft Entra-autorisatie vanuit uw toepassingen. Voor SMB Azure-bestandsshares raadt Microsoft aan om on-premises Active Directory-domein Services -integratie (AD DS) of Microsoft Entra Kerberos-verificatie te gebruiken.

Als u wilt voorkomen dat gebruikers toegang hebben tot gegevens in uw opslagaccount met gedeelde sleutel, kunt u autorisatie van gedeelde sleutels voor het opslagaccount niet toestaan. Gedetailleerde toegang tot gegevens met minimale bevoegdheden die nodig zijn, wordt aanbevolen als best practice voor beveiliging. Autorisatie op basis van Microsoft Entra-id moet worden gebruikt voor scenario's die OAuth ondersteunen. Kerberos of SMTP moet worden gebruikt voor Azure Files via SMB. Voor Azure Files via REST kunnen SAS-tokens worden gebruikt. Gedeelde sleuteltoegang moet worden uitgeschakeld als dit niet nodig is om onbedoeld gebruik te voorkomen. Zie Autorisatie van gedeelde sleutels voorkomen voor een Azure Storage-account voor meer informatie.

Als u een Azure Storage-account wilt beveiligen met beleid voor voorwaardelijke toegang van Microsoft Entra, moet u autorisatie van gedeelde sleutels voor het opslagaccount niet weigeren.

Als u de toegang tot gedeelde sleutels hebt uitgeschakeld en u de autorisatie voor gedeelde sleutels in de diagnostische logboeken ziet, geeft dit aan dat vertrouwde toegang wordt gebruikt voor toegang tot opslag. Zie Vertrouwde toegang voor resources die zijn geregistreerd in uw abonnement voor meer informatie.

Een verbindingsreeks opslaan

Uw toepassing moet tijdens runtime toegang krijgen tot de verbindingsreeks om aanvragen naar Azure Storage te autoriseren. U hebt verschillende opties voor het opslaan van uw accounttoegangssleutels of verbindingsreeks:

Waarschuwing

Het opslaan van uw accounttoegangssleutels of verbindingsreeks in duidelijke tekst vormt een beveiligingsrisico en wordt niet aanbevolen. Sla uw accountsleutels op in een versleutelde indeling of migreer uw toepassingen om Microsoft Entra-autorisatie te gebruiken voor toegang tot uw opslagaccount.

Een verbindingsreeks configureren voor Azurite

De emulator ondersteunt één vast account en een bekende verificatiesleutel voor gedeelde sleutelverificatie. Dit account en de sleutel zijn de enige referenties voor gedeelde sleutels die zijn toegestaan voor gebruik met de emulator. Dit zijn:

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Notitie

De verificatiesleutel die door de emulator wordt ondersteund, is alleen bedoeld voor het testen van de functionaliteit van uw clientverificatiecode. Het dient geen beveiligingsdoel. U kunt uw productieopslagaccount en -sleutel niet gebruiken met de emulator. Gebruik het ontwikkelaccount niet met productiegegevens.

De emulator ondersteunt alleen verbinding via HTTP. HTTPS is echter het aanbevolen protocol voor toegang tot resources in een Azure-opslagaccount voor productie.

Verbinding maken naar het emulatoraccount met behulp van de snelkoppeling

De eenvoudigste manier om vanuit uw toepassing verbinding te maken met de emulator is door een verbindingsreeks te configureren in het configuratiebestand van uw toepassing dat verwijst naar de snelkoppelingUseDevelopmentStorage=true. De snelkoppeling is gelijk aan de volledige verbindingsreeks voor de emulator, waarmee de accountnaam, de accountsleutel en de emulatoreindpunten voor elk van de Azure Storage-services worden opgegeven:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

In het volgende .NET-codefragment ziet u hoe u de snelkoppeling kunt gebruiken vanuit een methode die een verbindingsreeks gebruikt. De constructor BlobContainerClient(String, String) neemt bijvoorbeeld een verbindingsreeks.

BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();

Zorg ervoor dat de emulator wordt uitgevoerd voordat u de code in het codefragment aanroept.

Zie De Azurite-emulator gebruiken voor lokale Azure Storage-ontwikkeling voor meer informatie over Azurite.

Een verbindingsreeks configureren voor een Azure-opslagaccount

Gebruik de volgende indeling om een verbindingsreeks te maken voor uw Azure-opslagaccount. Geef aan of u verbinding wilt maken met het opslagaccount via HTTPS (aanbevolen) of HTTP, vervang deze door myAccountName de naam van uw opslagaccount en vervang deze door myAccountKey de toegangssleutel van uw account:

DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey

Uw verbindingsreeks ziet er bijvoorbeeld ongeveer als volgt uit:

DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>

Hoewel Azure Storage zowel HTTP als HTTPS in een verbindingsreeks ondersteunt, wordt HTTPS ten zeerste aanbevolen.

Fooi

U vindt de verbindingsreeks s van uw opslagaccount in Azure Portal. Navigeer naar Beveiligings- en netwerktoegangssleutels> in de instellingen van uw opslagaccount om verbindingsreeks s te zien voor zowel primaire als secundaire toegangssleutels.

Een verbindingsreeks maken met een Shared Access Signature

Als u een SAS-URL (Shared Access Signature) hebt waarmee u toegang krijgt tot resources in een opslagaccount, kunt u de SAS in een verbindingsreeks gebruiken. Omdat de SAS de informatie bevat die nodig is om de aanvraag te verifiëren, biedt een verbindingsreeks met een SAS het protocol, het service-eindpunt en de benodigde referenties voor toegang tot de resource.

Als u een verbindingsreeks wilt maken die een handtekening voor gedeelde toegang bevat, geeft u de tekenreeks op in de volgende indeling:

BlobEndpoint=myBlobEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
FileEndpoint=myFileEndpoint;
SharedAccessSignature=sasToken

Elk service-eindpunt is optioneel, hoewel de verbindingsreeks ten minste één moet bevatten.

Notitie

Het gebruik van HTTPS met een SAS wordt aanbevolen als best practice.

Als u een SAS opgeeft in een verbindingsreeks in een configuratiebestand, moet u mogelijk speciale tekens in de URL coderen.

Voorbeeld van service-SAS

Hier volgt een voorbeeld van een verbindingsreeks met een service-SAS voor Blob Storage:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Hier volgt een voorbeeld van dezelfde verbindingsreeks met URL-codering:

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&amp;sr=b&amp;si=tutorial-policy-635959936145100803&amp;sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Voorbeeld van SAS-account

Hier volgt een voorbeeld van een verbindingsreeks met een account-SAS voor Blob en File Storage. Houd er rekening mee dat eindpunten voor beide services zijn opgegeven:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&spr=https&st=2016-04-12T03%3A24%3A31Z&se=2016-04-13T03%3A29%3A31Z&srt=s&ss=bf&sp=rwl

Hier volgt een voorbeeld van dezelfde verbindingsreeks met URL-codering:

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&amp;sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&amp;spr=https&amp;st=2016-04-12T03%3A24%3A31Z&amp;se=2016-04-13T03%3A29%3A31Z&amp;srt=s&amp;ss=bf&amp;sp=rwl

Een verbindingsreeks maken voor een expliciet opslageindpunt

U kunt expliciete service-eindpunten opgeven in uw verbindingsreeks in plaats van de standaardeindpunten te gebruiken. Als u een verbindingsreeks wilt maken die een expliciet eindpunt opgeeft, geeft u het volledige service-eindpunt op voor elke service, inclusief de protocolspecificatie (HTTPS (aanbevolen) of HTTP), in de volgende indeling:

DefaultEndpointsProtocol=[http|https];
BlobEndpoint=myBlobEndpoint;
FileEndpoint=myFileEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
AccountName=myAccountName;
AccountKey=myAccountKey

Een scenario waarin u mogelijk een expliciet eindpunt wilt opgeven, is wanneer u uw Blob Storage-eindpunt hebt toegewezen aan een aangepast domein. In dat geval kunt u uw aangepaste eindpunt voor Blob Storage opgeven in uw verbindingsreeks. U kunt desgewenst de standaardeindpunten voor de andere services opgeven als uw toepassing deze gebruikt.

Hier volgt een voorbeeld van een verbindingsreeks waarmee een expliciet eindpunt voor de Blob-service wordt opgegeven:

# Blob endpoint only
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
AccountName=storagesample;
AccountKey=<account-key>

In dit voorbeeld worden expliciete eindpunten voor alle services opgegeven, inclusief een aangepast domein voor de Blob-service:

# All service endpoints
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
FileEndpoint=https://myaccount.file.core.windows.net;
QueueEndpoint=https://myaccount.queue.core.windows.net;
TableEndpoint=https://myaccount.table.core.windows.net;
AccountName=storagesample;
AccountKey=<account-key>

De eindpuntwaarden in een verbindingsreeks worden gebruikt voor het samenstellen van de aanvraag-URI's voor de opslagservices en bepalen de vorm van URI's die worden geretourneerd aan uw code.

Als u een opslageindpunt hebt toegewezen aan een aangepast domein en dat eindpunt weglaat vanuit een verbindingsreeks, kunt u die verbindingsreeks niet gebruiken om vanuit uw code toegang te krijgen tot gegevens in die service.

Zie Een aangepast domein toewijzen aan een Azure Blob Storage-eindpunt voor meer informatie over het configureren van een aangepast domein voor Azure Storage.

Belangrijk

Service-eindpuntwaarden in uw verbindingsreeks s moeten goed gevormde URI's zijn, waaronder https:// (aanbevolen) of http://.

Een verbindingsreeks maken met een eindpuntachtervoegsel

Als u een verbindingsreeks wilt maken voor een opslagservice in regio's of exemplaren met verschillende eindpuntachtervoegsels, zoals voor Microsoft Azure beheerd door 21Vianet of Azure Government, gebruikt u de volgende verbindingsreeks-indeling. Geef aan of u verbinding wilt maken met het opslagaccount via HTTPS (aanbevolen) of HTTP, vervang deze door myAccountName de naam van uw opslagaccount, vervang deze door myAccountKey de toegangssleutel van uw account en vervang door mySuffix het URI-achtervoegsel:

DefaultEndpointsProtocol=[http|https];
AccountName=myAccountName;
AccountKey=myAccountKey;
EndpointSuffix=mySuffix;

Hier volgt een voorbeeld van verbindingsreeks voor opslagservices in Azure beheerd door 21Vianet:

DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;

Toegang autoriseren met gedeelde sleutel

Zie een van de volgende artikelen voor meer informatie over het autoriseren van toegang tot Azure Storage met de accountsleutel of met een verbindingsreeks:

Volgende stappen