Как настроить систему единого входа с помощью Azure OpenID Connect
Единый вход (SSO) обеспечивает столь необходимое удобство и встроенную безопасность для операций входа в приложения. К счастью, SSO работает с любым веб-приложением в Azure Active Directory, поэтому давайте посмотрим, как мы можем его настроить.
Благодаря системе единого входа ваши пользователи будут один раз входить в систему с помощью одной учетной записи и получать доступ к вашим веб-приложениям, SAAS, ресурсам компании и устройствам, присоединенным к домену. После входа они могут запускать любое приложение из Azure AD MyApps и/или портала Office 365. Администраторы могут управлять учетными записями пользователей и добавлять/удалять доступ к приложениям на основе членства.
Без SSO ваши пользователи должны запоминать информацию журнала для конкретного приложения и входить в каждое из них. Персонал должен обновлять, создавать и управлять учетными записями для каждого приложения. Пользователи должны помнить пароли и тратить время на вход в систему.
Таким образом, нетрудно заметить, что SSO является явным победителем, когда речь идет о доступности в Интернете. Но это не только удобно, но и безопасно, так что давайте взглянем на OpenID Connect.
Что такое OpenID Connect?
Несмотря на то, что язык разметки утверждений безопасности в настоящее время является основным решением SSO для предприятий, многие разрешают их использование для подключения OpenID по многим причинам.
Вот некоторые из них:
- Лучше работает на мобильных устройствах.
- На основе OAuth 2, поэтому проще для разработчиков.
- Идеально подходит для тех, кто не является сотрудником.
- Простота настройки и доступность обслуживания.
- Отраслевой стандарт для Azure Active Directory, Okta, Google G Suite, Auth0, OneLogin и т. д.
OpenID Connect является родным для многих IDPS, а именно для Azure AD, поэтому мы будем использовать его по назначению.
И OIDC, и SAML могут работать вместе. Итак, если вам нужно разделить и классифицировать внешних и внутренних пользователей, это может быть решением. Это также удобно для разделения ваших решений, когда вы используете SAML для доступа сотрудников и OIDC для встраивания карт на другие сайты.
Даже если применяются оба метода, DSO все равно можно использовать, но на самом деле он не используется в этом сценарии.
Как добавить приложение OpenID из Azure AD?
Чтобы начать процесс включения единого входа для ваших приложений, вам необходимо:
- Откройте «Портал Azure» и выберите «Azure Active Directory».
- Перейдите к разделу Корпоративные приложения, а затем к разделу Все приложения.
- Нажмите кнопку Новое приложение и введите название в поле поиска. (В OpenID и OAuth по умолчанию кнопка Добавить отключена. Администратор вашего клиента должен выбрать кнопку регистрации и предоставить доступ к приложению.
<старт=\4\>
На этом этапе вы предоставили доступ к клиенту для решения OpenID для этого конкретного приложения.
Вы можете добавить только один экземпляр приложения. Если вы уже сделали это и попытались запросить согласие, оно больше не будет добавлено к арендатору. Только один экземпляр приложения на каждого арендатора.
Как аутентификация будет работать с OpenID Connect
Чтобы продолжить аутентификацию SSO, вы должны сначала понять, как работает простой процесс входа:
- Пользователь входит в систему и вводит учетные данные, а затем соглашается с разрешениями. (Это выполняется с помощью команды /oauth2/authorize.)
- Возвращается id_token, а код авторизации отправляется в браузер.
- Происходит перенаправление на URL.
- Идентификатор id_token проверен, установлен файл cookie сеанса.
- От носителя кода OAuth требуется предоставить код авторизации.
- Токен возвращается с помощью refresh_token.
- Веб-API вызывается с токеном в заголовке аутентификации.
- Токен проверен.
- Защищенные данные возвращаются в приложение веб-сервера.
Это очень простое представление потока авторизации, и именно к этому все сводится в конце.
Включение платформы согласия
Чтобы разработать собственное клиентское приложение или многопользовательское веб-приложение, вы можете использовать платформу согласия Azure AD. Это позволит выполнять вход с помощью учетных записей пользователей определенного клиента Azure AD, которому был предоставлен доступ на предыдущих шагах.
Может потребоваться доступ к веб-APIS. Например, API Microsoft Graph для доступа к Azure AD, Office 365 или Intune. Кроме того, арендатор должен предоставить доступ к любым личным веб-APIS.
Структура согласия основана на предоставлении администратором или предыдущим пользователем согласия на приложение, которое запрашивает регистрацию в каталоге. Это может включать доступ к данным каталога, но это не обязательно. После предоставления согласия приложение свяжется с Graph API от имени пользователя и при необходимости получит доступ к информации.
API обеспечивает доступ к различным точкам данных, а также предоставляет доступ к группам и пользователям в Azure AD и любых других облачных службах Microsoft. Поэтому он будет работать с любым вашим веб-приложением.
Вот как опыт согласия будет происходить для пользователя и разработчика:
Согласие разработчика/пользователя
Приложению веб-клиента требуются разрешения для доступа к ресурсу. Портал Azure объявляет запрос на разрешение для установки настроенного времени. Как и любой другой параметр конфигурации, он становится частью точек данных регистрации Azure AD.
Чтобы получить доступ к пути разрешений, вам нужно нажать «Регистрация приложений» с левой стороны и открыть приложение, с которым вы будете работать. Затем вы можете перейти в меню «Разрешения API» и выбрать опцию «Добавить разрешение». После этого вы выбираете «Microsoft Graph» и выбираете параметры из «Приложения и делегированные разрешения».
Теперь разрешения были обновлены, пользователь собирается использовать SSO в первый раз. Сначала приложению необходимо получить код авторизации от конечной точки в Azure AD, после чего этот код будет использоваться для доступа к обновленному токену. Если пользователь не прошел проверку подлинности, конечная точка предложит выполнить вход.
Если согласие не было предоставлено, появится запрос и отобразятся разрешения, необходимые для работы. Пользователь может давать согласие на различные разрешения, но другим может потребоваться доступ к учетной записи администратора арендатора.
Заключение
Несмотря на то, что процесс включения OpenID Connect довольно прост, функциональность и применение SSO будут зависеть от возможностей разработчика, который будет отвечать за реализацию этой функции.
ODC действительно поставляется с различными встроенными плагинами, которые обеспечивают мгновенный доступ из коробки, как уже упоминалось, через базовый поток авторизации, но все, что требует индивидуального подхода, будет более сложным.
Дополнительные сведения о том, как расширить возможности единого входа, см. в исходной документации Azure.