Использование KeyCloak в качестве IDP и Key Manager для WSO2 API Manager
Блоги
Навигационные полоски
В этом блоге мы рассмотрим как настроить Keycloack 9.0 как внешний IDP для WSO2 APIM 3.1. Кроме этого будет показано как настроить Keycloak в качестве Key Manager.
Установка
1. Скачайте и распакуйте Keycloak standalone server по ссылке.
2. Скачайте и установите WSO2 API Manager 3.1.0 по ссылке.
Настройка Keycloak server
1. Добавьте в файл <KeycloakServer>/bin/standalone.sh следующий параметр
SERVER_OPTS="-Dkeycloak.profile.feature.upload_scripts=enabled"
2. В файлах <KeycloakServer>/standalone/configuration/standalone.xml и <KeycloakServer>/standalone/configuration/standalone-ha.xml добавьте параметр proxy-address-forwarding="true" в раздел указанный ниже
<server name="default-server">
<http-listener name="default" proxy-address-forwarding="true" socket-binding="http" redirect-socket="https" enable-http2="true"/>
3. Создайте пользователя admin запустив скрипт <KeycloakServer>/bin/add-user-keycloak.sh -u admin
4. Перейдите в каталог <KeycloakServer>/bin и запустите сервер командой
standalone.sh -b 0.0.0.0
Сервер запустится и будет слушать порт 8080 и 8443
5. Войдите в систему
6. Создайте новый realm с именем "apim" нажав на кнопку "Add realm" в выпадающем меню
7. Создайте нового клиента oidc-km
8. После нажатия кнопки Save произведите настройки как на изображении ниже
9. После установки Access Type в "confidential" появится вкладка "Credentials"
В этой вкладке есть поле "Secret". Скопируйте его для дальнейшего использования.
10. Перейдите в закладку Roles и создайте роль any
11. На закладке Mappers создайте RoleMapper
12. Там же создайте script mapper "UserNameInSub" для правильной работы JIT Provisioning
13. Создайте пользователя emma
14. Установите пароль
15. Настройте Role Mapping
Настройка WSO2 API Manager 3.1.0
Мы настроим Federated Identity Provider в APIM 3.1.0 для аутентификации OpenID-connect в Keycloak
1. Войдите в carbon панель в APIM и создайте новый Identity Provider с именем Keycloak и следующими параметрами (обратите внимание на url Keycloak - localhost в случае локальной установки)
Client Id: oidc-km
Authorization Endpoint URL: https://keycloak.demo1.emdev.ru/auth/realms/apim/protocol/openid-connect/auth
Token Endpoint URL: https://keycloak.demo1.emdev.ru/auth/realms/apim/protocol/openid-connect/token
Callback URL: https://wso2apim31.demo1.emdev.ru/commonauth
Userinfo Endpoint URL: https://keycloak.demo1.emdev.ru/auth/realms/apim/protocol/openid-connect/userinfo
Logout Endpoint URL: https://keycloak.demo1.emdev.ru/auth/realms/apim/protocol/openid-connect/logout
2. Далее перейдите в раздел Just-in-Time Provisioning
3. В разделе Claim Configuration произведите следующие настройки
4. Далее настройте Role Mapping
5. Обновите настройки Service Providers
Нажмите редактировать apim_devportal и внесите следующие изменения:
То же самое проделайте для apim_publisher
6. Теперь можно попробовать зайти в publisher/dev порталы с помощью пользователя созданного в Keycloak
Настройка Keycloak как Key Manager для WSO API Manager 3.1.0
1. Внесите следующие настройки в <API-M_HOME>/repository/conf/deployment.toml
[apim.key_manager]
key_manager_client_impl = "org.wso2.keycloak.client.KeycloakClient"
[apim.key_manager.configuration]
keycloakInstanceUrl = "https://keycloak.demo1.emdev.ru"
keycloakRealmName = "apim"
client_id = "api-client"
username = "apim-user"
password = "xxxxxxxx"
[[apim.jwt.issuer]]
name = "https://keycloak.demo1.emdev.ru/auth/realms/apim"
[apim.jwt.issuer.jwks]
url = "https://keycloak.demo1.emdev.ru/auth/realms/apim/protocol/openid-connect/certs"
2. Сохраните файл из https://github.com/wso2-extensions/apim-keymanager-keycloak и разместите в папке <API-M_HOME>/repository/components/lib
3. В keycloak создайте клиента с настройками по умолчанию и именем api-client
4. Создайте пользователя "apim-user" и установите пароль как в конфигурации для APIM
5. Перейдите на закладку Role Mapping и настройте роли как на изображении
6. Перезапустите API Manager и зайдите в Developer Portal для проверки ключей.
Создайте новое приложение
7. Сгенерируйте новый токен оставив только галочки поддерживаемых grant-type
Полезные ссылки:
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.