Delen via


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:

  • Maak verbinding met de Opslagemulator Van Azurite.
  • 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.

Belangrijk

Voor optimale beveiliging raadt Microsoft aan om Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen te autoriseren voor blob-, wachtrij- en tabelgegevens, indien mogelijk. Autorisatie met Microsoft Entra ID en beheerde identiteiten biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde sleutels. Zie Wat zijn beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten. Voor een voorbeeld van het inschakelen en gebruiken van een beheerde identiteit voor een .NET-toepassing raadpleegt u Verificatie van door Azure gehoste apps naar Azure-resources met .NET.

Voor resources die buiten Azure worden gehost, zoals on-premises toepassingen, kunt u beheerde identiteiten gebruiken via Azure Arc. Apps die worden uitgevoerd op servers met Azure Arc kunnen bijvoorbeeld beheerde identiteiten gebruiken om verbinding te maken met Azure-services. Zie Verifiëren bij Azure-resources met servers met Azure Arc voor meer informatie.

Voor scenario's waarin SHARED Access Signatures (SAS) worden gebruikt, raadt Microsoft aan een SAS voor gebruikersdelegering te gebruiken. Een SAS voor gebruikersdelegering wordt beveiligd met Microsoft Entra-referenties in plaats van de accountsleutel. Zie Beperkte toegang verlenen tot gegevens met handtekeningen voor gedeelde toegang voor meer informatie over handtekeningen voor gedeelde toegang. Zie Een SAS voor gebruikersdelegering maken en gebruiken met .NET voor een voorbeeld van het maken en gebruiken van een SAS voor gebruikersdelegatie voor een blob met .NET.

Uw toegangssleutels beveiligen

Toegangssleutels voor opslagaccounts bieden volledige toegang tot de opslagaccountgegevens en de mogelijkheid om SAS-tokens te genereren. 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 gegevens van een opslagaccount. De toegang tot gedeelde sleutels moet zorgvuldig worden beperkt en bewaakt. Gebruik SAS-tokens voor gebruikersdelegatie met een beperkt toegangsbereik in scenario's waarin autorisatie op basis van Microsoft Entra-id 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

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's met beheerde identiteiten 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 Microsoft Entra-tenant 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 met 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.

Tip

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