Настройка приложения OpenID Connect OAuth из коллекции приложений Microsoft Entra
Добавление приложения OpenID из коллекции
Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
Перейдите к приложениям Identity>Applications>Enterprise.
В верхней части диалогового окна выберите Создать приложение.
В поле поиска введите имя приложения. Выберите нужное приложение на панели результатов и выполните его регистрацию.
На странице с именем приложения нажмите кнопку Зарегистрироваться.
Примечание.
Администратор клиента должен нажать кнопку "Регистрация" и дать согласие на регистрацию приложения. Затем приложение добавляется во внешний клиент, где можно выполнять конфигурации. Нет необходимости явно добавлять приложение.
Вы перенаправляетесь на страницу входа приложения или страницу идентификатора Microsoft Entra для учетных данных входа.
После успешной проверки подлинности дайте согласие на странице согласия. После этого откроется домашняя страница приложения.
Примечание.
Вы можете добавить только один экземпляр приложения. Если вы уже добавили экземпляр приложения и пытаетесь еще раз дать согласие, экземпляр не будет повторно добавлен в клиент. Поэтому можно использовать только один экземпляр приложения в клиенте.
Чтобы добавить приложение OpenID из коллекции, выполните инструкции из приведенного ниже видео.
Поток проверки подлинности при использовании OpenID Connect
Наиболее простой процесс входа содержит следующие этапы.
Мультитенантное приложение
Мультитенантное приложение предназначено для использования не только в одной организации, а в нескольких. Как правило, это приложения категории "программное обеспечение как услуга" (SaaS), которые создают независимые поставщики программных продуктов (ISV).
Мультитенантные приложения должны быть подготовлены в каждом каталоге, где они будут использоваться. Для их регистрации требуется согласие пользователей или администраторов. Процесс предоставление разрешений начинается, когда приложение регистрируется в каталоге и получает доступ к API-интерфейсу Graph или, возможно, к другому веб-интерфейсу API. Когда пользователь или администратор из другой организации регистрируется для использования приложения, появляется диалоговое окно, в котором отображаются разрешения, необходимые для приложения.
Затем пользователь или администратор может предоставить согласие для приложения. Согласие дает приложению доступ к необходимым данным и регистрирует приложение в каталоге.
Примечание.
Если вы делаете свое приложение доступным для пользователей в нескольких каталогах, нужно предусмотреть механизм, который будет определять, членами какого арендатора они являются. Приложение с одним клиентом должно присутствовать только в собственном каталоге для пользователя. Мультитенантное приложение должно определить конкретного пользователя из всех каталогов в идентификаторе Microsoft Entra.
Для выполнения этой задачи идентификатор Microsoft Entra предоставляет общую конечную точку проверки подлинности, в которой любое мультитенантное приложение может направлять запросы на вход, а не конечную точку для конкретного клиента. Эта конечная точка предназначена https://login.microsoftonline.com/common
для всех каталогов в идентификаторе Microsoft Entra. Конечной точкой для конкретного арендатора может быть https://login.microsoftonline.com/contoso.onmicrosoft.com
.
Общую конечную точку следует учитывать при разработке своего приложения. Вам понадобится специальная логика для обработки нескольких арендаторов во время входа, выхода и проверки маркеров.
По умолчанию идентификатор Microsoft Entra способствует мультитенантным приложениям. Они легко доступные между организациями и простые в использовании после принятия согласия.
Платформа предоставления согласия
Платформу согласия 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 и других объектов данных из более облачных служб Майкрософт.
Ниже показаны особенности работы процедуры согласия для разработчика приложения и пользователя.
Предположим, у вас есть приложение веб-клиента, которому необходимо запросить конкретные разрешения для получения доступа к ресурсу или API. Портал Azure используется для объявления запросов на разрешения во время настройки. Как и другие параметры конфигурации, они становятся частью регистрации Microsoft Entra приложения. Для получения пути запроса разрешений необходимо выполнить следующие действия:
a. Щелкните Регистрация приложений в левой части меню и откройте приложение, введя его имя в поле поиска.
b. Щелкните Просмотреть разрешения API.
c. Щелкните Добавить разрешение.
d. Щелкните Microsoft Graph.
д) Выберите необходимые параметры из списка Делегированные разрешения и Разрешения приложения.
Предположим, что разрешения приложения были обновлены. Само приложение запущено, а пользователь собирается воспользоваться им в первый раз. Сначала приложению необходимо получить код авторизации из конечной точки идентификатора /авторизуемой точки Microsoft Entra. Код авторизации можно использовать для получения новых маркеров доступа или обновления.
Если пользователь еще не прошел проверку подлинности, идентификатор /авторизовать конечную точку Microsoft Entra запрашивает вход.
После входа пользователя идентификатор Microsoft Entra определяет, должен ли пользователь отображать страницу согласия. Это решение будет зависеть от того, предоставил ли этот пользователь (или администратор его организации) свое согласие для приложения.
Если согласие не предоставлено, 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