Поделиться через


Интеграция Хранилище BLOB-объектов Azure с помощью соединителя сервисов

На этой странице показаны поддерживаемые типы проверки подлинности, типы клиентов и пример кода Хранилище BLOB-объектов Azure с помощью соединителя службы. На этой странице также показаны имена и значения переменных среды по умолчанию (или конфигурация Spring Boot), которые вы получаете при создании подключения к службе.

Поддерживаемые службы вычислений

Соединитель служб можно использовать для подключения следующих вычислительных служб к Хранилище BLOB-объектов Azure:

  • Служба приложений Azure
  • Приложения-контейнеры Azure
  • Функции Azure
  • Служба Azure Kubernetes (AKS)
  • Azure Spring Apps

Поддерживаемые типы проверки подлинности и типы клиентов

В таблице ниже показано, какие сочетания методов проверки подлинности и клиентов поддерживаются для подключения вычислительной службы к Хранилище BLOB-объектов Azure с помощью соединителя служб. Значение "Да" указывает, что сочетание поддерживается, а значение "Нет" указывает, что оно не поддерживается.

Тип клиента Управляемое удостоверение, назначаемое системой Управляемое удостоверение, назначаемое пользователем Секрет / строка подключения Субъект-служба
.NET Да Да Да Да
Java Да Да Да Да
Java — Spring Boot Да Да Да Да
Node.js Да Да Да Да
Python Да Да Да Да
Go Да Да Да Да
Не допускается Да Да Да Да

В этой таблице четко указано, что поддерживаются все сочетания типов клиентов и методов проверки подлинности, за исключением типа клиента Java — Spring Boot, который поддерживает только метод Secret /строка подключения. Все остальные типы клиентов могут использовать любой из методов проверки подлинности для подключения к Хранилище BLOB-объектов Azure с помощью соединителя службы.

Имена переменных среды по умолчанию или свойства приложения и пример кода

Ссылайтесь на сведения о подключении и пример кода в следующих таблицах в соответствии с типом проверки подлинности подключения и типом клиента, чтобы подключить вычислительные службы к Хранилище BLOB-объектов Azure. Дополнительные сведения см в статье Соглашение об именовании переменных среды соединителя сервисов.

Управляемое удостоверение, назначаемое системой

Клиент SpringBoot

Аутентификация с помощью управляемого удостоверения, назначаемого системой, доступна только для Spring Cloud версии 4.0 или более поздней.

Имя переменной среды по умолчанию Description Пример значения
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Включение управляемого удостоверения True
spring.cloud.azure.storage.blob.account-name Имя учетной записи хранения storage-account-name
spring.cloud.azure.storage.blob.endpoint Конечная точка хранилища BLOB-объектов https://<storage-account-name>.blob.core.windows.net/

Другие клиенты

Имя переменной среды по умолчанию Description Пример значения
AZURE_STORAGEBLOB_RESOURCEENDPOINT Конечная точка хранилища BLOB-объектов https://<storage-account-name>.blob.core.windows.net/

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Хранилище BLOB-объектов Azure с помощью управляемого удостоверения, назначаемого системой.

Вы можете использовать azure-identity для проверки подлинности с помощью управляемого удостоверения или субъекта-службы. Получите URL-адрес конечной точки Хранилище BLOB-объектов Azure из переменной среды, добавленной соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

Установка зависимостей

dotnet add package Azure.Identity

Ниже приведен пример кода для подключения к хранилищу BLOB-объектов с помощью управляемого удостоверения или субъекта-службы.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// Uncomment the following lines corresponding to the authentication type you want to use.
// system-assigned managed identity
// var credential = new DefaultAzureCredential();

// user-assigned managed identity
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

Управляемое удостоверение, назначаемое пользователем

Клиент SpringBoot

Проверка подлинности с помощью управляемого удостоверения, назначаемого пользователем, доступна только для Spring Cloud версии 4.0 или более поздней.

Имя переменной среды по умолчанию Description Пример значения
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Включение управляемого удостоверения True
spring.cloud.azure.storage.blob.account-name Имя учетной записи хранения storage-account-name
spring.cloud.azure.storage.blob.endpoint Конечная точка хранилища BLOB-объектов https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id Идентификатор клиента управляемого удостоверения, назначаемого пользователем 00001111-aaaa-2222-bbbb-3333cccc4444

