Практическое руководство. Создание приложения Azure Active Directory и субъекта-службы с доступом к ресурсам с помощью порталаHow to: Use the portal to create an Azure AD application and service principal that can access resources

В этой статье показано, как создать новое приложение Azure Active Directory (Azure AD) и субъект-службу, которые можно использовать с контролем доступа на основе ролей.This article shows you how to create a new Azure Active Directory (Azure AD) application and service principal that can be used with the role-based access control. При наличии приложений, размещенных служб или автоматизированных средств, которым требуется доступ к ресурсам или их изменение, можно создать удостоверение для приложения.When you have applications, hosted services, or automated tools that needs to access or modify resources, you can create an identity for the app. Этот идентификатор известен как субъект-служба.This identity is known as a service principal. Доступ к ресурсам ограничен ролями, назначенными субъекту-службе, что позволяет контролировать доступ к ресурсам и на каком уровне.Access to resources is restricted by the roles assigned to the service principal, giving you control over which resources can be accessed and at which level. По соображениям безопасности мы рекомендуем всегда использовать субъекты-службы с автоматизированными средствами, чтобы не допускать их входа с помощью удостоверения пользователя.For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.

В этой статье показано, как создать субъект-службу в портал Azure с помощью портала.This article shows you how to use the portal to create the service principal in the Azure portal. Здесь рассматривается однотенантное приложение — решение, используемое в пределах одной организации.It focuses on a single-tenant application where the application is intended to run within only one organization. Обычно однотенантная архитектура используется для создания бизнес-приложений в рамках организации.You typically use single-tenant applications for line-of-business applications that run within your organization. Для создания субъекта-службы также можно использовать Azure PowerShell.You can also use Azure PowerShell to create a service principal.

Важно!

Вместо создания субъекта-службы вы можете применить управляемые удостоверения ресурсов Azure в качестве удостоверения приложения.Instead of creating a service principal, consider using managed identities for Azure resources for your application identity. Если ваш код выполняется в службе, которая поддерживает управляемые удостоверения и обращается к ресурсам, поддерживающим проверку подлинности Azure AD, управляемые удостоверения являются лучшим вариантом.If your code runs on a service that supports managed identities and accesses resources that support Azure AD authentication, managed identities are a better option for you. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure, включая службы, которые в настоящее время поддерживают их, см. в разделе Что такое управляемые удостоверения для ресурсов Azure?To learn more about managed identities for Azure resources, including which services currently support it, see What is managed identities for Azure resources?.

Регистрация приложений, объекты приложений и субъекты-службыApp registration, app objects, and service principals

Невозможно напрямую создать субъект-службу с помощью портал Azure.There is no way to directly create a service principal using the Azure portal. При регистрации приложения с помощью портал Azure объект приложения и субъект-служба автоматически создаются в домашнем каталоге или клиенте.When you register an application through the Azure portal, an application object and service principal are automatically created in your home directory or tenant. Дополнительные сведения о взаимосвязи между регистрацией приложений, объектами приложений и субъектами-службами см. в Azure Active Directory.For more information on the relationship between app registration, application objects, and service principals, read Application and service principal objects in Azure Active Directory.

Разрешения, необходимые для регистрации приложенияPermissions required for registering an app

Необходимо иметь достаточные разрешения для регистрации приложения в клиенте Azure AD и назначения приложению роли в подписке Azure.You must have sufficient permissions to register an application with your Azure AD tenant, and assign to the application a role in your Azure subscription.

Проверка разрешений Azure ADCheck Azure AD permissions

  1. Выберите Azure Active Directory.Select Azure Active Directory.

  2. Запишите роль.Note your role. Если вам назначена роль Пользователь, необходимо убедиться, что пользователи, не являющиеся администраторами, могут регистрировать приложения.If you have the User role, you must make sure that non-administrators can register applications.

    Найдите свою роль.

  3. На левой панели выберите Параметры пользователя.In the left pane, select User settings.

  4. Проверьте параметр Регистрация приложений.Check the App registrations setting. Это значение может быть задано только администратором.This value can only be set by an administrator. Если установлено значение Да, приложение в клиенте Azure AD может зарегистрировать любой пользователь.If set to Yes, any user in the Azure AD tenant can register an app.

Если для параметра регистрации приложений установлено значение Нет, регистрировать приложения такого типа могут только пользователи с ролью администратора.If the app registrations setting is set to No, only users with an administrator role may register these types of applications. Дополнительные сведения о доступных ролях администратора и конкретных разрешениях в Azure AD, которые предоставляются каждой роли, см. в разделах Доступные роли и Разрешения ролей.See available roles and role permissions to learn about available administrator roles and the specific permissions in Azure AD that are given to each role. Если вашей учетной записи назначена роль пользователя, но параметр регистрации приложения ограничен пользователями администратора, попросите администратора либо назначить вам одну из ролей администратора, которые могут создавать и управлять всеми аспектами регистрации приложений, либо разрешить пользователям регистрировать приложения.If your account is assigned the User role, but the app registration setting is limited to admin users, ask your administrator to either assign you one of the administrator roles that can create and manage all aspects of app registrations, or to enable users to register apps.

