メインコンテンツまでスキップ

Keycloakとの連携

KeycloakをIdPとしてSAML認証を行うための設定例を説明します。

注記

Accel-Mart Quick上の操作は、「Accel-Mart Quick システム管理者」ロールを持つユーザで実施してください。

前提条件

  • Accel-Mart Quick に連携対象のユーザが存在すること
  • Keycloakの管理者ユーザの作成まで完了していること
注意

このドキュメントでは、Keycloakに管理者ユーザでログインした場合の操作方法を記載しています。

シングルサインオン

Keycloakに Accel-Mart Quick の情報を登録する

  1. 「Master」をクリックし、「Create Realm」をクリックします。

    Master realm

  2. 「Realm Name」に任意の値を入力し、「Create」をクリックします。

    Create realm

  3. 「Users」の「Create new user」をクリックします。

    Users

  4. 「Username」に任意の値を入力し、「Create」をクリックします。

    Create user

  5. 「Credentials」タブを開きます。

  6. 「Set password」をクリックします。

    Credentials

  7. パスワードを入力し「Save」をクリックします。

    パスワードの設定

  8. 「Client」-「Clients list」の「Create client」をクリックします。

    Clients

  9. 下記の項目を設定し、「Save」をクリックします。

    項目名設定値
    Client TypeSAML
    Client IDhttps://ホスト名.accel-mart.com/imart

    Create client

  10. 「Setting」タブで下記を参考にクライアントの詳細設定を入力します。

    「Access settings」の設定内容

    項目名設定値
    Valid redirect URIshttps://ホスト名.accel-mart.com/imart/saml/profile/sso_response/post
    IDP-Initiated SSO URL namehttps://ホスト名.accel-mart.com/imart/saml/profile/sso_response/post
    Master SAML Processing URLhttps://ホスト名.accel-mart.com/imart/saml/profile/sso_response/post

    Setting - Access settings

    「Signature and Encryption」の設定内容

    項目名設定値
    Sign assertionsOn

    Setting - Signature and Encryption

  11. 「Save」をクリックします。

  12. 「Key」タブを表示します。

  13. 「Signing keys config」-「Client signature required」を「Off」にします。

    Key - Signing keys config

IdPメタデータを取得

  1. 「Realm settings」の「General」-「Endpoints」-「SAML 2.0 Identity Provider Metadata」をクリックします。

    Realm settings

  2. 表示されたメタデータをコピーします。

  3. メタデータ内の「IDPSSODescriptor」要素の「WantAuthnRequestsSigned」属性の値を false に変更してメモなどに保存します。

Accel-Mart Quick にKeycloakの情報を設定する

  1. 「Accel-Mart Quick システム管理者」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックします。

  2. 「新規登録」ボタンをクリックします。

  3. 下記を参考に必要な項目を入力します。

    項目名設定値
    状態有効
    IdP名任意の値
    IdPメタデータKeycloakから取得したメタデータの内容

    IdP新規作成

    備考

    「ログインボタン設定」や「高度な設定」の設定を行う場合は「Accel-Mart QuickにIdPの情報を設定する」を参考に各項目の設定を行ってください。

  4. 「新規登録」ボタンをクリックします。

Accel-Mart Quick ユーザとOktaユーザをマッピング

  1. 「Accel-Mart Quick システム管理者」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「SAMLユーザマッピング」をクリックします。

  2. 「新規作成」ボタンをクリックし、以下のように設定し登録します。

    項目名設定値
    IdPユーザKeycloakでアプリケーションに割り当てたユーザ
    ユーザAccel-Mart Quick で連携させたいユーザのユーザコード

    SAMLユーザマッピング登録

Keycloakのユーザで Accel-Mart Quick にログイン

上記設定が完了すると、 Accel-Mart Quick の「一般ユーザログイン」画面にSAML認証を行うボタンが表示されます。
ボタンをクリックすると、Keycloakの認証画面に遷移します。アプリケーションに割り当てを行ったユーザの認証情報を入力します。
認証に成功すると Accel-Mart Quick にログインできます。

ログイン

シングルログアウト

シングルログアウトを有効にするには以下の手順を行います。

Accel-Mart Quick でシングルログアウトの設定

  1. 「Accel-Mart Quick システム管理者」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックし、「Accel-Mart Quick にKeycloakの情報を設定する」で登録した IdP の編集画面に遷移します。

  2. 「高度な設定」のシングルログアウトのラジオボタンを「有効」に設定します。

    IdP更新 - 高度な設定

  3. シングルサインオンの「署名処理」を「署名する」に設定します。

    IdP更新 - 高度な設定

  4. 更新ボタンをクリックします。

  5. 作成したSPメタデータと証明書をダウンロードします。

    IdP一覧

