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


Настройка приложения OpenID Connect OAuth из коллекции приложений Microsoft Entra

  1. Войдите в Центр администрирования Microsoft Entra как минимум в качестве Администратора облачных приложений.

  2. Перейдите к приложениям Identity>Applications>Enterprise.

    Колонка

  3. В верхней части диалогового окна выберите Создать приложение.

    Кнопка

  4. В поле поиска введите имя приложения. Выберите нужное приложение на панели результатов и выполните его регистрацию.

    OpenID в списке результатов

  5. На странице "Имя приложения" нажмите кнопку "Регистрация ".

    кнопку Добавить

    Примечание.

    Администратор клиента должен нажать кнопку "Регистрация" и дать согласие на регистрацию приложения. Затем приложение добавляется во внешний клиент, где можно выполнять конфигурации. Нет необходимости явно добавлять приложение.

  6. Вы перенаправляетесь на страницу входа приложения или страницу идентификатора Microsoft Entra для учетных данных входа.

  7. После успешной проверки подлинности дайте согласие на странице согласия. После этого откроется домашняя страница приложения.

    Примечание.

    Вы можете добавить только один экземпляр приложения. Если вы уже добавили его и еще раз попытались предоставить согласие, он еще раз не добавлен в клиент. Поэтому можно использовать только один экземпляр приложения в клиенте.

  8. Чтобы добавить приложение OpenID из коллекции, выполните инструкции из приведенного ниже видео.

Поток проверки подлинности при использовании OpenID Connect

Наиболее простой процесс входа содержит следующие этапы.

Поток проверки подлинности при использовании OpenID Connect

Мультитенантное приложение

Мультитенантное приложение предназначено для использования не только в одной организации, а в нескольких. Как правило, это приложения категории "программное обеспечение как услуга" (SaaS), которые создают независимые поставщики программных продуктов (ISV).

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

Затем пользователь или администратор может предоставить согласие для приложения. Согласие дает приложению доступ к необходимым данным и регистрирует приложение в каталоге.

Примечание.

Если вы делаете свое приложение доступным для пользователей в нескольких каталогах, нужно предусмотреть механизм, который будет определять, членами какого арендатора они являются. Одноарендное приложение должно искать пользователя только в собственном каталоге. Мультитенантное приложение должно определить конкретного пользователя из всех каталогов в идентификаторе Microsoft Entra.

Для выполнения этой задачи Microsoft Entra ID предоставляет единую конечную точку аутентификации, куда любое мультитенантное приложение может направлять запросы на вход, вместо конечной точки, предназначенной для конкретного клиента. Эта конечная точка https://login.microsoftonline.com/common для всех каталогов в Microsoft Entra ID. Конечной точкой для конкретного арендатора может быть https://login.microsoftonline.com/contoso.onmicrosoft.com.

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

По умолчанию идентификатор Microsoft Entra ID поддерживает мультитенантные приложения. Они легко доступные между организациями и простые в использовании после принятия согласия.

Платформу согласия Microsoft Entra можно использовать для разработки мультитенантных веб-приложений и собственных клиентских приложений. Эти приложения разрешают вход с использованием учетных записей пользователей из тенанта Microsoft Entra, отличного от того, в котором зарегистрировано приложение. Им также может потребоваться доступ к веб-API, таким как:

  • API Microsoft Graph для доступа к идентификатору Microsoft Entra, Intune и службам в Microsoft 365.
  • других API служб Майкрософт;
  • ваших собственных веб-API.

Эта платформа использует согласие пользователя или администратора на регистрацию приложения в своем каталоге. Для регистрации может потребоваться доступ к данным каталога. После предоставления такого согласия клиентское приложение сможет вызывать API Microsoft Graph от имени этого пользователя и пользоваться сведениями по мере необходимости.

API Microsoft Graph предоставляет доступ к данным в Microsoft 365, например:

  • Календари и сообщения из Exchange.
  • сайты и списки SharePoint
  • Документы из OneDrive.
  • Блокноты в OneNote.
  • Задачи из Планировщика
  • книги Excel.

API Graph также предоставляет доступ к пользователям и группам из Microsoft Entra ID и другим объектам данных из других облачных служб Майкрософт.

