Настройка Службы приложений или приложения "Функции Azure" для использования имени для входа в Azure ADConfigure your App Service or Azure Functions app to use Azure AD login

В этой статье показано, как настроить Службу приложений Azure или Функции Azure для использования Azure Active Directory в качестве поставщика проверки подлинности.This article shows you how to configure Azure App Service or Azure Functions to use Azure Active Directory (Azure AD) as an authentication provider.

Примечание

Регистрацию приложения Azure Active Directory версии 1 можно настроить с помощью стандартного потока параметров.The express settings flow sets up an AAD V1 application registration. Если вы хотите использовать Azure Active Directory версии 2.0 (включая MSAL), выполните дополнительные инструкции по настройке.If you wish to use Azure Active Directory v2.0 (including MSAL), please follow the advanced configuration instructions.

При настройке приложения и проверке подлинности следуйте приведенным ниже рекомендациям:Follow these best practices when setting up your app and authentication:

  • Предоставьте каждому приложению Службы приложений свои разрешения и согласие.Give each App Service app its own permissions and consent.
  • Настройте каждое приложение Службы приложений с собственной регистрацией.Configure each App Service app with its own registration.
  • Создайте отдельные регистрации приложений для отдельных слотов развертывания, чтобы не предоставлять общий доступ к разрешениям в средах.Avoid permission sharing between environments by using separate app registrations for separate deployment slots. Это поможет предотвратить проблемы с рабочим приложением при тестировании нового кода.When testing new code, this practice can help prevent issues from affecting the production app.

Примечание

В настоящее время эта функция недоступна в плане "Потребление Linux" для Функций AzureThis feature is currently not available on Linux Consumption plan for Azure Functions

Настройка с помощью стандартных параметров Configure with express settings

Примечание

Параметр Экспресс недоступен для облачных систем государственных организаций.The Express option is not available for government clouds.

  1. На Портал Azure найдите и выберите Службы приложений, а затем выберите приложение.In the Azure portal, search for and select App Services, and then select your app.

  2. В области навигации слева выберите пункт Проверка подлинности/авторизация > Вкл. .From the left navigation, select Authentication / Authorization > On.

  3. Выберите Azure Active Directory > Экспресс.Select Azure Active Directory > Express.

    Если вы хотите выбрать существующую регистрацию приложения, выполните следующие действия:If you want to choose an existing app registration instead:

    1. Выберите Выбрать существующее приложение AD, затем щелкните Приложение Azure AD.Choose Select Existing AD app, then click Azure AD App.
    2. Выберите существующую регистрацию приложения и нажмите кнопку OK.Choose an existing app registration and click OK.
  4. Нажмите кнопку ОК, чтобы зарегистрировать приложение службы приложений в Azure Active Directory.Select OK to register the App Service app in Azure Active Directory. Будет создано приложение регистрации.A new app registration is created.

    Стандартные параметры Azure Active Directory

  5. (Необязательно.) По умолчанию Служба приложений обеспечивает проверку подлинности, но не ограничивает авторизованный доступ к содержимому сайта и API.(Optional) By default, App Service provides authentication but doesn't restrict authorized access to your site content and APIs. Авторизация пользователей должна быть включена в код приложения.You must authorize users in your app code. Чтобы предоставить доступ к приложению только пользователям, прошедшим проверку подлинности в Azure Active Directory, установите для параметра Предпринимаемое действие, если проверка подлинности для запроса не выполнена значение Войти с использованием Azure Active Directory.To restrict app access only to users authenticated by Azure Active Directory, set Action to take when request is not authenticated to Log in with Azure Active Directory. При установке этой функции приложению требуется выполнить проверку подлинности всех запросов.When you set this functionality, your app requires all requests to be authenticated. Оно также перенаправляет в Azure Active Directory для проверки подлинности все запросы, которые ее не прошли.It also redirects all unauthenticated to Azure Active Directory for authentication.

    Внимание!

    Таким образом, ограниченный доступ применяется ко всем вызовам приложения, что может быть нежелательно для приложений, у которых есть общедоступная домашняя страница (как во многих одностраничных приложениях).Restricting access in this way applies to all calls to your app, which might not be desirable for apps that have a publicly available home page, as in many single-page applications. Для таких приложений может быть предпочтительным установить параметр Разрешить анонимные запросы (нет действия) . При этом приложение выполняет вход самостоятельно.For such applications, Allow anonymous requests (no action) might be preferred, with the app manually starting login itself. Дополнительные сведения см. в разделе Поток проверки подлинности.For more information, see Authentication flow.

  6. Щелкните Сохранить.Select Save.

