Keycloak(キークローク) のSAML設定

【注意】このコンテンツは古い情報です。

ここに記載した内容はKeyCloakのバージョン6の情報であり、かなり古くなっています。

下記にバージョン23の設定を記載していますので、そちらを参照して下さい。

参照

Keycloakを使用して、JPiereでSAMLによるSSOが実現できるようにするまでの設定を調査及び研究し、その成果をまとめています。

レルムの作成

Keycloakでは初期状態で、Masterレルムが1つ登録されています。

ここではテスト用に"Demo"レルムを登録します。

Realm(レルム)とは

ここで、Realmとはそもそも何でしょうか? 私的には、あまり聞きなれない言葉なのでここに調べておきたいと思います。Realmとは日本語の意味としては、"領域、範囲、部門"とあり、Keycloakでは次のように紹介されています。

Keycloakにおける「レルム(Realm)」とは、ユーザー、ロール、接続するデータストア(LDAPなど)などをまとめるための範囲を意味します。ユーザーは、レルム内に作成することができ、認証の方法などをレルム単位で定義することができます。デフォルトでは、「Master」というレルムが一つあり、その後追加する全てのレルムを包含して管理することができます。「Master」レルムは、レルムの階層内で最も高いレベルであり、スーパー管理者(初回セットアップ時に作成した管理者アカウント)で管理できます。

「Master」レルムを使ってユーザーなどを管理することもできますが、基本的にはレルムを作成することが推奨されているので、まずはレルムを作成します。なお、「Master」レルムは削除することもできます。

【引用】Qiita : KeycloakでOpenID Connectを使ってみる

クライアントの設定

SAMLでログインさせたいアプリケーションを設定します。

Clients > Create

Client ID に "idempiere"と入力し、Client Protocolに"saml"を選択し、"Save"ボタンを押します。そうすると下記のようなSAMLの詳細設定画面になります。

iDempiereのClient設定例
iDempiereのClient設定例

Root URL

「https://localhost/」

Valid Redirect URIs

「https://localhost/webui/saml.zul?client=oes」

Master SAML Processing URL

「https://localhost/webui/saml.zul?client=oes」

IDP Initiated SSO URL Name

「idempiere」

※Target IDP initiated SSO URL: http://localhost:8080/auth/realms/Demo/protocol/saml/clients/idempiere

ユーザー登録

SAMLでログインさせたいユーザーを登録します。

ユーザー登録

パスワード設定

公開鍵の確認

Realm SettingsのKeysタブで、公開鍵を確認する事ができます。

JPiereのSSO SAML コンフィグ設定

これまでの設定例をもとにした、JPiereのSSO SAMLのコンフィグ設定になります。