В статье мы настроим аутентификацию в OpenAM с использованием учетных записей пользователей через Yandex Cloud. Таким образом, вы сможете настроить аутентификацию в ваши корпоративные приложения через OpenAM используя Yandex Cloud как Identity Provider (IdP), а OpenAM как Service Provider (SP).
Нажмите кнопку Создать приложение
После создания приложения, откройте его настройки и нажмите кнопку Скачать сертификат. Он понадобится нам для последующей настройки OpenAM.
http://localhost:8080/openamhttp://localhost:8080/openam/Consumer/metaAlias/sp
Добавьте пул пользователей:
Введите данные пула и нажмите Создать пул пользователей

Добавьте пользователя в пул
Введите данные пользователя и нажмите Добавить пользователя

Для простоты, разверните OpenAM в Docker контейнере командой
docker run -p 8080:8080 --name openam openidentityplatform/openam
И выполните первоначальную настройку
docker exec -w '/usr/openam/ssoconfiguratortools' openam bash -c \
'echo "ACCEPT_LICENSES=true
SERVER_URL=http://localhost:8080
DEPLOYMENT_URI=/$OPENAM_PATH
BASE_DIR=$OPENAM_DATA_DIR
locale=en_US
PLATFORM_LOCALE=en_US
AM_ENC_KEY=
ADMIN_PWD=passw0rd
AMLDAPUSERPASSWD=p@passw0rd
COOKIE_DOMAIN=localhost
ACCEPT_LICENSES=true
DATA_STORE=embedded
DIRECTORY_SSL=SIMPLE
DIRECTORY_SERVER=localhost
DIRECTORY_PORT=50389
DIRECTORY_ADMIN_PORT=4444
DIRECTORY_JMX_PORT=1689
ROOT_SUFFIX=dc=openam,dc=example,dc=org
DS_DIRMGRDN=cn=Directory Manager
DS_DIRMGRPASSWD=passw0rd" > conf.file && java -jar openam-configurator-tool*.jar --file conf.file'
Добавьте сертификат, скачанный ранее для созданного приложения Yandex Cloud в keystore OpenAM.
Для этого скопируйте сертификат в контейнер
docker cp openam-saml.cer openam:/usr/openam/config/openam
Пароль для keystore находится в файле /usr/openam/config/openam/.storepass
Посмотреть его можно командой
docker exec openam bash -c 'cat /usr/openam/config/openam/.storepass'
Импортируйте сертификат в keystore OpenAM
docker exec -it -w '/usr/openam/config/openam' openam bash -c 'keytool -importcert \
-alias "yandex-cloud-cert" \
-keystore keystore.jceks \
-storetype JCEKS \
-file openam-saml.cer'
Введите пароль и подтвердите, что сертификат является доверенным.
Перезапустите контейнер OpenAM
docker restart openam
Войдите в консоль администратора по адресу http://localhost:8080/openam. Используйте логин amadmin и пароль passw0rd соотвественно.
Нажмите Save Changes.

Введите любое наименование Circle Of Trust, например, openam-yandex и нажмите Configure.

OpenAM предложит настроить Remote Identity Provider. Нажмите Yes.

Введите URL метаданных из настроек приложения Yandex и нажмите Configure

PasswordPassword и Password Protected Passwordemailaddress=mailemailaddressВ разделе SP Service Attributes в таблице Assertion Consumer Service отметьте значение HTTP-POST

demo-saml@openam-saml.idp.yandexcloud.net и нажмите →Нажмите →

После успешной аутенитфикации вас перенаправит в консоль OpenAM с учетными данными Yandex Cloud

Для использования на продуктиве OpenAM должен быть развернут с использованием безопасного подключения по протоколу SSL, например на хосте и с использованием FQDN, например https://openam.example.org/openam.
Далее, вы можете использовать шлюз авторизации OpenIG для настройки единого входа (SSO) в ваши приложения.
Более подробно о настройке OpenAM и OpenIG вы можете ознакомиться на сайте с документацией https://doc.openidentityplatform.org/openam и https://doc.openidentityplatform.org/openig