SAML 2.0 で Salesforce とシングルサインオン

Salesforce と Questetra との SAML 2.0 認証連携設定について説明します。

Salesforce を SAML の ID Provider(IdP)として使用し、Questetra BPM Suite を Service Provider(SP)として設定します。

Questetra BPM Suite における SAML SSO の概要については、以下を参照してください。

M310: 外部の認証サービスを用いたシングルサインオン機能を有効化する(SAML 編)

Salesforce を IdP として使用できる Edition は限られています。ご利用の Salesforce Edition が対応しているか事前に確認してください。 ID プロバイダーの有効化(Salesforce ヘルプ)

1. [Questetra BPM Suite] SP 情報の確認

まず Questetra 側で SP 情報を確認します。Salesforce 側の設定で使用します。

「システム設定」→「SSO(SAML)」と進み、「シングルサインオン(SAML)」設定画面にて「シングルサインオンを有効にする」を選択してください。値を確認するだけですので、この時点では保存する必要はありません。

確認する値は以下の 2 つです。

  • エンティティ ID
  • ACS URL

これらの値を控えて、Salesforce の設定に進みます。

2. [Salesforce] 「私のドメイン」の確認

Salesforce を SAML の IdP として使用するには、「私のドメイン」が有効になっている必要があります。現在の Salesforce では原則として自動的に有効になっていますが、念のため確認してください。

「設定」→「会社の設定」→「私のドメイン」

ドメインが登録され、「リリース済み」の状態になっていれば問題ありません。

3. [Salesforce] ID プロバイダーの有効化

「設定」→「ID」→「ID プロバイダー」

「ID プロバイダーを有効化」をクリックし、使用する証明書を選択(または新規作成)して保存してください。

4. [Salesforce] 外部クライアントアプリケーションの追加

Questetra BPM Suite を外部クライアントアプリケーションとして Salesforce に登録します。

「設定」→「アプリケーション」→「外部クライアントアプリケーション」→「外部クライアントアプリケーションマネージャー」

「新規外部クライアントアプリケーション」をクリックし、以下を入力してください。

基本情報

  • 外部クライアントアプリケーション名:任意(例:Questetra BPM Suite)
  • API 参照名:任意(例:qbpms)
  • 取引先責任者メール:担当者のメールアドレス
  • 配信状態:ローカル(デフォルトのまま)

Web アプリケーション設定

  • 「SAML の有効化」にチェック
  • エンティティ ID:Questetra の「SP 情報」の「エンティティ ID」をコピー
  • ACS URL:Questetra の「SP 情報」の「ACS URL」をコピー
  • 名前 ID 形式:urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
  • 件名種別:「ユーザー名」または「統合 ID」のいずれかを選択(下記参照)

件名種別の選択について

Questetra はメールアドレスでユーザーを照合します。「件名種別」でメールアドレスを直接指定することはできないため、以下のいずれかの方法で対応してください。

  • 「ユーザー名」を選択する場合:Salesforce の各ユーザーの「ユーザー名」に、Questetra に登録されているメールアドレスと同じ値を設定してください
  • 「統合 ID」を選択する場合:Salesforce の各ユーザーの「統合 ID」に、Questetra に登録されているメールアドレスと同じ値を設定してください

設定が完了したら「作成」をクリックしてください。

5. [Salesforce] ユーザーの割り当て

外部クライアントアプリケーションを利用できるユーザーを設定します。権限セットで管理します。

権限セットの作成と割り当て:

  1. 「設定」→「ユーザ」→「権限セット」で新規権限セットを作成
  2. 権限セットの「割り当ての管理」から対象ユーザーを追加

外部クライアントアプリケーションへの権限セットの追加:

「設定」→「アプリケーション」→「外部クライアントアプリケーション」→「外部クライアントアプリケーションマネージャー」→ 対象アプリ →「ポリシー」タブ →「編集」→「権限セットを選択」

割り当てられたユーザーのみ、シングルサインオンで Questetra BPM Suite にログインできるようになります。

6. [Salesforce] SSO 情報の確認

Questetra の設定に必要な情報を Salesforce から取得します。

「設定」→「ID」→「ID プロバイダー」

「メタデータをダウンロード」で XML ファイルを取得してください。XML ファイルの以下の要素から値を確認します。

  • 発行者(Issuer):<EntityDescriptor entityID=”…”> の entityID 属性の値 → Questetra の「エンティティ ID」に入力します
  • ログイン URL:<SingleSignOnService Binding=”urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST” Location=”…”/> の Location 属性の値 → Questetra の「ログインページ URL」に入力します

証明書は「ID プロバイダー」ページの「証明書をダウンロード」から取得します。

7. [Questetra BPM Suite] ID プロバイダーの設定を行う

最後に Questetra 側で設定を行います。

「システム設定」→「SSO(SAML)」と進み、「シングルサインオンを有効にする」を選択してください。手順 6 で確認した Salesforce の情報を以下のように入力します。

  • エンティティ ID ― 手順 6 で確認した発行者(entityID)
  • ログインページ URL ― 手順 6 で確認したログイン URL
  • 証明書 ― 手順 6 でダウンロードした証明書ファイルをテキストエディタで開き、—–BEGIN CERTIFICATE—– から —–END CERTIFICATE—– までの内容をそのままコピーして貼り付けてください

入力が完了したら「保存」してください。

これでシングルサインオンの設定は完了です。Questetra BPM Suite のログインページから、シングルサインオンでログインすることができます。Salesforce にログイン済みであれば、いきなり Questetra BPM Suite 内のページに遷移します。Salesforce に未だログインしていなければ、Salesforce へのログイン画面を経た上で、Questetra BPM Suite 内のページに遷移します。

うまくいかない場合

設定内容を再確認してください。特に以下の点は間違いが起きやすいです。

  • Salesforce の「エンティティ ID」と Questetra の「エンティティ ID」が一致しているか
  • Salesforce の「ACS URL」と Questetra の「ACS URL」が一致しているか
  • Salesforce 上のユーザー名または統合 ID(「件名種別」で設定した項目)が Questetra のユーザーのメールアドレスと一致しているか
  • 対象ユーザーに外部クライアントアプリケーションへのアクセス権が付与されているか

設定内容に不備がないのにうまくいかない場合、「管理」→「システムログ」でログイン失敗の記録を確認してください。ログにはエラーの詳細が記録されています。

  • SAML Error: Invalidated Session ― 一時的なセッションの問題です。ブラウザを開き直して再試行してください。
  • SAML Error: AuthnStatement/@AuthnInstant is invalid ― IdP で認証してからの経過時間が長すぎます。IdP に再ログインしてから試すか、Questetra 側の「認証情報有効期間」の設定値を延ばしてください。
  • SAML Error の記載がない ― IdP から送られた値に一致するユーザーが Questetra に存在しません。手順 4 の「件名種別」設定を再確認してください。

それ以外のエラーメッセージが記録されている場合は、上記の設定確認リストを改めて見直してください。解消しない場合はクエステトラのサポートまでお問い合わせください(その際、システムログのエラー内容をお知らせください)。

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む