Аутентификация через Яндекс в OpenAM
Введение
В данной статье мы настроим вход в OpenAM, используя аутентификацию в Яндекс по протоколу OAuth 2.0. Таким образом, ваши пользователи смогут входить в приложения, защищенные OpenAM, используя свои учетные записи Яндекс.
Создание приложения в Яндекс
Откройте ссылку создания нового приложения
Заполните нужные данные, как показано на скриншоте ниже
Яндекс создание приложения, шаг 1
Отметьте данные пользователя Яндекс, которые хотите получить после аутентификации
Яндекс создание приложения, шаг 2
Заполните URI OpenAM и укажите хост, где будет располагаться кнопка авторизации. В данном случае, любой.
Redirect URI должен быть в формате
, например, http://openam.example.org:8080/openam/oauth2c/OAuthProxy.jsp
Яндекс создание приложения, шаг 3
Укажите почту для связи
Яндекс создание приложения, шаг 4
На экране настроек приложения обратите внимания не значения ClientID и Client secret. Они понадобятся при настройке OpenAM.
Яндекс, настройки приложения
Установка и настройка OpenAM
Как запустить OpenAM написано тут.
Настройка OpenAM
Откройте консоль администратора OpenAM по ссылке http://openam.example.org:8080/openam/XUI. В поле логин введите значение amadmin
в поле пароль введите значение пароля, заданное в процессе установки OpenAM. В данном случае — passw0rd
.
В основном меню перейдите Top Level Realm. В меню слева перейдите Authentication → Modules и создайте новый модуль аутентификации yandex
. Тип модуля — OAuth 2.0 / OpenID Connect.
OpenAM новый модуль аутентификации
Заполните настройки модуля, согласно таблице:
Настройка | Значение |
---|---|
Client Id | Client ID приложения Яндекс |
Client Secret | Client Secret приложения Яндекс |
Authentication Endpoint URL | https://oauth.yandex.ru/authorize |
Access Token Endpoint URL | https://oauth.yandex.ru/token |
User Profile Service URL | https://login.yandex.ru/info |
Scope | login: email |
OAuth2 Access Token Profile Service Parameter name | access_token |
Proxy URL | Redirect URI, который был указан при создании приложения Яндекс. |
http://openam.example.org:8080/openam/oauth2c/OAuthProxy.jsp | |
Account Mapper Configuration | id=uid |
Attribute Mapper Configuration | id=uid default_email=mail login=cn |
OpenID Connect validation configuration type | client_secret |
Prompt for password setting and activation code | false |
Нажмите кнопку Save
Создайте цепочку аутентификации.
В консоли администратора перейдите в Top Level Realm. В меню слева перейдите Authentication → Chains и создайте новую цепочку аутентификации yandex
. Нажмите кнопку Add a Module
и добавьте созданный модуль аутентификации yandex
.
OpenAM цепочка аутентификации Yandex
Нажмите кнопку Save Changes
.
Проверка решения
Выйдите из консоли администратора, или откройте окно браузера в режиме «Инкогнито».
Перейдите по ссылке аутентификации в цепочке аутентификации Яндекс. http://openam.example.org:8080/openam/XUI/? service=yandex
Откроется окно аутентификации Яндекса. Войдите удобным для вас способом.
Аутенитфикация Яндекс
После успешной аутентификации в Яндекс будет создана учетная запись OpenAM с данными учетной записи Яндекс.
OpenAM успешная аутенитфикация