В данной статье мы настроим вход в OpenAM, используя аутентификацию в Яндекс по протоколу OAuth 2.0. Таким образом, ваши пользователи смогут входить в приложения, защищенные OpenAM, используя свои учетные записи Яндекс.
Откройте ссылку создания нового приложения
Заполните нужные данные, как показано на скриншоте ниже
Отметьте данные пользователя Яндекс, которые хотите получить после аутентификации
Заполните URI OpenAM и укажите хост, где будет располагаться кнопка авторизации. В данном случае, любой.
Redirect URI должен быть в формате <URI OpenAM>/oauth2c/OAuthProxy.jsp
, например, http://openam.example.org:8080/openam/oauth2c/OAuthProxy.jsp
Укажите почту для связи
На экране настроек приложения обратите внимания не значения ClientID и Client secret. Они понадобятся при настройке OpenAM.
Как запустить OpenAM написано тут.
Откройте консоль администратора OpenAM по ссылке http://openam.example.org:8080/openam/XUI. В поле логин введите значение amadmin
в поле пароль введите значение пароля, заданное в процессе установки OpenAM. В данном случае - passw0rd
.
В основном меню перейдите Top Level Realm.
В меню слева перейдите Authentication → Modules и создайте новый модуль аутентификации yandex
. Тип модуля - OAuth 2.0 / OpenID Connect.
Заполните настройки модуля, согласно таблице:
Настройка | Значение |
---|---|
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
.
Нажмите кнопку Save Changes
.
Выйдите из консоли администратора, или откройте окно браузера в режиме “Инкогнито”.
Перейдите по ссылке аутентификации в цепочке аутентификации Яндекс. http://openam.example.org:8080/openam/XUI/?service=yandex
Откроется окно аутентификации Яндекса. Войдите удобным для вас способом.
После успешной аутентификации в Яндекс будет создана учетная запись OpenAM с данными учетной записи Яндекс.