Другие клиенты

Имя переменной среды по умолчанию Description Пример значения
AZURE_STORAGEBLOB_RESOURCEENDPOINT Конечная точка хранилища BLOB-объектов https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Идентификатор клиента <client-ID>

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Хранилище BLOB-объектов Azure с помощью управляемого удостоверения, назначаемого пользователем.

Вы можете использовать azure-identity для проверки подлинности с помощью управляемого удостоверения или субъекта-службы. Получите URL-адрес конечной точки Хранилище BLOB-объектов Azure из переменной среды, добавленной соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

Установка зависимостей

dotnet add package Azure.Identity

Ниже приведен пример кода для подключения к хранилищу BLOB-объектов с помощью управляемого удостоверения или субъекта-службы.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// Uncomment the following lines corresponding to the authentication type you want to use.
// system-assigned managed identity
// var credential = new DefaultAzureCredential();

// user-assigned managed identity
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

Connection string

Предупреждение

Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как управляемые удостоверения, не являются жизнеспособными.

Клиент SpringBoot

Свойства приложения Description Пример значения
azure.storage.account-name Имя учетной записи хранения BLOB-объектов <storage-account-name>
azure.storage.account-key Ключ учетной записи хранения BLOB-объектов <account-key>
azure.storage.blob-endpoint Конечная точка хранилища BLOB-объектов https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.account-name Имя учетной записи хранения BLOB-объектов для Spring Cloud Azure версии 4.0 или более поздней <storage-account-name>
spring.cloud.azure.storage.blob.account-key Ключ учетной записи хранения BLOB-объектов для Spring Cloud azure версии 4.0 или более поздней <account-key>
spring.cloud.azure.storage.blob.endpoint Конечная точка хранилища BLOB-объектов для Spring Cloud azure версии 4.0 или более поздней https://<storage-account-name>.blob.core.windows.net/

Другие клиенты

Имя переменной среды по умолчанию Description Пример значения
AZURE_STORAGEBLOB_CONNECTIONSTRING Строка подключения хранилища BLOB-объектов DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Хранилище BLOB-объектов Azure с помощью строка подключения.

Получите Хранилище BLOB-объектов Azure строка подключения из переменной среды, добавленной соединителем службы.

Установка зависимостей

dotnet add package Azure.Storage.Blob
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System; 

// get Blob connection string
var connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CONNECTIONSTRING");

// Create a BlobServiceClient object 
var blobServiceClient = new BlobServiceClient(connectionString);

Субъект-служба

Клиент SpringBoot

Проверка подлинности с помощью субъекта-службы доступна только для Spring Cloud версии 4.0 или более поздней.

Имя переменной среды по умолчанию Description Пример значения
spring.cloud.azure.storage.blob.account-name Имя учетной записи хранения storage-account-name
spring.cloud.azure.storage.blob.endpoint Конечная точка хранилища BLOB-объектов https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id Идентификатор клиента субъекта-службы 00001111-aaaa-2222-bbbb-3333cccc4444
spring.cloud.azure.storage.blob.credential.client-secret Секрет клиента для выполнения проверки подлинности субъекта-службы Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2

Другие клиенты

Имя переменной среды по умолчанию Description Пример значения
AZURE_STORAGEBLOB_RESOURCEENDPOINT Конечная точка хранилища BLOB-объектов https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Идентификатор клиента <client-ID>
AZURE_STORAGEBLOB_CLIENTSECRET Секрет клиента <client-secret>
AZURE_STORAGEBLOB_TENANTID Идентификатор клиента <tenant-ID>

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к Хранилище BLOB-объектов Azure с помощью субъекта-службы.

Вы можете использовать azure-identity для проверки подлинности с помощью управляемого удостоверения или субъекта-службы. Получите URL-адрес конечной точки Хранилище BLOB-объектов Azure из переменной среды, добавленной соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

Установка зависимостей

dotnet add package Azure.Identity

Ниже приведен пример кода для подключения к хранилищу BLOB-объектов с помощью управляемого удостоверения или субъекта-службы.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// Uncomment the following lines corresponding to the authentication type you want to use.
// system-assigned managed identity
// var credential = new DefaultAzureCredential();

// user-assigned managed identity
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

Следующие шаги

Следуйте инструкциям, чтобы узнать больше о соединителе служб.