Принудительное подключение HTTPS к хранилищу BLOB-объектов Azure

Я хотел бы только разрешить безопасное соединение HTTP (HTTPS) / доступ к контейнеру больших двоичных объектов через URL-адрес подписи общего доступа (SAS) в хранилище BLOB-объектов Azure (ABS). Этого можно достичь? Как?


person Rotem Varon    schedule 03.05.2016    source источник
comment
Как вы создаете SAS? Вы используете клиентскую библиотеку .Net Storage?   -  person Gaurav Mantri    schedule 03.05.2016
comment
@GauravMantri Да. Я использую это: nuget.org/packages/WindowsAzure.Storage   -  person Rotem Varon    schedule 03.05.2016


Ответы (2)


Используйте это переопределение CloudBlobContainer.GetSharedAccessSignature для включения ограничения протокола.

Вот пример кода, который делает то же самое:

    static void GetHttpsOnlySas()
    {
        var storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
        var blobClient = storageAccount.CreateCloudBlobClient();
        var blobContainer = blobClient.GetContainerReference("container-name");
        var sas = blobContainer.GetSharedAccessSignature(new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.List,
            SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1)
        }, 
        null, 
        SharedAccessProtocol.HttpsOnly,//This option will force SAS to work only on HTTPS
        null);
    }
person Gaurav Mantri    schedule 03.05.2016

При создании токена sas вы можете установить параметр «протокол». Если вы установите его на https, будет разрешен только https. Дополнительную информацию можно найти здесь: https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/

При использовании sdk для создания токена sas необходимо использовать следующий метод: https://msdn.microsoft.com/en-us/library/azure/mt616571.aspx и установите параметр SharedAccessProtocol.

person RoteS    schedule 03.05.2016