Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sygnatura dostępu współdzielonego (SAS) umożliwia udzielanie ograniczonego dostępu do kontenerów i blobów na koncie pamięci masowej. Podczas tworzenia sygnatury dostępu współdzielonego określasz jego ograniczenia, w tym zasoby usługi Azure Storage, do których może uzyskiwać dostęp klient, jakie uprawnienia mają w tych zasobach i jak długo sygnatura dostępu współdzielonego jest prawidłowa.
Każdy SAS jest podpisany przy użyciu klucza. Możesz podpisać SAS na jeden z dwóch sposobów:
- Za pomocą klucza utworzonego przy użyciu poświadczeń firmy Microsoft Entra. Sygnatura dostępu współdzielonego podpisana przy użyciu poświadczeń usługi Microsoft Entra to sygnatura dostępu współdzielonego delegowania użytkownika. Klient, który tworzy sygnaturę dostępu współdzielonego z delegowaniem użytkownika, musi mieć przypisaną rolę RBAC platformy Azure obejmującą akcję Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Aby dowiedzieć się więcej, zobacz sekcję Tworzenie delegowanej sygnatury dostępu współdzielonego użytkownika.
- Przy użyciu klucza konta magazynu. Sygnatura SAS usługi i sygnatura SAS konta są podpisane przy użyciu klucza konta magazynowego. Klient, który tworzy sygnaturę dostępu współdzielonego dla usługi, musi mieć bezpośredni dostęp do klucza konta lub mieć przypisane uprawnienie Microsoft.Storage/storageAccounts/listkeys/action. Aby dowiedzieć się więcej, zobacz Utwórz SAS usługi lub Utwórz SAS konta.
Uwaga
Delegowana sygnatura dostępu współdzielonego użytkownika zapewnia lepsze zabezpieczenia niż sygnatura dostępu współdzielonego podpisana kluczem konta magazynu. Microsoft zaleca, jeśli to możliwe, używanie delegowanej sygnatury dostępu SAS. Aby uzyskać więcej informacji, zobacz Udzielanie ograniczonego dostępu do danych za pomocą sygnatur dostępu współdzielonego (SAS).
W tym artykule przedstawiono, jak używać klucza konta magazynu do utworzenia sygnatury SAS dla kontenera lub obiektu blob za pomocą biblioteki klienta Blob Storage dla języka JavaScript.
Utwórz sygnaturę dostępu współdzielonego dla kontenera obiektów blob
Poniższy przykład kodu tworzy SAS (sygnaturę dostępu współdzielonego) dla kontenera. Jeśli podano nazwę istniejących przechowywanych zasad dostępu, te zasady są skojarzone z sygnaturą dostępu współdzielonego. Jeśli nie podano żadnych przechowywanych zasad dostępu, kod tworzy sygnaturę dostępu współdzielonego ad hoc dla kontenera.
Sygnatura SAS usługi jest podpisana kluczem dostępu do konta. Użyj klasy StorageSharedKeyCredential, aby utworzyć poświadczenia używane do podpisywania SAS. Następnie wywołaj funkcję generateBlobSASQueryParameters , podając wymagane parametry, aby uzyskać ciąg tokenu SAS.
// Create a service SAS for a blob container
function getContainerSasUri(containerClient, sharedKeyCredential, storedPolicyName) {
const sasOptions = {
containerName: containerClient.containerName,
permissions: ContainerSASPermissions.parse("c")
};
if (storedPolicyName == null) {
sasOptions.startsOn = new Date();
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
} else {
sasOptions.identifier = storedPolicyName;
}
const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
console.log(`SAS token for blob container is: ${sasToken}`);
return `${containerClient.url}?${sasToken}`;
}
Utwórz sygnaturę dostępu współdzielonego dla usługi obiektu blob
Poniższy przykład kodu tworzy SAS na obiekcie blob. Jeśli podano nazwę istniejącej przechowywanej polityki dostępu, ta polityka jest skojarzona z sygnaturą dostępu współdzielonego (SAS). Jeśli nie zostaną podane żadne zapisane zasady dostępu, kod generuje tymczasową sygnaturę dostępu dla obiektu blob.
Aby utworzyć sygnaturę dostępu współdzielonego dla obiektu blob, wywołaj funkcję generateBlobSASQueryParameters podając wymagane parametry.
// Create a service SAS for a blob
function getBlobSasUri(containerClient, blobName, sharedKeyCredential, storedPolicyName) {
const sasOptions = {
containerName: containerClient.containerName,
blobName: blobName
};
if (storedPolicyName == null) {
sasOptions.startsOn = new Date();
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
sasOptions.permissions = BlobSASPermissions.parse("r");
} else {
sasOptions.identifier = storedPolicyName;
}
const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
console.log(`SAS token for blob is: ${sasToken}`);
return `${containerClient.getBlockBlobClient(blobName).url}?${sasToken}`;
}
Zasoby na potrzeby programowania za pomocą języka JavaScript
Poniższe linki zawierają przydatne zasoby dla deweloperów korzystających z biblioteki klienta usługi Azure Storage dla języka JavaScript
Interfejsy API usługi Blob Storage
- Biblioteka klienta obiektów blob usługi Azure Storage dla języka JavaScript
- Kod źródłowy biblioteki
- Pakiet (npm)
- Dokumentacja referencyjna interfejsu API