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

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」をクリックします。