Настройка с помощью дополнительных параметров Configure with advanced settings

Вы можете настроить параметры приложения вручную, если хотите использовать регистрацию приложения из другого клиента Azure AD.You can configure app settings manually if you want to use an app registration from a different Azure AD tenant. Для выполнения этой настраиваемой конфигурации, сделайте следующее:To complete this custom configuration:

  1. Создайте регистрацию в Azure AD.Create a registration in Azure AD.
  2. Укажите некоторые сведения о регистрации в Службе приложений.Provide some of the registration details to App Service.

Создание регистрации приложения в Azure AD для приложения Службы приложений Create an app registration in Azure AD for your App Service app

При настройке приложения Службы приложений необходимо иметь следующую информацию:You'll need the following information when you configure your App Service app:

  • Идентификатор клиентаClient ID
  • Tenant IDTenant ID
  • секрет клиента (необязательно);Client secret (optional)
  • универсальный код ресурса (URI) идентификатора приложения.Application ID URI

Выполните следующие действия:Perform the following steps:

  1. Войдите на портал Azure найдите и выберите Службы приложений, а затем выберите приложение.Sign in to the Azure portal, search for and select App Services, and then select your app. Запишите URL-адрес приложения.Note your app's URL. Он будет использоваться для настройки регистрации приложения Azure Active Directory.You'll use it to configure your Azure Active Directory app registration.

  2. Последовательно выберите элементы Azure Active Directory > Регистрация приложений > Новая регистрация.Select Azure Active Directory > App registrations > New registration.

  3. На странице Регистрация приложения введите Имя для регистрации приложения.In the Register an application page, enter a Name for your app registration.

  4. В разделе URI перенаправления выберите Интернет и введите <app-url>/.auth/login/aad/callback.In Redirect URI, select Web and type <app-url>/.auth/login/aad/callback. Например, https://contoso.azurewebsites.net/.auth/login/aad/callback.For example, https://contoso.azurewebsites.net/.auth/login/aad/callback.

  5. Нажмите кнопку создания.Select Create.

  6. После создания регистрации приложения скопируйте идентификатор приложения (клиент) и идентификатор каталога (клиент) для дальнейшего использования.After the app registration is created, copy the Application (client) ID and the Directory (tenant) ID for later.

  7. Выберите Проверка подлинности.Select Authentication. В разделе Неявное предоставление активируйте параметр Токен идентификатора, чтобы разрешить вход пользователей OpenID Connect из Службы приложений.Under Implicit grant, enable ID tokens to allow OpenID Connect user sign-ins from App Service.

  8. (Необязательно.) Выберите Фирменная символика.(Optional) Select Branding. В поле URL-адрес домашней страницы введите URL-адрес приложения Службы приложений и выберите Сохранить.In Home page URL, enter the URL of your App Service app and select Save.

  9. Выберите Предоставление API > Установить.Select Expose an API > Set. В приложении с одним клиентом вставьте URL-адрес приложения Службы приложений и выберите Сохранить, а для приложения с несколькими клиентами вставьте URL-адрес на основе одного из проверенных доменов клиента, а затем нажмите кнопку Сохранить.For single-tenant app, paste in the URL of your App Service app and select Save and for multi-tenant app, paste in the URL which is based on one of tenant verified domains and then select Save.

    Примечание

    Это универсальный код ресурса (URI) идентификатора приложения регистрации приложения.This value is the Application ID URI of the app registration. Если веб-приложению требуется доступ к API в облаке, вам нужен будет URI идентификатора приложения веб-приложения при настройке ресурса облачной Службы приложений.If your web app requires access to an API in the cloud, you need the Application ID URI of the web app when you configure the cloud App Service resource. Его можно использовать, например, если требуется, чтобы облачная служба явно предоставляла доступ к веб-приложению.You can use this, for example, if you want the cloud service to explicitly grant access to the web app.

  10. Нажмите Добавить группу.Select Add a scope.

    1. В разделе Имя области введите user_impersonation.In Scope name, enter user_impersonation.
    2. В текстовых полях введите имя и описание области согласия, которые пользователи должны видеть на странице согласия.In the text boxes, enter the consent scope name and description you want users to see on the consent page. Например, введите Доступ к моему приложению.For example, enter Access my app.
    3. Выберите Добавить область.Select Add scope.
  11. (Необязательно) Чтобы создать секрет клиента, выберите Сертификаты и секреты > Создать секрет клиента > Добавить.(Optional) To create a client secret, select Certificates & secrets > New client secret > Add. Скопируйте значение секрета клиента, показанное на странице.Copy the client secret value shown in the page. Он больше не будет отображаться.It won't be shown again.

  12. (Необязательно) Чтобы добавить несколько URL-адресов ответа, выберите Проверка подлинности.(Optional) To add multiple Reply URLs, select Authentication.

