Share via


Fiók SAS létrehozása Java-val

A közös hozzáférésű jogosultságkód (SAS) lehetővé teszi, hogy korlátozott hozzáférést biztosítson a tárfiókban lévő tárolókhoz és blobokhoz. Sas létrehozásakor meg kell adnia annak korlátait, beleértve az ügyfelek számára engedélyezett Azure Storage-erőforrásokat, az ezen erőforrásokra vonatkozó engedélyeiket és az SAS érvényességének érvényességét.

Minden SAS egy kulccsal van aláírva. SAS-t kétféleképpen írhat alá:

  • A Microsoft Entra hitelesítő adataival létrehozott kulccsal. A Microsoft Entra hitelesítő adataival aláírt SAS egy felhasználódelegálási SAS. A felhasználói delegálási SAS-t létrehozó ügyfélhez olyan Azure RBAC-szerepkört kell hozzárendelni, amely tartalmazza a Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey műveletet. További információ: Felhasználói delegálási SAS létrehozása.
  • A tárfiók kulccsal. A szolgáltatás SAS és a fiók SAS is a tárfiók kulccsal van aláírva. A szolgáltatás SAS-t létrehozó ügyfélnek közvetlen hozzáféréssel kell rendelkeznie a fiókkulcshoz, vagy hozzá kell rendelnie a Microsoft.Storage/storageAccounts/listkeys/action engedélyt. További információ: Szolgáltatás SAS létrehozása vagy fiók SAS létrehozása.

Megjegyzés:

A felhasználói delegálási SAS kiváló biztonságot nyújt a tárfiók kulccsal aláírt SAS-nek. A Microsoft javasolja, hogy lehetőség szerint használjon felhasználói delegálási SAS-t. További információ: Korlátozott hozzáférés biztosítása megosztott hozzáférésű jogosultságkódokkal (SAS) rendelkező adatokhoz.

Ez a cikk bemutatja, hogyan hozhat létre fiók SAS-t a Tárfiókkulcs használatával a Java Azure Storage ügyfélkódtárával.

Tudnivalók a fiók SAS-járól

A fiók sasa a tárfiók szintjén jön létre, és a fiók hozzáférési kulcsával van aláírva. Fiók SAS létrehozásával a következőt teheti:

A tárolt hozzáférési szabályzatok nem támogatottak a fiók SAS-hez.

A projekt beállítása

A cikkben szereplő példakódok használatához adja hozzá a következő importálási irányelveket:

import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.sas.*;
import com.azure.storage.common.sas.AccountSasPermission;
import com.azure.storage.common.sas.AccountSasResourceType;
import com.azure.storage.common.sas.AccountSasService;
import com.azure.storage.common.sas.AccountSasSignatureValues;

Fiók SAS létrehozása

A tárfiók erőforrásaihoz való korlátozott hozzáférés delegálásához létrehozhat fiók SAS-t a következő módszerrel:

A fiók SAS aláírási értékeinek konfigurálásához használja a következő segédosztályokat:

  • AccountSasPermission: Az SAS által engedélyezett engedélyeket jelöli. A példában az olvasási engedélyt a következőre trueállítjuk be: .
  • AccountSasService: Az SAS által elérhető szolgáltatásokat jelöli. A példánkban engedélyezzük a Blob szolgáltatás elérését.
  • AccountSasResourceType: Az SAS által elérhető erőforrástípusokat jelöli. A példánkban engedélyezzük a szolgáltatásszintű API-k elérését.

A segédosztályok konfigurálása után inicializálhatja az SAS paramétereit egy AccountSasSignatureValues-példánnyal .

Az alábbi példakód bemutatja, hogyan konfigurálhatja az SAS-paramétereket, és hogyan hívhatja meg a generateAccountSas metódust a fiók SAS-jének lekéréséhez:

public String createAccountSAS(BlobServiceClient blobServiceClient) {
    // Configure the SAS parameters
    OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
    AccountSasPermission accountSasPermission = new AccountSasPermission()
            .setReadPermission(true);
    AccountSasService services = new AccountSasService()
            .setBlobAccess(true);
    AccountSasResourceType resourceTypes = new AccountSasResourceType()
            .setService(true);

    // Generate the account SAS
    AccountSasSignatureValues accountSasValues = new AccountSasSignatureValues(
        expiryTime,
        accountSasPermission,
        services,
        resourceTypes);
    String sasToken = blobServiceClient.generateAccountSas(accountSasValues);

    return sasToken;
}

Ügyfél sasának használata

Az alábbi példakód bemutatja, hogyan használhatja a korábbi példában létrehozott fiók SAS-t egy BlobServiceClient-objektum engedélyezéséhez. Ez az ügyfélobjektum ezután a SAS által megadott engedélyek alapján használható a szolgáltatásszintű API-k eléréséhez.

Először hozzon létre egy BlobServiceClient objektumot, amely a fiók hozzáférési kulcsával van aláírva:

String accountName = "<account-name>";
String accountKey = "<account-key>";
StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
        
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
        .endpoint(String.format("https://%s.blob.core.windows.net/", accountName))
        .credential(credential)
        .buildClient();

Ezután hozza létre a fiók SAS-ját a korábbi példában látható módon, és használja az SAS-t egy BlobServiceClient-objektum engedélyezéséhez:

// Create a SAS token
String sasToken = createAccountSAS(blobServiceClient);

// Create a new BlobServiceClient using the SAS token
BlobServiceClient sasServiceClient = new BlobServiceClientBuilder()
        .endpoint(blobServiceClient.getAccountUrl())
        .sasToken(sasToken)
        .buildClient();

A fiók SAS használatával blobContainerClient objektumot vagy BlobClient-objektumot is engedélyezhet és használhat, ha ezek az erőforrástípusok az aláírási értékek részeként kapnak hozzáférést.

Források

Ha többet szeretne megtudni arról, hogyan hozhat létre fiók SAS-t a Java-hoz készült Azure Blob Storage ügyfélkódtár használatával, tekintse meg az alábbi erőforrásokat.

Code samples

Ügyfélkódtár erőforrásai

Kapcsolódó információk