Доступ к Общедоступному API Azure Sphere с помощью управляемого удостоверения AAD

Этот метод можно использовать для проверки подлинности в любой службе, поддерживающей проверку подлинности Azure Active Directory (AAD), без учетных данных в коде. Управляемое удостоверение AAD обрабатывает создание или продление субъектов-служб от вашего имени. Это субъект-служба особого типа, который может использоваться только с ресурсами Azure. При удалении управляемого удостоверения соответствующий субъект-служба автоматически удаляется.

Назначаемое системой. Некоторые службы Azure позволяют включить управляемое удостоверение непосредственно в экземпляре службы. Например, Служба приложений Azure. При включении управляемого удостоверения, назначаемого системой, удостоверение создается в Azure AD, привязанном к жизненному циклу экземпляра службы. Поэтому при удалении ресурса Azure автоматически удаляет удостоверение. По умолчанию только этот ресурс Azure может использовать это удостоверение для запроса маркеров из Azure AD.

Необходимые условия

В следующем разделе объясняется, как вызвать общедоступный API Azure Sphere (PAPI) из веб-приложения Azure с помощью управляемого удостоверения.

Шаг 1. Включение удостоверения, назначаемого системой, в ресурсе

Чтобы включить удостоверение, назначаемое системой, в ресурсе и найти идентификатор объекта для проекта:

  1. В портал Azure в области навигации слева щелкните Службы приложений.
  2. Выберите необходимые подписки в раскрывающемся списке и выберите свое приложение в результатах поиска.
  3. В меню приложения логики в разделе Параметры выберите Удостоверение.
  4. Включите удостоверение, назначаемое системой, задав для параметра Состояние значениеВкл.
  5. Нажмите кнопку Сохранить.
  6. Скопируйте идентификатор объекта.

Шаг 2. Добавление управляемого удостоверения в клиент Azure Sphere

Примечание

Прежде чем приступить к этому шагу, убедитесь, что у вас есть следующее:

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

Удостоверение пользователя можно создать как <ObjectID>@<TenantID.onmicrosoft.com>.

В следующем примере мы создадим пользователя, используя сочетание идентификатора xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx объекта и Azure AD идентификатора zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz клиента в идентификаторе tttttttt-tttt-tttt-tttt-ttttttttttttклиента Azure Sphere , а затем добавим роль Участника для этого пользователя.

  1. Войдите с помощью входа в Azure Sphere с помощью Azure Sphere CLI:

    azsphere login
    
  2. Выберите необходимый клиент:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. Чтобы создать пользователя субъекта-службы для клиента Azure Sphere, выполните следующие действия.

    azsphere register-user --new-user  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    
  4. Чтобы добавить пользователя в требуемую роль, выполните следующие действия:

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

Шаг 3. Добавление пакета NuGet Azure.Identity в проект

Добавьте пакет NuGet Azure.Identity в проект. Маркер общедоступного API Azure Sphere (PAPI) можно получить с помощью DefaultAzureCredential.

Пример см. в фрагменте кода:

    public static async Task<string> GetAS3Token()
    {
        DefaultAzureCredential credential = new DefaultAzureCredential();
        var result = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(
        new[] { "https://firstparty.sphere.azure.net/api/.default" }));
        return result.Token;
    }