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

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

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

  • باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Azure Active Directory (Azure AD). SAS الذي تم توقيعه مع بيانات اعتماد Azure AD هو وفد مستخدم SAS.
  • باستخدام مفتاح حساب التخزين. تم توقيع كل من خدمة SAS و حساب SAS باستخدام مفتاح حساب التخزين.

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

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

إنشاء حساب SAS

يتم توقيع حساب SAS باستخدام مفتاح الوصول إلى الحساب. استخدم فئة StorageSharedKeyCredential لإنشاء بيانات الاعتماد المستخدمة لتوقيع SAS. بعد ذلك، قم بإنشاء عنصر AccountSasBuilder جديد واتصل بـ ToSasQueryParameters للحصول على رمز SAS المميز.


private static string GetAccountSASToken(StorageSharedKeyCredential key)
{
    // Create a SAS token that's valid for one hour.
    AccountSasBuilder sasBuilder = new AccountSasBuilder()
    {
        Services = AccountSasServices.Blobs | AccountSasServices.Files,
        ResourceTypes = AccountSasResourceTypes.Service,
        ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
        Protocol = SasProtocol.Https
    };

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

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

    Console.WriteLine("SAS token for the storage account is: {0}", sasToken);
    Console.WriteLine();

    return sasToken;
}

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

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


private static void UseAccountSAS(Uri blobServiceUri, string sasToken)
{
    var blobServiceClient = new BlobServiceClient
        (new Uri($"{blobServiceUri}?{sasToken}"), null);

    BlobRetentionPolicy retentionPolicy = new BlobRetentionPolicy();
    retentionPolicy.Enabled = true;
    retentionPolicy.Days = 7;

    blobServiceClient.SetProperties(new BlobServiceProperties()
    {
        HourMetrics = new BlobMetrics()
        {
            RetentionPolicy = retentionPolicy,
            Version = "1.0"
        },
        MinuteMetrics = new BlobMetrics()
        {
            RetentionPolicy = retentionPolicy,
            Version = "1.0"
        },
        Logging = new BlobAnalyticsLogging()
        {
            Write = true,
            Read = true,
            Delete = true,
            RetentionPolicy = retentionPolicy,
            Version = "1.0"
        }
    });

    // The permissions granted by the account SAS also permit you to retrieve service properties.

    BlobServiceProperties serviceProperties = blobServiceClient.GetProperties().Value;
    Console.WriteLine(serviceProperties.HourMetrics.RetentionPolicy);
    Console.WriteLine(serviceProperties.HourMetrics.Version);
}

الخطوات التالية