2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DEPARTUREAdvent Calendar 2023

Day 1

SAML認証によるSSOをDockerのKeycloakで構築する

Posted at

はじめに

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を作成します。

スクリーンショット 2023-12-01 21.49.24.png

Clientsから新しいクライアントを作成します。

スクリーンショット 2023-12-01 22.09.15.png

スクリーンショット 2023-12-01 22.27.32.png

IDP-Initiated SSO URL nameに入力したのち、下側にでるURLを控えておきます(あとからでもOK)

Usersから新しいユーザを作成します。

スクリーンショット 2023-12-01 21.56.57.png

Credentialsのタブからパスワードを設定します。

スクリーンショット 2023-12-01 21.58.06.png

Keycloak側の設定は以上です。

その他

アプリケーション側の設定は言語やライブラリによって様々なので詳細は省きますが、必要なのは、

ENTITYID
SSO_URL
x509

の辺り。

SSO_URLは上記で控えたURL
ENTITYIDとx509はRealm settingsのGeneralタブにあるEndpointsから取得します。

スクリーンショット 2023-12-01 22.14.43.png

entityIDとX509Dataの値がそれです。

スクリーンショット 2023-12-01 22.18.24.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?