Проверка прав доступа к подпискам AzureCheck Azure subscription permissions

В вашей подписке Azure учетная запись должна иметь Microsoft.Authorization/*/Write доступ, чтобы назначить роль для приложения AD.In your Azure subscription, your account must have Microsoft.Authorization/*/Write access to assign a role to an AD app. Это разрешение предоставляется ролью владельца или администратора доступа пользователей.This action is granted through the Owner role or User Access Administrator role. Если вашей учетной записи назначена роль участника , у вас нет соответствующего разрешения.If your account is assigned the Contributor role, you don't have adequate permission. При попытке назначить роль субъекта-службы возникает ошибка.You will receive an error when attempting to assign the service principal a role.

Чтобы проверить права доступа к подписке, выполните следующие действия.To check your subscription permissions:

  1. Найдите и выберите подпискиили выберите подписки на домашней странице.Search for and select Subscriptions, or select Subscriptions on the Home page.

    Поиск

  2. Выберите подписку, в которой необходимо создать субъект-службу.Select the subscription you want to create the service principal in.

    Выбор подписки для назначения

    Если требуемая подписка не отображается, выберите фильтр глобальных подписок.If you don't see the subscription you're looking for, select global subscriptions filter. Убедитесь, что для портала была выбрана необходимая подписка.Make sure the subscription you want is selected for the portal.

  3. Выберите Мои разрешения.Select My permissions. Затем выберите ссылку Щелкните здесь, чтобы просмотреть полные сведения о доступе для этой подписки.Then, select Click here to view complete access details for this subscription.

    Выберите подписку, в которой нужно создать субъект-службу.

  4. Выберите Просмотреть в назначениях ролей , чтобы просмотреть назначенные роли, и определите, есть ли у вас соответствующие разрешения для назначения роли приложению AD.Select View in Role assignments to view your assigned roles, and determine if you have adequate permissions to assign a role to an AD app. Если разрешения нет, обратитесь к администратору подписки с просьбой назначить вам роль администратора доступа пользователей.If not, ask your subscription administrator to add you to User Access Administrator role. На следующем рисунке пользователю назначается роль владельца, а это значит, что у пользователя есть соответствующие разрешения.In the following image, the user is assigned the Owner role, which means that user has adequate permissions.

    В этом примере показано, что пользователю назначена роль владельца.

Регистрация приложения в Azure AD и создание субъекта-службыRegister an application with Azure AD and create a service principal

Перейдем к созданию удостоверения.Let's jump straight into creating the identity. Если у вас возникли сложности, проверьте необходимые разрешения, чтобы убедиться в том, что в учетной записи можно создать удостоверение.If you run into a problem, check the required permissions to make sure your account can create the identity.

  1. Войдите в учетную запись Azure через портал Azure.Sign in to your Azure Account through the Azure portal.

  2. Выберите Azure Active Directory.Select Azure Active Directory.

  3. Щелкните Регистрация приложений.Select App registrations.

  4. Выберите Новая регистрация.Select New registration.

  5. Назовите приложение.Name the application. Выберите поддерживаемый тип учетной записи, который определяет, кто может использовать приложение.Select a supported account type, which determines who can use the application. В разделе URI перенаправлениявыберите вариант Интернет для типа приложения, которое требуется создать.Under Redirect URI, select Web for the type of application you want to create. Введите URI, на который отправляется маркер доступа.Enter the URI where the access token is sent to. Вы не можете создать учетные данные для собственного приложения.You can't create credentials for a Native application. Этот тип нельзя использовать для автоматизированного приложения.You can't use that type for an automated application. Выбрав нужные значения, нажмите кнопку Зарегистрировать.After setting the values, select Register.

    Введите имя приложения

Вы создали приложение Azure AD и субъект-службу.You've created your Azure AD application and service principal.

Назначение роли приложениюAssign a role to the application

Чтобы получить доступ к ресурсам в подписке, необходимо назначить приложению роль.To access resources in your subscription, you must assign a role to the application. Укажите, какая роль предоставляет приложению необходимые разрешения.Decide which role offers the right permissions for the application. Дополнительные сведения о доступных ролях см. в статье встроенные роли Azure.To learn about the available roles, see Azure built-in roles.