Ниже показаны особенности работы процедуры согласия для разработчика приложения и пользователя.

  1. Предположим, у вас есть приложение веб-клиента, которому необходимо запросить конкретные разрешения для получения доступа к ресурсу или API. Портал Azure используется для объявления запросов на разрешения во время настройки. Как и другие параметры конфигурации, они становятся частью регистрации Microsoft Entra приложения. Для получения пути запроса разрешений необходимо выполнить следующие действия:

    a. Выберите регистрацию приложений в левой части меню и откройте приложение, введя имя приложения в поле поиска.

    Снимок экрана, на котором пункт

    b. Выберите "Просмотр разрешений API".

    Снимок экрана: страница

    c. Выберите Добавить разрешение.

    Снимок экрана: раздел

    d. Выберите Microsoft Graph.

    д) Выберите необходимые параметры из списка Делегированные разрешения и Разрешения приложения.

    Graph API

  2. Предположим, что разрешения приложения были обновлены. Само приложение запущено, а пользователь собирается воспользоваться им в первый раз. Сначала приложению необходимо получить код авторизации из конечной точки /authorize системы Microsoft Entra ID. Код авторизации можно использовать для получения новых токенов доступа и обновления.

  3. Если пользователь еще не прошел аутентификацию, конечная точка /authorize Microsoft Entra ID запросит ввод учетных данных.

    Снимок экрана запроса на вход для учетной записи

  4. После того как пользователь вошёл в систему, Microsoft Entra ID определяет, нужно ли показать пользователю страницу согласия. Это решение будет зависеть от того, предоставил ли этот пользователь (или администратор его организации) свое согласие для приложения.

    Если согласие не предоставлено, Microsoft Entra запрашивает согласие пользователя и отображает необходимые разрешения, необходимые для работы. Разрешения, отображаемые в диалоговом окне согласия, соответствуют тем, которые выбраны в делегированных разрешениях.

    Страница предоставления согласия

Обычный пользователь может дать согласие на некоторые разрешения. Для других разрешений требуется согласие администратора арендатора.

Обладая правами администратора, вы можете также согласиться использовать делегированные разрешения приложения от имени всех пользователей в клиенте. Согласие администратора предотвращает появление диалогового окна согласия отдельно для каждого пользователя в клиенте. Пользователи, у которых есть роль администратора, могут предоставить согласие. Выберите Управление>разрешениями API. В разделе "Предоставить согласие" выберите "Предоставить согласие администратора".

Примечание.

Для одностраничных приложений (SPA), использующих MSAL.js, сейчас требуется явным образом предоставить разрешение с помощью кнопки Дать согласие администратора. В противном случае происходит сбой приложения при запросе маркера доступа.

Для разрешений "только для приложения" всегда требуется согласие администратора арендатора. Если приложение запрашивает разрешение "только для приложения", и пользователь пытается войти в приложение, появится сообщение об ошибке. Это сообщение информирует о том, что пользователь не может предоставить согласие.

Если приложение использует разрешения, требующие согласия администратора, то в приложении должен быть элемент, такой как кнопка или ссылка, с помощью которого администратор может запустить действие. Запрос, отправляемый приложением для этого действия, является обычным запросом авторизации OAuth2 или OpenID Connect. Этот запрос содержит параметр строки запроса prompt=admin_consent.

Когда администратор предоставит свое согласие, а в арендаторе клиента будет создан основной сервис, в последующих запросах на вход не нужно будет указывать параметр `prompt=admin_consent`. После того как администратор решил, что запрошенные разрешения являются приемлемыми, у других пользователей клиента согласие запрашиваться не будет.

Администратор клиента может отключить возможность обычным пользователям предоставлять согласие для приложений. Если эта возможность отключена, то для использования приложения в клиенте всегда требуется согласие администратора. Чтобы протестировать приложение, в котором отключена возможность предоставления согласия для конечных пользователей, найдите соответствующий параметр на портале Azure. Перейдите к разделуПараметры пользователя и выберите Корпоративные приложения.

Параметр prompt=admin_consent может использоваться приложениями, запрашивающими разрешения, которые не требуют согласия администратора. Примером может служить приложение, которое требует одноразовую регистрацию администратора арендатора. После этой регистрации согласие у других пользователей не запрашивается.

Представьте, что приложение требует согласия администратора, и администратор выполняет вход, но параметр prompt=admin_consent не передается. Когда администратор успешно предоставит приложению согласие, оно применяется только для своей учетной записи пользователя. Обычные пользователи по-прежнему не смогут выполнять вход и давать свое согласие приложению. Это удобно в тех случаях, когда администратору клиента нужно просмотреть приложение, прежде чем предоставлять доступ к приложению другим пользователям.

Настройка единого входа на основе OIDC для приложения в клиенте Microsoft Entra