Аутентификация через Яндекс в OpenAM

от автора

Введение

В данной статье мы настроим вход в OpenAM, используя аутентификацию в Яндекс по протоколу OAuth 2.0. Таким образом, ваши пользователи смогут входить в приложения, защищенные OpenAM, используя свои учетные записи Яндекс.

Создание приложения в Яндекс

Откройте ссылку создания нового приложения

Заполните нужные данные, как показано на скриншоте ниже

Яндекс создание приложения, шаг 1

Яндекс создание приложения, шаг 1

Отметьте данные пользователя Яндекс, которые хотите получить после аутентификации

Яндекс создание приложения, шаг 2

Яндекс создание приложения, шаг 2

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

Redirect URI должен быть в формате <URI OpenAM>/oauth2c/OAuthProxy.jsp , например, http://openam.example.org:8080/openam/oauth2c/OAuthProxy.jsp

Яндекс создание приложения, шаг 3

Яндекс создание приложения, шаг 3

Укажите почту для связи

Яндекс создание приложения, шаг 4

Яндекс создание приложения, шаг 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 новый модуль аутентификации

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

OpenAM цепочка аутентификации Yandex

Нажмите кнопку Save Changes.

Проверка решения

Выйдите из консоли администратора, или откройте окно браузера в режиме “Инкогнито”.

Перейдите по ссылке аутентификации в цепочке аутентификации Яндекс. http://openam.example.org:8080/openam/XUI/?service=yandex

Откроется окно аутентификации Яндекса. Войдите удобным для вас способом.

Аутенитфикация Яндекс

Аутенитфикация Яндекс

После успешной аутентификации в Яндекс будет создана учетная запись OpenAM с данными учетной записи Яндекс.

OpenAM успешная аутенитфикация

OpenAM успешная аутенитфикация


ссылка на оригинал статьи https://habr.com/ru/articles/861166/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *