إنشاء SAS للحساب باستخدام ‎.NET

يتيح لك توقيع الوصول المشترك (SAS) منح وصول محدود إلى الحاويات والكائنات الثنائية كبيرة الحجم في حساب التخزين الخاص بك. عند إنشاء توقيع الوصول المشترك، فإنك تحدد قيوده بما في ذلك موارد تخزين Azure التي يُسمح للعميل بالوصول إليها، وما هي الأذونات التي يمتلكها على تلك الموارد، ومدة صلاحية توقيع الوصول المشترك.

يتم عملية توقيع كل SAS بمفتاح. يمكنك توقيع SAS بإحدى طريقتين:

  • باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Microsoft Entra. SAS الذي تم توقيعه باستخدام بيانات اعتماد Microsoft Entra هو SAS لتفويض المستخدم. يجب أن يتم تعيين دور Azure RBAC للعميل الذي يقوم بإنشاء تحويل مستخدم SAS والذي يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. لمعرفة المزيد، راجع إنشاء توقيعات الوصول المشترك لتفويض المستخدم.
  • باستخدام مفتاح حساب التخزين. يتم توقيع كل من توقيع الوصول المشترك للخدمة و توقيع الوصول المشترك للحساب باستخدام مفتاح حساب التخزين. يجب أن يكون للعميل الذي ينشئ خدمة SAS حق وصول مباشر إلى مفتاح الحساب أو أن يتم تعيين إذن Microsoft.Storage/storageAccounts/listkeys/action. لمعرفة المزيد، راجع إنشاء SAS خدمة أو إنشاء حساب SAS.

إشعار

يوفر توقيع الوصول المشترك لتفويض المستخدم أماناً فائقاً لتوقيع الوصول المشترك الموقع باستخدام مفتاح حساب التخزين. توصي Microsoft باستخدام توقيع الوصول المشترك لتفويض المستخدم عندما يكون ذلك ممكناً. لمعرفة المزيد من المعلومات حول مفاتيح SAS، راجع منح وصول محدود إلى البيانات باستخدام توقيعات الوصول المشتركة (SAS).

تُبين هذه المقالة كيفية استخدام مفتاح حساب التخزين لإنشاء حساب SAS مع مكتبة عميل Azure Storage لـ .NET.

نبذة عن SAS للحساب

يتم إنشاء حساب SAS على مستوى حساب التخزين. من خلال إنشاء حساب SAS، يمكنك:

  • تفويض الوصول إلى العمليات على مستوى الخدمة غير المتوفرة حاليا مع SAS الخاصة بالخدمة، مثل الحصول على خصائص خدمة Blob وتعيين خصائص خدمة Blob والحصول على إحصائيات خدمة Blob.
  • تفويض الوصول إلى أكثر من خدمة واحدة في حساب تخزين في كل مرة. على سبيل المثال، يمكنك تفويض الوصول إلى الموارد في كل من Azure Blob Storage وAzure Files باستخدام حساب SAS.

نهج الوصول المخزنة غير مدعومة لحساب SAS.

إنشاء SAS للحساب

يتم توقيع SAS للحساب باستخدام مفتاح الوصول إلى الحساب. يمكنك استخدام فئة StorageSharedKeyCredential لإنشاء بيانات الاعتماد المستخدمة لتوقيع SAS.

يوضح مثال التعليمات البرمجية التالي كيفية إنشاء كائن AccountSasBuilder جديد واستدعاء أسلوب ToSasQueryParameters للحصول على سلسلة رمز SAS المميز للحساب.

public static async Task<string> CreateAccountSAS(StorageSharedKeyCredential sharedKey)
{
    // Create a SAS token that's valid for one day
    AccountSasBuilder sasBuilder = new AccountSasBuilder()
    {
        Services = AccountSasServices.Blobs | AccountSasServices.Queues,
        ResourceTypes = AccountSasResourceTypes.Service,
        ExpiresOn = DateTimeOffset.UtcNow.AddDays(1),
        Protocol = SasProtocol.Https
    };

    sasBuilder.SetPermissions(AccountSasPermissions.Read |
        AccountSasPermissions.Write);

    // Use the key to get the SAS token
    string sasToken = sasBuilder.ToSasQueryParameters(sharedKey).ToString();

    return sasToken;
}

استخدام حساب SAS من عميل

لاستخدام SAS للحساب للوصول إلى واجهات برمجة التطبيقات على مستوى الخدمة لخدمة Blob، قم بإنشاء كائن BlobServiceClient باستخدام حساب SAS ونقطة نهاية Blob Storage لحساب التخزين الخاص بك.

string accountName = "<storage-account-name>";
string accountKey = "<storage-account-key>";
StorageSharedKeyCredential storageSharedKeyCredential =
    new(accountName, accountKey);

// Create a BlobServiceClient object with the account SAS appended
string blobServiceURI = $"https://{accountName}.blob.core.windows.net";
string sasToken = await CreateAccountSAS(storageSharedKeyCredential);
BlobServiceClient blobServiceClientAccountSAS = new BlobServiceClient(
    new Uri($"{blobServiceURI}?{sasToken}"));

الموارد

لمعرفة المزيد حول إنشاء حساب SAS باستخدام مكتبة عميل Azure Blob Storage ل .NET، راجع الموارد التالية.

موارد مكتبة العميل

(راجع أيضًا )