Включение Azure Active Directory в приложение Службы приложений Enable Azure Active Directory in your App Service app

  1. На Портал Azure найдите и выберите Службы приложений, а затем выберите приложение.In the Azure portal, search for and select App Services, and then select your app.

  2. В левой области в разделе Параметры выберите Проверка подлинности/авторизация > Вкл.In the left pane, under Settings, select Authentication / Authorization > On.

  3. (Необязательно) По умолчанию проверка подлинности службы приложений разрешает доступ к приложению без проверки подлинности.(Optional) By default, App Service authentication allows unauthenticated access to your app. Чтобы принудительно выполнить проверку подлинности, задайте для параметра Действие, которое необходимо выполнить, если проверка подлинности запроса не выполнена значение Войти с помощью Azure Active Directory.To enforce user authentication, set Action to take when request is not authenticated to Log in with Azure Active Directory.

  4. В разделе Поставщики проверки подлинности выберите Azure Active Directory.Under Authentication Providers, select Azure Active Directory.

  5. В разделе Режим управления выберите Расширенный и настройте проверку подлинности Службы приложений в соответствии со следующей таблицей:In Management mode, select Advanced and configure App Service authentication according to the following table:

    ПолеField ОписаниеDescription
    Идентификатор клиентаClient ID Используйте идентификатор приложения (клиент) регистрации приложения.Use the Application (client) ID of the app registration.
    Url-адрес издателяIssuer Url Используйте <authentication-endpoint>/<tenant-id>/v2.0 и замените <authentication-endpoint> конечной точкой проверки подлинности для облачной среды (например, " https://login.microsoft.com " для глобального Azure), а также замените <tenant-id> идентификатором каталога (клиента) , в котором была создана регистрация приложения.Use <authentication-endpoint>/<tenant-id>/v2.0, and replace <authentication-endpoint> with the authentication endpoint for your cloud environment (e.g., "https://login.microsoft.com" for global Azure), also replacing <tenant-id> with the Directory (tenant) ID in which the app registration was created. Это значение используется для перенаправления пользователей в правильный клиент Azure AD, а также для скачивания соответствующих метаданных, чтобы определить, например, соответствующие ключи подписей маркера и значение утверждения поставщика маркеров.This value is used to redirect users to the correct Azure AD tenant, as well as to download the appropriate metadata to determine the appropriate token signing keys and token issuer claim value for example. Для приложений, использующих Azure AD версии v1 и для приложений функций Azure, не указывайте /v2.0 в URL-адресе.For applications that use Azure AD v1 and for Azure Functions apps, omit /v2.0 in the URL.
    Секрет клиента (необязательно)Client Secret (Optional) Используйте секрет клиента, созданный при регистрации приложения.Use the client secret you generated in the app registration.
    Разрешенные аудитории маркеровAllowed Token Audiences Если это облачное или серверное приложение и вы хотите разрешить использовать маркеры проверки подлинности из веб-приложения, введите в этом поле URI идентификатора приложения веб-приложения.If this is a cloud or server app and you want to allow authentication tokens from a web app, add the Application ID URI of the web app here. Настроенный идентификатор клиента всегда косвенно считается разрешенной аудиторией.The configured Client ID is always implicitly considered to be an allowed audience.
  6. Нажмите кнопку ОК, а затем нажмите кнопку Сохранить.Select OK, and then select Save.

