10.13.5. KeycloakとのSAML認証の設定¶
10.13.5.1. 前提条件¶
Accel-Mart Quick に連携対象のユーザが存在すること Keycloakの管理者ユーザの作成まで完了していること注意
このドキュメントでは、Keycloakに管理者ユーザでログインした場合の操作方法を記載しています。
10.13.5.2. シングルサインオン¶
10.13.5.2.1. Keycloakに Accel-Mart Quick の情報を登録する¶
「Master」をクリックし、「Create Realm」をクリックします。
図:「Master realm」「Realm Name」に任意の値を入力し、「Create」をクリックします。
図:「Create realm」「Users」の「Create new user」をクリックします。
図:「Users」「Username」に任意の値を入力し、「Create」をクリックします。
図:「Create user」「Credentials」タブを開きます。
「Set password」をクリックします。
図:「Credentials」パスワードを入力し「Save」をクリックします。
図:パスワードの設定「Client」-「Clients list」の「Create client」をクリックします。
図:「Clients」下記の項目を設定し、「Save」をクリックします。
クライアントの設定例 Client TypeSAMLClient IDhttps://ホスト名.accel-mart.com/imart図:「Create client」「Setting」タブで下記を参考にクライアントの詳細設定を入力します。
Access settings Valid redirect URIshttps://ホスト名.accel-mart.com/imart/saml/profile/sso_response/postIDP-Initiated SSO URL namehttps://ホスト名.accel-mart.com/imart/saml/profile/sso_response/postMaster SAML Processing URLhttps://ホスト名.accel-mart.com/imart/saml/profile/sso_response/post図:「Setting - Access settings」Signature and Encryption Sign assertionsOn図:「Setting - Signature and Encryption」「Save」をクリックします。
「Key」タブを表示します。
「Signing keys config」-「Client signature required」を「Off」にします。
図:「Key - Signing keys config」
10.13.5.2.2. IdPメタデータを取得¶
「Realm settings」の「General」-「Endpoints」-「SAML 2.0 Identity Provider Metadata」をクリックします。
図:「Realm settings」表示されたメタデータをコピーします。
メタデータ内の「IDPSSODescriptor」要素の「WantAuthnRequestsSigned」属性の値を false に変更してメモなどに保存します。
10.13.5.2.3. Accel-Mart Quick にKeycloakの情報を設定する¶
「 Accel-Mart Quick システム管理者 」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックします。
「新規登録」ボタンをクリックします。
下記を参考に必要な項目を入力します。
IdP 新規登録時の設定例 状態有効IdP名任意の値IdPメタデータKeycloakから取得したメタデータの内容図:「IdP新規作成」コラム
「ログインボタン設定」や「高度な設定」の設定を行う場合は「Accel-Mart QuickにIdPの情報を設定する 」を参考に各項目の設定を行ってください。「新規登録」ボタンをクリックします。
10.13.5.2.4. Accel-Mart Quick ユーザとOktaユーザをマッピング¶
「 Accel-Mart Quick システム管理者 」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「SAMLユーザマッピング」をクリックします。
「新規作成」ボタンをクリックし、以下のように設定し登録します。
新規登録時の設定例 IdPユーザKeycloakでアプリケーションに割り当てたユーザユーザAccel-Mart Quick で連携させたいユーザのユーザコード図:「SAMLユーザマッピング登録」
10.13.5.3. Keycloakのユーザで Accel-Mart Quick にログイン¶
図:「ログイン」
10.13.5.4. シングルログアウト¶
シングルログアウトを有効にするには以下の手順を行います。
10.13.5.4.1. Accel-Mart Quick でシングルログアウトの設定¶
「 Accel-Mart Quick システム管理者 」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックし、「Accel-Mart Quick にKeycloakの情報を設定する」で登録した IdP の編集画面に遷移します。
「高度な設定」のシングルログアウトのラジオボタンを「有効」に設定します。
図: 「IdP更新 - 高度な設定」シングルサインオンの「署名処理」を「署名する」に設定します。
図: 「IdP更新 - 高度な設定」更新ボタンをクリックします。
作成したSPメタデータと証明書をダウンロードします。
図:「IdP一覧」
10.13.5.4.2. Keycloakでシングルログアウトの設定¶
「Client」-「Clients list」から「Keycloakに Accel-Mart Quick の情報を登録する」で作成したClientをクリックします。
「Advanced」-「Fine Grain SAML Endpoint Configuration」-「Logout Service POST Binding URL」に、ダウンロードしたSPメタデータ内の「Binding=”urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST”」属性をもつ「SingleLogoutService」要素の「Location」属性のURL を設定してください。
図: 「Advanced - Fine Grain SAML Endpoint Configuration」「Save」をクリックします。
「Accel-Mart Quick でシングルログアウトの設定」で取得した証明書を用いて「有効にした署名をKeycloak側で検証させる設定」を行います。
10.13.5.5. Keycloakからもログアウト¶
Accel-Mart Quick からのログアウトする際に、認証元であるKeycloakからもログアウト(シングルログアウト)します。
「Keycloakのユーザで Accel-Mart Quick にログイン」に記載された手順でログインします。
ユーティリティメニューから「ログアウト(認証元からもログアウト)」をクリックします。
図:「ポータル」ログアウトに成功すると、 Accel-Mart Quick とOktaからログアウトします。
10.13.5.6. 応用¶
10.13.5.6.1. SAML Requestに署名を設定する¶
「 Accel-Mart Quick システム管理者 」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックし、「Accel-Mart Quick にKeycloakの情報を設定する」で登録した IdP の編集画面に遷移します。
「高度な設定」のシングルサインオンの「署名処理」を「署名する」に設定します。
図: 「IdP更新 - 高度な設定」「更新」をクリックします。
- 署名用の証明書が作成され、「IdP一覧」画面に「証明書ダウンロード」列が表示されます。「証明書ダウンロード」のアイコンをクリックし、証明書をダウンロードしてください。図:「IdP一覧」
取得した証明書を用いて「有効にした署名をKeycloak側で検証させる設定」を行います。
10.13.5.6.2. SAML Assertionを暗号化する¶
「 Accel-Mart Quick システム管理者 」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックし、「Accel-Mart Quick にKeycloakの情報を設定する」で登録した IdP の編集画面に遷移します。
「高度な設定」のシングルサインオンの「SAMLアサーション暗号化処理」を「暗号化する」に設定します。
図: 「IdP更新 - 高度な設定」「更新」をクリックします。
「IdP一覧」画面から証明書をダウンロードします。
図:「IdP一覧」次に、Keytoolを用いて Accel-Mart Quick で取得した証明書を元にJKSファイルを作成します。
コラム
コマンドプロンプトで下記のKeytoolコマンドを実行します。keytool -import -alias <ホスト名>.accel-mart.com/imart -keystore truststore.jks -file certificate.crtJKSファイルの作成 -alias<ホスト名>.accel-mart.com/imart-keystore作成するJKSファイル名-fileAccel-Mart Quick 取得した証明書のファイル名キーストアのパスワードを要求されるので設定します。Keycloakにログインし「Keycloakに Accel-Mart Quick の情報を登録する」で作成したRealmの「Client」-「Clients list」から作成したClientをクリックします。
「Key」タブを表示します。
「Encryption keys config」-「Encrypt assertions」のボタンをクリックします。
図:「Key - Encryption keys config」「Select method」の「Import」を選択し「Browse」から作成したJKSファイルを選択します。
図:証明書を登録下記を参考に必要な項目を入力してください。
設定例 Key aliasJKSファイル作成時にKeytoolコマンド内で設定した -alias の値Store passwordJKSファイル作成時に設定したキーストアのパスワード図:証明書を登録「Confirm」をクリックします。
10.13.5.6.3. 有効にした署名をKeycloak側で検証させる設定¶
Keytoolを用いて Accel-Mart Quick で取得した証明書を元にJKSファイルを作成します。
コラム
コマンドプロンプトで下記のKeytoolコマンドを実行します。keytool -import -alias <ホスト名>.accel-mart.com/imart -keystore truststore.jks -file certificate.crtJKSファイルの作成 -alias<ホスト名>.accel-mart.com/imart-keystore作成するJKSファイル名-fileAccel-Mart Quick で取得した証明書のファイル名キーストアのパスワードを要求されるので設定します。「Client」-「Clients list」から「Keycloakに Accel-Mart Quick の情報を登録する」で作成したClientをクリックします。
「Key」タブを表示します。
「Signing keys config」-「Client signature required」のボタンをクリックします。
図:「Key - Signing keys config」「Select method」の「Import」を選択し「Browse」から作成したJKSファイルを選択します。
図:証明書を登録下記を参考に必要な項目を入力してください。
設定例 Key aliasJKSファイル作成時にKeytoolコマンド内で設定した -alias の値Store passwordJKSファイル作成時に設定したキーストアのパスワード図:証明書を登録「Confirm」をクリックします。