Konfigurera anslutningssträngar för Azure-lagring

En anslutningssträng innehåller den auktoriseringsinformation som krävs för att ditt program ska få åtkomst till data i ett Azure Storage-konto vid körning med hjälp av auktorisering av delad nyckel. Du kan konfigurera anslutningssträng till:

  • Anslut till Azurite Storage-emulatorn.
  • Få åtkomst till ett lagringskonto i Azure.
  • Få åtkomst till angivna resurser i Azure via en signatur för delad åtkomst (SAS).

Information om hur du visar dina kontoåtkomstnycklar och kopierar en anslutningssträng finns i Hantera åtkomstnycklar för lagringskonto.

Skydda dina åtkomstnycklar

Åtkomstnycklar för lagringskonto ger fullständig åtkomst till konfigurationen av ett lagringskonto samt data. Var alltid noga med att skydda dina åtkomstnycklar. Använd Azure Key Vault för att hantera och rotera dina nycklar på ett säkert sätt. Åtkomst till den delade nyckeln ger en användare fullständig åtkomst till ett lagringskontos konfiguration och dess data. Åtkomsten till delade nycklar bör begränsas noggrant och övervakas. Använd SAS-token med begränsad åtkomstomfång i scenarier där Microsoft Entra ID-baserad auktorisering inte kan användas. Undvik hårdkodade åtkomstnycklar eller spara dem var som helst i oformaterad text som är tillgänglig för andra. Rotera dina nycklar om du tror att de har komprometterats.

Viktigt!

Microsoft rekommenderar att du använder Microsoft Entra-ID för att auktorisera begäranden mot blob-, kö- och tabelldata om möjligt, i stället för att använda kontonycklarna (auktorisering av delad nyckel). Auktorisering med Microsoft Entra ID ger överlägsen säkerhet och enkel användning via auktorisering av delad nyckel. Mer information om hur du använder Microsoft Entra-auktorisering från dina program finns i Autentisera .NET-program med Azure-tjänster. För SMB Azure-filresurser rekommenderar Microsoft att du använder ad DS-integrering (lokal Active Directory Domain Services) eller Microsoft Entra Kerberos-autentisering.

Om du vill hindra användare från att komma åt data i ditt lagringskonto med delad nyckel kan du inte tillåta auktorisering av delad nyckel för lagringskontot. Detaljerad åtkomst till data med minsta möjliga behörighet rekommenderas som bästa praxis för säkerhet. Microsoft Entra ID-baserad auktorisering bör användas för scenarier som stöder OAuth. Kerberos eller SMTP ska användas för Azure Files via SMB. För Azure Files via REST kan SAS-token användas. Åtkomst med delad nyckel ska inaktiveras om det inte krävs för att förhindra oavsiktlig användning. Mer information finns i Förhindra auktorisering av delad nyckel för ett Azure Storage-konto.

För att skydda ett Azure Storage-konto med principer för villkorsstyrd åtkomst i Microsoft Entra måste du inte tillåta auktorisering av delad nyckel för lagringskontot.

Om du har inaktiverat åtkomst till delad nyckel och du ser auktorisering av delad nyckel rapporterad i diagnostikloggarna anger detta att betrodd åtkomst används för att komma åt lagring. Mer information finns i Betrodd åtkomst för resurser som registrerats i din prenumeration.

Lagra en anslutningssträng

Ditt program måste komma åt anslutningssträng vid körning för att auktorisera begäranden som görs till Azure Storage. Du har flera alternativ för att lagra dina kontoåtkomstnycklar eller anslutningssträng:

  • Du kan lagra dina kontonycklar på ett säkert sätt i Azure Key Vault. Mer information finns i Om Azure Key Vault-hanterade lagringskontonycklar.
  • Du kan lagra dina anslutningssträng i en miljövariabel.
  • Ett program kan lagra anslutningssträng i en app.config- eller web.config-fil. Lägg till anslutningssträng i avsnittet App Inställningar i dessa filer.

Varning

Lagring av kontoåtkomstnycklar eller anslutningssträng i klartext utgör en säkerhetsrisk och rekommenderas inte. Lagra dina kontonycklar i ett krypterat format eller migrera dina program för att använda Microsoft Entra-auktorisering för åtkomst till ditt lagringskonto.

Konfigurera en anslutningssträng för Azurite

Emulatorn stöder ett enda fast konto och en välkänd autentiseringsnyckel för autentisering med delad nyckel. Det här kontot och nyckeln är de enda autentiseringsuppgifterna för delad nyckel som tillåts för användning med emulatorn. Dessa är:

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

Kommentar

Autentiseringsnyckeln som stöds av emulatorn är endast avsedd för att testa funktionerna i din klientautentiseringskod. Det tjänar inte något säkerhetssyfte. Du kan inte använda ditt produktionslagringskonto och din nyckel med emulatorn. Du bör inte använda utvecklingskontot med produktionsdata.

Emulatorn stöder endast anslutning via HTTP. HTTPS är dock det rekommenderade protokollet för åtkomst till resurser i ett Azure-lagringskonto för produktion.

Anslut till emulatorkontot med hjälp av genvägen

Det enklaste sättet att ansluta till emulatorn från ditt program är att konfigurera en anslutningssträng i programmets konfigurationsfil som refererar till genvägen UseDevelopmentStorage=true. Genvägen motsvarar den fullständiga anslutningssträng för emulatorn, som anger kontonamnet, kontonyckeln och emulatorns slutpunkter för var och en av Azure Storage-tjänsterna:

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;

