【なんでも研究日誌】JPiereのSSO-SAMLの検証用KeyCloakの設定

JPiereのSSO-SAMLのプラグインの動作検証をするために、KeyCloakの初期設定について調査及び研究しその成果をまとめています。

 【なんでも研究日誌】KeyCloak23のインストール(Windows11) を参考にまずはKeyCloakをデプロイし起動して管理者ユーザーでログインして下さい。

【補足説明】iDempiere/JPiereのポート

KeyCloakが8080ポートを使用する都合上、iDempiere/JPiereはhttpポートは80番、httpsポートは443番を想定しています。

Realmの作成

ここではテスト用に「demo」というRealmを登録します。

"master"となっているプルダウンのメニューをクリックして"Create realm"を押します。

Realm nameに"demo"と入力し"Create"を押します。

作成した"demo"のRealmを選択します。

Realmの設定

「Realm settings」をクリックしてRealmの設定を行います。

あくまでも検証用なので、セキュリティーは度外視して、「Require SSL」を"None"に設定します。

Clientの登録

Clients」をクリックして"idempiere"のクライアントを登録します。

「Create Client」をクリックすると下記のような画面になります。

  • Client Type … SAML を選択して下さい。
  • Client ID … idempiere と入力して下さい。

「Next」をクリックすると下記のようなログインに関係する設定を行う画面になります。

下記の設定は、iDempiere/JPiereのデモテナントであるOSS ERP SolutionsのテナントでSSOを行う想定の設定になります。

  • Root URL … https://localhost/
  • Home URL … 任意入力
  • Valid redirect URIs … https://localhost/webui/saml.zul?client=oes
  • Valid post logout redirect URIs … https://localhost/webui/saml.zul?client=oes
  • IDP-Initiated SSO URL name … idempiere
  • IDP Initiated SSO Relay State … 任意入力
  • Master SAML Processing URL … https://localhost/webui/saml.zul?client=oes

 

Clientの全体設定

登録するとクライアントの全体的な設定確認&変更できます。下記はあくまでもサンプルの設定ですので適宜修正して下さい。

Userの登録

Users」をクリックしてサンプルユーザー"user01"を登録します。

「Add user」をクリックスト、ユーザーの登録画面になります。

ユーザーを登録したら、「Credentials」のタブをクリックしてパスワードを設定します。

「Set password」を押すと下記のポップアップが表示されますので、パスワードを設定して、「Save」します。

確認のポップアップが表示されますので「Save password」を選択します。

iDempiere/JPiereの設定

下記は「OSS ERP Solutions」のテナントのサンプル設定になります。

SSO SAMLコンフィグ

SSO SAMLコンフィグ
SSO SAMLコンフィグ

ここまでの説明に記載されている通りに設定している場合、SAML Redirect URLには"http://localhost:8080/realms/demo/protocol/saml/clients/idempiere"と入力して下さい。

 

SAMLレスポンス署名公開鍵とSAML Assertion署名公開鍵

「SAMLレスポンス署名公開鍵」と「SAML Assertion署名公開鍵」はKeyCloakの下記の値を設定して下さい。

"demo"のRealmを選択して、Realm settings の Keys タブを押して下さい。

そして"RS256"の"Public key"を押して下さい。

表示されたPublic Keyをコピーして、「SAMLレスポンス署名公開鍵」と「SAML Assertion署名公開鍵」に貼り付けて下さい。※Public Keyは環境により異なります。

SSOしてみる!!

ブラウザのアドレバーに"https://localhost/webui/saml.zul?client=oes"と入力してみて下さい。

iDempiere/JPiereからKeyCloakにリダイレクトされます。

Usernameに"user01"と入力してPasswordに設定したパスワードを入力してSign Inして下さい。

成功するとiDempiere/JPiereにログインできます。