Теперь вы можете использовать Azure Active Directory для проверки подлинности в приложении Службы приложений.You're now ready to use Azure Active Directory for authentication in your App Service app.

Настройка собственного клиентского приложенияConfigure a native client application

Вы можете зарегистрировать собственные клиенты, чтобы разрешить проверку подлинности размещенных в приложении веб-API с помощью клиентской библиотеки, такой как Библиотека проверки подлинности Active Directory.You can register native clients to allow authentication to Web API's hosted in your app using a client library such as the Active Directory Authentication Library.

  1. На Портал Azure последовательно выберите Active Directory > Регистрация приложений > Новая регистрация.In the Azure portal, select Active Directory > App registrations > New registration.

  2. На странице Регистрация приложения введите Имя для регистрации приложения.In the Register an application page, enter a Name for your app registration.

  3. В разделе URI перенаправления выберите Общедоступный клиент (мобильный и классический) и введите URL-адрес <app-url>/.auth/login/aad/callback.In Redirect URI, select Public client (mobile & desktop) and type the URL <app-url>/.auth/login/aad/callback. Например, https://contoso.azurewebsites.net/.auth/login/aad/callback.For example, https://contoso.azurewebsites.net/.auth/login/aad/callback.

    Примечание

    Для приложения Microsoft Store вместо этого используйте идентификатор безопасности пакета в качестве универсального код ресурса (URI).For a Microsoft Store application, use the package SID as the URI instead.

  4. Нажмите кнопку создания.Select Create.

  5. После создания регистрации приложения скопируйте значение идентификатора приложения (клиент) .After the app registration is created, copy the value of Application (client) ID.

  6. Выберите Разрешения API > Добавить разрешение > Мои API.Select API permissions > Add a permission > My APIs.

  7. Выберите регистрацию приложения, созданную ранее для приложения Службы приложений.Select the app registration you created earlier for your App Service app. Если регистрация приложения не отображается, убедитесь, что вы добавили область user_impersonation в разделе Создание регистрации приложения в Azure AD для приложения Службы приложений.If you don't see the app registration, make sure that you've added the user_impersonation scope in Create an app registration in Azure AD for your App Service app.

  8. В разделе Делегированные разрешения выберите user_impersonation и Добавить разрешения.Under Delegated permissions, select user_impersonation, and then select Add permissions.

Теперь вы настроили собственное клиентское приложение, у которого есть доступ к вашему приложению Службы приложений от имени пользователя.You have now configured a native client application that can access your App Service app on behalf of a user.

Настройка клиентского приложения в качестве управляющей программы для вызовов между службамиConfigure a daemon client application for service-to-service calls

Приложение может получить маркер для вызова веб-интерфейса API, размещенного в Службе приложений или приложении-функции, от собственного имени (а не от имени пользователя).Your application can acquire a token to call a Web API hosted in your App Service or Function app on behalf of itself (not on behalf of a user). Такой сценарий подходит для неинтерактивных управляющих приложений, которые выполняют свои задачи без входа пользователя в систему.This scenario is useful for non-interactive daemon applications that perform tasks without a logged in user. В нем используется стандартное предоставление учетных данных клиента OAuth 2.0.It uses the standard OAuth 2.0 client credentials grant.

  1. На Портал Azure последовательно выберите Active Directory > Регистрация приложений > Новая регистрация.In the Azure portal, select Active Directory > App registrations > New registration.
  2. На странице Регистрация приложения введите значение в поле Имя для регистрации управляющего приложения.In the Register an application page, enter a Name for your daemon app registration.
  3. Для управляющего приложения не требуется URI перенаправления, поэтому это поле можно оставить пустым.For a daemon application, you don't need a Redirect URI so you can keep that empty.
  4. Нажмите кнопку создания.Select Create.
  5. После создания регистрации приложения скопируйте значение идентификатора приложения (клиент) .After the app registration is created, copy the value of Application (client) ID.
  6. Выберите Сертификаты и секреты > Новый секрет клиента > Добавить.Select Certificates & secrets > New client secret > Add. Скопируйте значение секрета клиента, показанное на странице.Copy the client secret value shown in the page. Он больше не будет отображаться.It won't be shown again.