Вы можете задать область действия на уровне подписки, группы ресурсов или ресурса.You can set the scope at the level of the subscription, resource group, or resource. Разрешения наследуют более низкие уровни области действия.Permissions are inherited to lower levels of scope. Например, Добавление приложения в роль читатель для группы ресурсов означает, что она может читать группу ресурсов и все содержащиеся в ней ресурсы.For example, adding an application to the Reader role for a resource group means it can read the resource group and any resources it contains.

  1. В портал Azure выберите уровень области, на которую требуется назначить приложение.In the Azure portal, select the level of scope you wish to assign the application to. Например, чтобы назначить роль в области действия подписки, выполните поиск и выберите подпискиили выберите подписки на домашней странице.For example, to assign a role at the subscription scope, search for and select Subscriptions, or select Subscriptions on the Home page.

    Например, назначьте роль в области действия подписки.

  2. Выберите определенную подписку, для которой хотите назначить приложение.Select the particular subscription to assign the application to.

    Выбор подписки для назначения

    Если требуемая подписка не отображается, выберите фильтр глобальных подписок.If you don't see the subscription you're looking for, select global subscriptions filter. Убедитесь, что для портала была выбрана необходимая подписка.Make sure the subscription you want is selected for the portal.

  3. Выберите Управление доступом (IAM) .Select Access control (IAM).

  4. Выберите Добавить назначение ролей.Select Add role assignment.

  5. Выберите роль, которая будет назначена приложению.Select the role you wish to assign to the application. Например, чтобы разрешить приложению выполнять такие действия, как Перезагрузка, Запуск и Завершение экземпляров, выберите роль участник .For example, to allow the application to execute actions like reboot, start and stop instances, select the Contributor role. Дополнительные сведения о доступных ролях по умолчанию приложения Azure AD не отображаются в доступных параметрах.Read more about the available roles By default, Azure AD applications aren't displayed in the available options. Чтобы найти приложение, выполните поиск по его имени и выберите его.To find your application, search for the name and select it.

    Выберите роль для назначения приложению

  6. Выберите Сохранить, чтобы завершить назначение роли.Select Save to finish assigning the role. Приложение отобразится в списке пользователей с ролью для этой области.You see your application in the list of users with a role for that scope.

Субъект-служба настроен.Your service principal is set up. Вы можете начать использовать его, чтобы выполнять скрипты или приложения.You can start using it to run your scripts or apps. Чтобы управлять субъектом-службой (разрешениями, разрешениями пользователя с полномочиями, просмотреть разрешения, просмотреть сведения о входе и многое другое), перейдите к разделу корпоративные приложения.To manage your service principal (permissions, user consented permissions, see which users have consented, review permissions, see sign in information, and more), go to Enterprise applications.

В следующем разделе показано, как получить значения, необходимые для использования при входе с помощью программного способа.The next section shows how to get values that are needed when signing in programmatically.

Получение значений идентификатора клиента и приложения для входаGet tenant and app ID values for signing in

При программном входе необходимо передать идентификатор клиента с запросом проверки подлинности и ИДЕНТИФИКАТОРом приложения.When programmatically signing in, you need to pass the tenant ID with your authentication request and the application ID. Вам также потребуется сертификат или ключ проверки подлинности (описывается в следующем разделе).You also need a certificate or an authentication key (described in the following section). Получить эти значения можно следующим образом.To get those values, use the following steps:

  1. Выберите Azure Active Directory.Select Azure Active Directory.

  2. В Azure Active Directory в разделе Регистрация приложений выберите нужное приложение.From App registrations in Azure AD, select your application.

  3. Скопируйте идентификатор каталога (клиента) и сохраните его в коде приложения.Copy the Directory (tenant) ID and store it in your application code.

    Скопируйте идентификатор каталога (клиента) и сохраните его в коде приложения

    Идентификатор каталога (клиента) также можно найти на странице обзора каталогов по умолчанию.The directory (tenant) ID can also be found in the default directory overview page.

  4. Скопируйте идентификатор приложения и сохраните его в коде приложения.Copy the Application ID and store it in your application code.

    Скопируйте идентификатор приложения (клиента)

Проверка подлинности: два параметраAuthentication: Two options

Существуют два типа проверки подлинности, доступные для субъектов-служб: проверка подлинности на основе пароля (секрет приложения) и проверка подлинности на основе сертификатов.There are two types of authentication available for service principals: password-based authentication (application secret) and certificate-based authentication. Рекомендуется использовать сертификат, но можно также создать секрет приложения.We recommend using a certificate, but you can also create an application secret.

Вариант 1. Отправка сертификатаOption 1: Upload a certificate

Вы можете использовать существующий сертификат, если он есть.You can use an existing certificate if you have one. При необходимости можно создать самозаверяющий сертификат только для тестирования.Optionally, you can create a self-signed certificate for testing purposes only. Чтобы создать самозаверяющий сертификат, откройте PowerShell и выполните команду New-SelfSignedCertificate со следующими параметрами, чтобы создать сертификат в хранилище сертификатов пользователя на компьютере:To create a self-signed certificate, open PowerShell and run New-SelfSignedCertificate with the following parameters to create the cert in the user certificate store on your computer:

