はじめに
SAML認証によるシングルサインオンをアプリケーションに実装するため、開発環境にセットアップしていきます。
SAML認証そのものについては割愛。
準備
ローカル環境にDockerとDocker ComposeがあればOK。
docker composeの設定
Keycloakの設定をデータベースに保存しておきたいのでmysqlのイメージも利用します。
keycloak:
image: quay.io/keycloak/keycloak:21.0.2
command: start-dev
depends_on:
- mysql
ports:
- 18080:8080
environment:
KC_DB : mysql
KC_DB_URL: jdbc:mysql://mysql:3306/keycloak
KC_DB_URL_DATABASE: keycloak
KC_DB_USERNAME: root
KC_DB_PASSWORD: password
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
これでdocker compose upするだけです。
Keycloakの設定
http://localhost:18080
上記をブラウザで表示してAdministration Consoleから上記ユーザとパスワードでログインします。
ログインできたら新しいRealmを作成します。
Clientsから新しいクライアントを作成します。
IDP-Initiated SSO URL nameに入力したのち、下側にでるURLを控えておきます(あとからでもOK)
Usersから新しいユーザを作成します。
Credentialsのタブからパスワードを設定します。
Keycloak側の設定は以上です。
その他
アプリケーション側の設定は言語やライブラリによって様々なので詳細は省きますが、必要なのは、
ENTITYID
SSO_URL
x509
の辺り。
SSO_URLは上記で控えたURL
ENTITYIDとx509はRealm settingsのGeneralタブにあるEndpointsから取得します。
entityIDとX509Dataの値がそれです。