Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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. Amikor létrehoz egy SAS-t, meg kell határoznia annak korlátozásait, beleértve azt is, hogy egy ügyfél mely Azure Storage-erőforrásokhoz férhet hozzá, milyen jogosultságai vannak ezeken az erőforrásokon, és mennyi ideig érvényes a SAS.
Minden SAS egy kulccsal van aláírva. Az SAS-t a következő két mód valamelyikén írhatja 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 kulcsával. Mind a szolgáltatás-SAS-t, mind a fiók-SAS-t a storage-fiók kulcsával írják alá. 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ásos SAS nagyobb biztonságot nyújt, mint a tárfiókkulccsal aláírt SAS. 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 felhasználói delegálású SAS-t egy tárolóhoz vagy blobhoz a Microsoft Entra hitelesítő adataival a .NET-hez készült Azure Storage ügyfélkönyvtár használatával.
Tudnivalók a felhasználói delegálási SAS-ről
A tárolóhoz vagy blobhoz való hozzáféréshez szükséges SAS-jogkivonatot a Microsoft Entra hitelesítő adataival vagy egy fiókkulcskal lehet védeni. A Microsoft Entra hitelesítő adataival védett SAS-t felhasználói delegálási SAS-nek nevezzük, mivel az SAS aláírásához használt OAuth 2.0 jogkivonatot a felhasználó nevében kéri a rendszer.
A Microsoft azt javasolja, hogy ha lehetséges, használja a Microsoft Entra hitelesítő adatait biztonsági ajánlott eljárásként a fiókkulcs használata helyett, amely könnyebben feltörhető. Ha az alkalmazás tervezése közös hozzáférésű jogosultságkódokat igényel, a Microsoft Entra hitelesítő adataival hozzon létre egy felhasználói delegálási SAS-t a magasabb szintű biztonság érdekében. További információ a felhasználói delegálási SAS-ről: Felhasználói delegálási SAS létrehozása.
Figyelemfelhívás
Minden olyan ügyfél, amely rendelkezik érvényes SAS-szel, hozzáférhet a tárfiókban lévő adatokhoz az adott SAS által engedélyezett módon. Fontos, hogy megvédje az SAS-t a rosszindulatú vagy nem szándékos használattól. Körültekintően járjon el az SAS terjesztésekor, és legyen terve arra az esetre, ha egy SAS kompromittálódik, hogy visszavonhassa azt.
A megosztott hozzáférésű jogosultságkódokkal kapcsolatos további információkért lásd : Korlátozott hozzáférés biztosítása az Azure Storage-erőforrásokhoz közös hozzáférésű jogosultságkódok (SAS) használatával.
Azure-szerepkörök hozzárendelése az adatokhoz való hozzáféréshez
Amikor egy Microsoft Entra biztonsági tag megpróbál hozzáférni az adatokhoz, annak a biztonsági tagnak engedélyekkel kell rendelkeznie az erőforráshoz. Függetlenül attól, hogy a biztonsági tag felügyelt identitás-e az Azure-ban, vagy egy, a fejlesztési környezetben kódot futtató Microsoft Entra-felhasználói fiók, a biztonsági tagnak olyan Azure-szerepkört kell hozzárendelnie, amely hozzáférést biztosít az adatokhoz. Az engedélyek Azure RBAC-en keresztüli hozzárendelésével kapcsolatos információkért lásd : Azure-szerepkör hozzárendelése a blobadatokhoz való hozzáféréshez.
A projekt beállítása
A jelen cikkben szereplő példakódok használatához kövesse az alábbi lépéseket a projekt beállításához.
Csomagok telepítése
Telepítse a következő csomagokat:
dotnet add package Azure.Identity
dotnet add package Azure.Storage.Blobs
Az alkalmazáskód beállítása
Adja hozzá a következő using irányelveket a blobokhoz:
using Azure;
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
using Azure.Storage.Sas;
Adja hozzá a következő using irányelveket a Fájlokhoz:
using Azure;
using Azure.Identity;
using Azure.Storage.Files;
using Azure.Storage.Files.Models;
using Azure.Storage.Files.Specialized;
using Azure.Storage.Sas;
Adja hozzá a következő using irányelveket a várólistákhoz:
using Azure;
using Azure.Identity;
using Azure.Storage.Queues;
using Azure.Storage.Queues.Models;
using Azure.Storage.Queues.Specialized;
using Azure.Storage.Sas;
Hitelesített tokenhitelesítő adatok lekérése
Ha olyan jogkivonat hitelesítő adatait szeretné lekérni, amelyet a kód a Blob Storage-kérelmek engedélyezésére használhat, hozza létre a DefaultAzureCredential osztály egy példányát. A Blob Storage elérésére szolgáló felügyelt identitásnak a DefaultAzureCredential osztály használatával történő jogosításáról további információt az .NET-hez készült Azure Identity ügyfélkódtárban talál.
Az alábbi kódrészlet bemutatja, hogyan kérheti le a hitelesített token hitelesítő adatait, és hogyan hozhat létre szolgáltatásklienst a Blob Storage-hoz:
// Construct the blob endpoint from the account name.
string endpoint = $"https://{accountName}.blob.core.windows.net";
// Create a blob service client object using DefaultAzureCredential
BlobServiceClient blobServiceClient = new BlobServiceClient(
new Uri(endpoint),
new DefaultAzureCredential());
Ha többet szeretne megtudni a Blob Storage-hoz való hozzáférés engedélyezéséről az alkalmazásokból a .NET SDK-val, olvassa el a .NET-alkalmazások Azure-szolgáltatásokkal való hitelesítését ismertető témakört.
Az alábbi kódrészlet bemutatja, hogyan kérheti le a hitelesített tokenhitelesítő adatokat, és hogyan használhatja fel azokat egy szolgáltatáskliens létrehozásához a File Storage-hoz:
// Construct the file endpoint from the account name.
string endpoint = $"https://{accountName}.file.core.windows.net”;
// Create a file service client object using DefaultAzureCredential
FilesServiceClient filesServiceClient = new filesServiceClient(
new Uri(endpoint),
new DefaultAzureCredential());
Az alábbi kódrészlet bemutatja, hogyan kérheti le a hitelesített tokenhez tartozó hitelesítő adatokat, és hogyan hozhat létre szolgáltatásklienst a Queue Storage-hoz:
// Construct the queue endpoint from the account name.
string endpoint = $"https://{accountName}.queue.core.windows.net";
// Create a queue service client object using DefaultAzureCredential
QueueServiceClient queueServiceClient = new QueueServiceClient(
new Uri(endpoint),
new DefaultAzureCredential());
A felhasználói delegálási kulcs lekérése
Minden SAS egy kulccsal van aláírva. Felhasználói delegálási SAS létrehozásához először egy felhasználói delegálási kulcsot kell kérnie, amelyet a rendszer az SAS aláírására használ. A felhasználói delegálási kulcs hasonló a szolgáltatás SAS vagy fiók SAS aláírásához használt fiókkulcshoz, azzal a kivétellel, hogy az a Microsoft Entra hitelesítő adataira támaszkodik. Amikor egy ügyfél egy OAuth 2.0-jogkivonat használatával kér felhasználói delegálási kulcsot, a Blob Storage a felhasználó nevében adja vissza a felhasználó delegálási kulcsát.
Ha már rendelkezik a felhasználói delegálási kulccsal, ezzel a kulccsal tetszőleges számú felhasználói delegálási megosztott hozzáférési aláírást hozhat létre a kulcs élettartama alatt. A felhasználói delegálási kulcs független a beszerzéséhez használt OAuth 2.0-jogkivonattól, így a jogkivonatot nem kell megújítani, ha a kulcs még érvényes. Megadhatja a kulcs érvényességének időtartamát, legfeljebb hét napig.
A felhasználói delegálási kulcs kéréséhez használja az alábbi módszerek egyikét:
Az alábbi példakód bemutatja, hogyan kérhet felhasználói delegálást blobokhoz:
public static async Task<UserDelegationKey> RequestUserDelegationKey(
BlobServiceClient blobServiceClient)
{
// Get a user delegation key for the Blob service that's valid for 1 day
UserDelegationKey userDelegationKey =
await blobServiceClient.GetUserDelegationKeyAsync(
DateTimeOffset.UtcNow,
DateTimeOffset.UtcNow.AddDays(1));
return userDelegationKey;
}
Az alábbi példakód bemutatja, hogyan kérheti le a felhasználó delegálását a fájlokhoz:
public static async Task<UserDelegationKey> RequestUserDelegationKey(
FileServiceClient fileServiceClient)
{
// Get a user delegation key for the Azure Files Service that's valid for 1 day
UserDelegationKey userDelegationKey =
await fileServiceClient.GetUserDelegationKeyAsync(
DateTimeOffset.UtcNow,
DateTimeOffset.UtcNow.AddDays(1));
return userDelegationKey;
}
Az alábbi példakód bemutatja, hogyan kérheti le a felhasználói delegálást a várólistákhoz:
public static async Task<UserDelegationKey> RequestUserDelegationKey(
QueueServiceClient queueServiceClient)
{
// Get a user delegation key for the Queue service that's valid for 1 day
UserDelegationKey userDelegationKey =
await queueServiceClient.GetUserDelegationKeyAsync(
DateTimeOffset.UtcNow,
DateTimeOffset.UtcNow.AddDays(1));
return userDelegationKey;
}
Felhasználói delegálású SAS létrehozása
Az alkalmazás igényeinek megfelelően létrehozhat egy felhasználódelegálási SAS-t blobtárolóhoz, blobhoz, fájlmegosztáshoz, fájlhoz vagy üzenetsorhoz.
Miután beszerezte a felhasználói delegálási kulcsot, létrehozhat egy felhasználói delegálási SAS-t a tárolóhoz való korlátozott hozzáférés delegálásához. Az alábbi példakód bemutatja, hogyan hozhat létre felhasználói delegálási SAS-t egy tárolóhoz:
public static async Task<Uri> CreateUserDelegationSASContainer(
BlobContainerClient containerClient,
UserDelegationKey userDelegationKey)
{
// Create a SAS token for the container resource that's also valid for 1 day
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
BlobContainerName = containerClient.Name,
Resource = "c",
StartsOn = DateTimeOffset.UtcNow,
ExpiresOn = DateTimeOffset.UtcNow.AddDays(1)
};
// Specify the necessary permissions
sasBuilder.SetPermissions(BlobSasPermissions.Read | BlobSasPermissions.Write);
// Add the SAS token to the blob URI
BlobUriBuilder uriBuilder = new BlobUriBuilder(containerClient.Uri)
{
// Specify the user delegation key
Sas = sasBuilder.ToSasQueryParameters(
userDelegationKey,
containerClient.GetParentBlobServiceClient().AccountName)
};
return uriBuilder.ToUri();
}
Felhasználói delegálási SAS használata ügyfélobjektum engedélyezéséhez
A felhasználói delegálási SAS használatával engedélyezheti egy ügyfélobjektum számára a blobtárolón, blobon, fájlmegosztáson, fájlon vagy üzenetsoron végzett műveleteket az SAS által megadott engedélyek alapján.
Az alábbi példakód bemutatja, hogyan engedélyezheti a BlobContainerClient objektumot a felhasználói delegálási SAS használatával. Ez az ügyfélobjektum használható a tárolóerőforrás műveleteinek végrehajtására az SAS által megadott engedélyek alapján.
// Create a Uri object with a user delegation SAS appended
BlobContainerClient containerClient = blobServiceClient
.GetBlobContainerClient("sample-container");
Uri containerSASURI = await CreateUserDelegationSASContainer(containerClient, userDelegationKey);
// Create a container client object with SAS authorization
BlobContainerClient containerClientSAS = new BlobContainerClient(containerSASURI);
Források
Ha többet szeretne megtudni a felhasználói delegálási SAS létrehozásáról az Azure Blob Storage .NET-hez készült ügyfélkódtárával, tekintse meg az alábbi erőforrásokat.
Kódminták
REST API-műveletek
A .NET-hez készült Azure SDK olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismerős .NET-paradigmákon keresztül. A felhasználói delegálási kulcs lekérésére szolgáló ügyfélkódtár metódusa a következő REST API-műveletet használja:
- Felhasználódelegálási kulcs lekérése (REST API)
Ügyfélkódtár erőforrásai
Lásd még
- Korlátozott hozzáférés engedélyezése az Azure Storage-erőforrásokhoz közös hozzáférésű jogosultságkódokkal
- Felhasználódelegálási SAS létrehozása
Kapcsolódó tartalom
- Ez a cikk a .NET-hez készült Blob Storage fejlesztői útmutató része. További információért tekintse meg a .NET-alkalmazás buildeléséhez kapcsolódó fejlesztői útmutatók teljes listáját.