Теперь вы можете запросить маркер доступа с помощью идентификатора клиента и секрета клиента, присвоив параметру resource значение URI идентификатора приложения для целевого приложения.You can now request an access token using the client ID and client secret by setting the resource parameter to the Application ID URI of the target app. Полученный маркер доступа можно представить целевому приложению через стандартный заголовок авторизации OAuth 2.0, а система проверки подлинности и авторизации в Службе приложений проверит и применит маркер обычным образом, чтобы подтвердить подлинность вызывающего объекта (которым в этом сценарии является приложение, а не пользователь).The resulting access token can then be presented to the target app using the standard OAuth 2.0 Authorization header, and App Service Authentication / Authorization will validate and use the token as usual to now indicate that the caller (an application in this case, not a user) is authenticated.

В настоящее время это позволяет любому клиентскому приложению в арендаторе Azure AD запросить маркер доступа и пройти проверку подлинности в целевом приложении.At present, this allows any client application in your Azure AD tenant to request an access token and authenticate to the target app. Если вы хотите применить авторизацию, чтобы предоставлять доступ для определенных клиентских приложений, придется выполнить дополнительную настройку.If you also want to enforce authorization to allow only certain client applications, you must perform some additional configuration.

  1. Определите роль приложения в манифесте регистрации, который определяет защищаемую Службу приложений или приложение-функцию.Define an App Role in the manifest of the app registration representing the App Service or Function app you want to protect.
  2. На странице регистрации приложения, которое представляет требующего авторизации клиента, выберите Разрешения API > Добавить разрешение > Мои API.On the app registration representing the client that needs to be authorized, select API permissions > Add a permission > My APIs.
  3. Выберите созданную ранее регистрацию приложения.Select the app registration you created earlier. Если регистрация приложения здесь не отображается, убедитесь, что вы добавили роль приложения.If you don't see the app registration, make sure that you've added an App Role.
  4. В разделе Разрешения приложения выберите созданную ранее роль приложения, а затем выберите Добавить разрешения.Under Application permissions, select the App Role you created earlier, and then select Add permissions.
  5. Обязательно щелкните элемент Предоставить согласие администратора, чтобы разрешить клиентскому приложению запрашивать разрешение.Make sure to click Grant admin consent to authorize the client application to request the permission.
  6. Как и в предыдущем сценарии (еще до добавления ролей), теперь вы можете запросить маркер доступа для того же целевого объекта resource, и этот маркер доступа будет содержать утверждение roles со списком ролей приложения, которые утверждены для клиентского приложения.Similar to the previous scenario (before any roles were added), you can now request an access token for the same target resource, and the access token will include a roles claim containing the App Roles that were authorized for the client application.
  7. В коде целевой Службы приложений или приложения-функции теперь можно проверить наличие ожидаемых ролей в маркере (эта операция не выполняется системой проверки подлинности и авторизации в Службе приложений).Within the target App Service or Function app code, you can now validate that the expected roles are present in the token (this is not performed by App Service Authentication / Authorization). Дополнительные сведения см. в разделе Access user claims (Доступ к утверждениям пользователя).For more information, see Access user claims.

Итак, вы настроили для клиентского приложения управляющей программы возможность доступа к приложению Службы приложений с собственным идентификатором.You have now configured a daemon client application that can access your App Service app using its own identity.

Дальнейшие действия Next steps