$cert=New-SelfSignedCertificate -Subject "CN=DaemonConsoleCert" -CertStoreLocation "Cert:\CurrentUser\My"  -KeyExportPolicy Exportable -KeySpec Signature

Экспортируйте этот сертификат в файл с помощью оснастки MMC " Управление сертификатом пользователя ", доступной на панели управления Windows.Export this certificate to a file using the Manage User Certificate MMC snap-in accessible from the Windows Control Panel.

  1. В меню Пуск выберите пункт выполнить , а затем введите CertMgr. msc.Select Run from the Start menu, and then enter certmgr.msc.

    Появится средство диспетчера сертификатов для текущего пользователя.The Certificate Manager tool for the current user appears.

  2. Для просмотра сертификатов в разделе Сертификаты — текущий пользователь в левой области разверните узел личный каталог.To view your certificates, under Certificates - Current User in the left pane, expand the Personal directory.

  3. Щелкните правой кнопкой мыши созданный сертификат, выберите все задачи — >экспорт.Right-click on the cert you created, select All tasks->Export.

  4. Следуйте указаниям мастера экспорта сертификатов.Follow the Certificate Export wizard. Не экспортируйте закрытый ключ и экспортируйте его в. CER файл.Do not export the private key, and export to a .CER file.

Чтобы отправить сертификат, выполните следующие действия.To upload the certificate:

  1. Выберите Azure Active Directory.Select Azure Active Directory.

  2. В Azure Active Directory в разделе Регистрация приложений выберите нужное приложение.From App registrations in Azure AD, select your application.

  3. Выберите Сертификаты и секреты.Select Certificates & secrets.

  4. Выберите отправить сертификат и выберите сертификат (существующий сертификат или самозаверяющий сертификат, который вы экспортировали).Select Upload certificate and select the certificate (an existing certificate or the self-signed certificate you exported).

    Выберите отправить сертификат и выберите тот, который вы хотите добавить.

  5. Выберите Добавить.Select Add.

После регистрации сертификата в приложении на портале регистрации приложений необходимо включить код клиентского приложения для использования сертификата.After registering the certificate with your application in the application registration portal, you need to enable the client application code to use the certificate.

Вариант 2. Создание нового секрета приложенияOption 2: Create a new application secret

Если вы решили не использовать сертификат, можно создать новый секрет приложения.If you choose not to use a certificate, you can create a new application secret.

  1. Выберите Azure Active Directory.Select Azure Active Directory.

  2. В Azure Active Directory в разделе Регистрация приложений выберите нужное приложение.From App registrations in Azure AD, select your application.

  3. Выберите Сертификаты и секреты.Select Certificates & secrets.

  4. Выберите Секреты клиента -> Новый секрет клиента.Select Client secrets -> New client secret.

  5. Введите описание и срок действия секрета.Provide a description of the secret, and a duration. Когда все будет готово, нажмите Добавить.When done, select Add.

    После сохранения секрета клиента отображается значение секрета клиента.After saving the client secret, the value of the client secret is displayed. Скопируйте это значение, так как вы не сможете получить этот ключ позже.Copy this value because you won't be able to retrieve the key later. Вы получите значение ключа с ИДЕНТИФИКАТОРом приложения для входа в качестве приложения.You will provide the key value with the application ID to sign in as the application. Сохраните значение ключа, чтобы приложение могло получить к нему доступ.Store the key value where your application can retrieve it.

    Скопируйте значение секрета, так как вы не сможете получить его позже

Настройка политик доступа к ресурсамConfigure access policies on resources

Помните, что может потребоваться настроить дополнительные разрешения для ресурсов, к которым приложению требуется доступ.Keep in mind, you might need to configure additional permissions on resources that your application needs to access. Например, необходимо также обновить политики доступа для хранилища ключей , чтобы предоставить приложению доступ к ключам, секретам или сертификатам.For example, you must also update a key vault's access policies to give your application access to keys, secrets, or certificates.

  1. В портал Azureперейдите к своему хранилищу ключей и выберите политики доступа.In the Azure portal, navigate to your key vault and select Access policies.
  2. Выберите Добавить политику доступа, а затем выберите разрешения ключа, секрета и сертификата, которые вы хотите предоставить приложению.Select Add access policy, then select the key, secret, and certificate permissions you want to grant your application. Выберите ранее созданный субъект-службу.Select the service principal you created previously.
  3. Выберите Добавить , чтобы добавить политику доступа, а затем нажмите кнопку сохранить , чтобы зафиксировать изменения.Select Add to add the access policy, then Save to commit your changes. Добавление политики доступаAdd access policy

Дальнейшие шагиNext steps