Följande .NET-kodfragment visar hur du kan använda genvägen från en metod som tar en anslutningssträng. Till exempel tar konstruktorn BlobContainerClient(String, String) en anslutningssträng.

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

Kontrollera att emulatorn körs innan du anropar koden i kodfragmentet.

Mer information om Azurite finns i Använda Azurite-emulatorn för lokal Azure Storage-utveckling.

Konfigurera en anslutningssträng för ett Azure Storage-konto

Använd följande format för att skapa en anslutningssträng för ditt Azure Storage-konto. Ange om du vill ansluta till lagringskontot via HTTPS (rekommenderas) eller HTTP, ersätt myAccountName med namnet på ditt lagringskonto och ersätt myAccountKey med åtkomstnyckeln för ditt konto:

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

Din anslutningssträng kan till exempel se ut ungefär så här:

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

Även om Azure Storage stöder både HTTP och HTTPS i en anslutningssträng rekommenderas HTTPS starkt.

Dricks

Du hittar ditt lagringskontos anslutningssträng i Azure-portalen. Gå till Säkerhets - och nätverksåtkomstnycklar> i lagringskontots inställningar för att se anslutningssträng för både primära och sekundära åtkomstnycklar.

Skapa en anslutningssträng med hjälp av en signatur för delad åtkomst

Om du har en URL för signatur för delad åtkomst (SAS) som ger dig åtkomst till resurser i ett lagringskonto kan du använda SAS i en anslutningssträng. Eftersom SAS innehåller den information som krävs för att autentisera begäran tillhandahåller en anslutningssträng med en SAS protokollet, tjänstslutpunkten och de autentiseringsuppgifter som krävs för att få åtkomst till resursen.

Om du vill skapa en anslutningssträng som innehåller en signatur för delad åtkomst anger du strängen i följande format:

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

Varje tjänstslutpunkt är valfri, även om anslutningssträng måste innehålla minst en.

Kommentar

Att använda HTTPS med en SAS rekommenderas som bästa praxis.

Om du anger en SAS i en anslutningssträng i en konfigurationsfil kan du behöva koda specialtecken i URL:en.

Exempel på tjänst-SAS

Här är ett exempel på en anslutningssträng som innehåller en tjänst-SAS för Blob Storage:

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

Och här är ett exempel på samma anslutningssträng med URL-kodning:

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

Sas-exempel för konto

Här är ett exempel på en anslutningssträng som innehåller ett konto-SAS för blob- och fillagring. Observera att slutpunkter för båda tjänsterna anges:

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

Och här är ett exempel på samma anslutningssträng med URL-kodning:

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

Skapa en anslutningssträng för en explicit lagringsslutpunkt

Du kan ange explicita tjänstslutpunkter i anslutningssträng i stället för att använda standardslutpunkterna. Om du vill skapa en anslutningssträng som anger en explicit slutpunkt anger du den fullständiga tjänstslutpunkten för varje tjänst, inklusive protokollspecifikationen (HTTPS (rekommenderas) eller HTTP), i följande format:

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

Ett scenario där du kanske vill ange en explicit slutpunkt är när du har mappat bloblagringsslutpunkten till en anpassad domän. I så fall kan du ange din anpassade slutpunkt för Blob Storage i anslutningssträng. Du kan också ange standardslutpunkterna för de andra tjänsterna om programmet använder dem.

Här är ett exempel på en anslutningssträng som anger en explicit slutpunkt för Blob-tjänsten:

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

Det här exemplet anger explicita slutpunkter för alla tjänster, inklusive en anpassad domän för Blob-tjänsten:

# 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>

Slutpunktsvärdena i en anslutningssträng används för att konstruera begärande-URI:er till lagringstjänsterna och diktera formen för alla URI:er som returneras till koden.

Om du har mappat en lagringsslutpunkt till en anpassad domän och utelämnat slutpunkten från en anslutningssträng kan du inte använda den anslutningssträng för att komma åt data i tjänsten från koden.

Mer information om hur du konfigurerar en anpassad domän för Azure Storage finns i Mappa en anpassad domän till en Azure Blob Storage-slutpunkt.

Viktigt!

Tjänstslutpunktsvärden i dina anslutningssträng måste vara välformade URI:er, inklusive https:// (rekommenderas) eller http://.

Skapa en anslutningssträng med ett slutpunktssuffix

Om du vill skapa en anslutningssträng för en lagringstjänst i regioner eller instanser med olika slutpunktssuffix, till exempel för Microsoft Azure som drivs av 21Vianet eller Azure Government, använder du följande anslutningssträng format. Ange om du vill ansluta till lagringskontot via HTTPS (rekommenderas) eller HTTP, ersätt myAccountName med namnet på ditt lagringskonto, ersätt myAccountKey med din kontoåtkomstnyckel och ersätt mySuffix med URI-suffixet:

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

Här är ett exempel anslutningssträng för lagringstjänster i Azure som drivs av 21Vianet:

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

Auktorisera åtkomst med delad nyckel

Mer information om hur du auktoriserar åtkomst till Azure Storage med kontonyckeln eller med en anslutningssträng finns i någon av följande artiklar:

Nästa steg