AWS Workspaces (OSはAmazon Linux2)
Keycloak 7.0.0
KeycloakのDockerコンテナ起動
# AWS Workspaces環境のみ
$ sudo vi /etc/docker/daemon.json
# 以下を追加
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
$ sudo service docker restart
$ cd
$ mkdir -p dkwork/keycloak/tmp
$ cd dkwork/keycloak
$ chmod 777 tmp
$ docker run -d -p 18080:8080 \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
-v $(pwd)/tmp:/tmp \
--name keycloak \
jboss/keycloak:7.0.0
レルム追加/SSL required設定変更/追加レルムの管理ユーザー追加
$ docker exec -it keycloak bash
# Admin CLI コマンドで「SSL required」を「NONE」に変更
# Keycloakのデフォルト設定だと「SSL required」項目により、SSL通信が必須
# HTTP通信で使うために設定を変更
# 管理者ID(ここではadmin)で認証情報を設定する
$ keycloak/bin/kcadm.sh config credentials \
--server http://localhost:8080/auth \
--realm master \
--user admin \
--password admin
# レルム「master」のSSL requiredを「NONE」に変更
$ keycloak/bin/kcadm.sh update realms/master -s sslRequired=NONE
$ exit
ブラウザでKeycloakの管理画面にログイン(admin/admin)
http://IPアドレス:18080/auth/admin
レルム「test」追加
・「Add realm」ボタンクリック
・Nameに「test」を入力して「Create」ボタンクリック
レルム「test」のSSL required設定、管理ユーザー追加
docker exec -it keycloak bash
$ keycloak/bin/kcadm.sh config credentials \
--server http://localhost:8080/auth \
--realm master \
--user admin \
--password admin
# レルム「test」のSSL requiredを「NONE」に変更
$ keycloak/bin/kcadm.sh update realms/test -s sslRequired=NONE
# レルム「test」の管理ユーザー作成
# レルム名「test」、ユーザー・パスワード「testadmin」
$ keycloak/bin/add-user-keycloak.sh -r test -u testadmin -p testadmin
$ exit
$ docker restart keycloak
レルム「test」の情報をエクスポート
#「 services are lazy, passive or on-demand)」の表示が出たらCtrl+C
$ docker exec -it keycloak keycloak/bin/standalone.sh \
-Djboss.socket.binding.port-offset=100 -Dkeycloak.migration.action=export \
-Dkeycloak.migration.provider=singleFile \
-Dkeycloak.migration.realmName=test \
-Dkeycloak.migration.usersExportStrategy=REALM_FILE \
-Dkeycloak.migration.file=/tmp/test.json
$ docker stop keycloak
$ docker rm keycloak
レルム「test」の情報をインポート
$ docker run -d -p 18080:8080 \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
-e KEYCLOAK_IMPORT=/tmp/test.json \
-v $(pwd)/tmp/test.json:/tmp/test.json \
--name keycloak \
jboss/keycloak:7.0.0
$ docker exec -it keycloak bash
# Admin CLI コマンドで「SSL required」を「NONE」に変更
# Keycloakのデフォルト設定だと「SSL required」項目により、SSL通信が必須
# HTTP通信で使うために設定を変更
# 管理者ID(ここではadmin)で認証情報を設定する
$ keycloak/bin/kcadm.sh config credentials \
--server http://localhost:8080/auth \
--realm master \
--user admin \
--password admin
# レルム「master」のSSL requiredを「NONE」に変更
$ keycloak/bin/kcadm.sh update realms/master -s sslRequired=NONE
$ exit
ブラウザでKeycloakの管理画面にログイン(admin/admin)
http://IPアドレス:18080/auth/admin