Keycloakでシングルログアウトの設定

  1. 「Client」-「Clients list」から「Keycloakに Accel-Mart Quick の情報を登録する」で作成したClientをクリックします。

  2. 「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

  3. 「Save」をクリックします。

  4. Accel-Mart Quick でシングルログアウトの設定」で取得した証明書を用いて「有効にした署名をKeycloak側で検証させる設定」を行います。

Keycloakからもログアウト

Accel-Mart Quick からログアウトする際に、認証元であるKeycloakからもログアウト(シングルログアウト)します。

  1. Keycloakのユーザで Accel-Mart Quick にログイン」に記載された手順でログインします。

  2. ユーティリティメニューから「ログアウト(認証元からもログアウト)」をクリックします。

    ポータル

  3. ログアウトに成功すると、Accel-Mart QuickとKeycloakからログアウトします。

応用

SAML Requestに署名を設定する

  1. 「Accel-Mart Quick システム管理者」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックし、「Accel-Mart Quick にKeycloakの情報を設定する」で登録した IdP の編集画面に遷移します。

  2. 「高度な設定」のシングルサインオンの「署名処理」を「署名する」に設定します。

    IdP更新 - 高度な設定

  3. 「更新」をクリックします。

  4. 署名用の証明書が作成され、「IdP一覧」画面に「証明書ダウンロード」列が表示されます。 「証明書ダウンロード」のアイコンをクリックし、証明書をダウンロードしてください。

    IdP一覧

  5. 取得した証明書を用いて「有効にした署名をKeycloak側で検証させる設定」を行います。

SAML Assertionを暗号化する

  1. 「Accel-Mart Quick システム管理者」ロールを持つユーザでログインし、「管理」-「外部システム連携設定」-「SAML認証設定」-「IdP一覧」をクリックし、「Accel-Mart Quick にKeycloakの情報を設定する」で登録した IdP の編集画面に遷移します。

  2. 「高度な設定」のシングルサインオンの「SAMLアサーション暗号化処理」を「暗号化する」に設定します。

    IdP更新 - 高度な設定

  3. 「更新」をクリックします。

  4. 「IdP一覧」画面から証明書をダウンロードします。

    IdP一覧

  5. 次に、Keytoolを用いて Accel-Mart Quick で取得した証明書を元にJKSファイルを作成します。

    注記

    コマンドプロンプトで下記のKeytoolコマンドを実行します。

    keytool -import -alias <ホスト名>.accel-mart.com/imart -keystore truststore.jks -file certificate.crt

    項目名設定値
    -alias<ホスト名>.accel-mart.com/imart
    -keystore作成するJKSファイル名
    -fileAccel-Mart Quick 取得した証明書のファイル名

    キーストアのパスワードを要求されるので設定します。

  6. Keycloakにログインし「Keycloakに Accel-Mart Quick の情報を登録する」で作成したRealmの「Client」-「Clients list」から作成したClientをクリックします。

  7. 「Key」タブを表示します。

  8. 「Encryption keys config」-「Encrypt assertions」のボタンをクリックします。

    Key - Encryption keys config

  9. 「Select method」の「Import」を選択し「Browse」から作成したJKSファイルを選択します。

    証明書を登録

  10. 下記を参考に必要な項目を入力してください。

    項目名設定値
    Key aliasJKSファイル作成時にKeytoolコマンド内で設定した -alias の値
    Store passwordJKSファイル作成時に設定したキーストアのパスワード

    証明書を登録

  11. 「Confirm」をクリックします。

有効にした署名をKeycloak側で検証させる設定

Accel-Mart Quick で取得した証明書を元にJKSファイルを作成し、Keycloakに設定します。
この設定は下記の設定を行う場合に必須です。

  1. Keytoolを用いて Accel-Mart Quick で取得した証明書を元にJKSファイルを作成します。

    注記

    コマンドプロンプトで下記のKeytoolコマンドを実行します。

    keytool -import -alias <ホスト名>.accel-mart.com/imart -keystore truststore.jks -file certificate.crt

    項目名設定値
    -alias<ホスト名>.accel-mart.com/imart
    -keystore作成するJKSファイル名
    -fileAccel-Mart Quick で取得した証明書のファイル名

    キーストアのパスワードを要求されるので設定します。

  2. 「Client」-「Clients list」から「Keycloakに Accel-Mart Quick の情報を登録する」で作成したClientをクリックします。

  3. 「Key」タブを表示します。

  4. 「Signing keys config」-「Client signature required」のボタンをクリックします。

    Key - Signing keys config

  5. 「Select method」の「Import」を選択し「Browse」から作成したJKSファイルを選択します。

    証明書を登録

  6. 下記を参考に必要な項目を入力してください。

    項目名設定値
    Key aliasJKSファイル作成時にKeytoolコマンド内で設定した -alias の値
    Store passwordJKSファイル作成時に設定したキーストアのパスワード

    証明書を登録

  7. 「Confirm」をクリックします。