SAML のシングル・サインオンの構成

IBM OpenPages® with Watson™ で SAML シングル・サインオンを使用できます。ここに示す手順では Microsoft Active Microsoft Directory Federation Server (ADFS) を ID プロバイダー (IdP) として使用しますが、SAML 2.0 プロトコルをサポートする任意の IdP を使用できます。

始める前に

ご使用の環境が以下の前提条件を満たしている必要があります。
  • ADFS サーバーがセットアップされ、稼働している。
  • ADFS と OpenPages の両方でユーザー・アカウントがセットアップされている。両方のシステムでユーザー名が同じでなければなりません。
  • OpenPages 8.2 以降がインストールされ、OpenPages サーバーが稼働している。
  • ブラウザーから OpenPages アプリケーションにログインできる。

手順

  1. OpenPages でシングル・サインオンを有効にします。
    1. 管理権限を持つユーザーで OpenPages アプリケーションにログオンします。
    2. 「設定」メニュー > 「システム設定」 > 「設定」をクリックします。
    3. 「アプリケーション」 > 「共通 (Common)」 > 「構成」をクリックします。「非表示の設定を表示 (Show Hidden Settings)」true に変更します。
    4. 以下の設定を更新します。
      • 「プラットフォーム (Platform)」 > 「セキュリティー (Security)」 > 「シングル・サインオン (Single Sign On)」 > 「実施 (Implementations)」 > 「現行 (Current)HTTP-User-based に変更します。
      • 「プラットフォーム (Platform)」 > 「セキュリティー (Security)」 > 「シングル・サインオン (Single Sign On)」 > 「SOX」true に変更します。
  2. IBM® WebSphere® Liberty 用の SAML シングル・サインオンをインストールします。
    1. OpenPages アプリケーション・サーバーにログオンします。
    2. 以下のコマンドを実行して samlWeb-2.0 フィーチャーをインストールします。
      <WLP_HOME>/bin/installUtility install samlweb-2.0
  3. WebSphere Liberty でシングル・サインオンを構成します。
    1. ディレクトリー <WLP_USER_DIR>/servers/<server_name>Server<#>/configDropins/overrides に移動します。

      ディレクトリーが見つからない場合は、作成します。

    2. 新しい .xml ファイルを作成します (例として OP_SSO_SAML_config.xml とします)。
    3. そのファイルに以下の行を追加します。
      <server>
          <featureManager>
              <feature>samlWeb-2.0</feature>
          </featureManager>
      <!-- SAML SSO configuration - Single IdP -->
      <samlWebSso20 id="<saml_id>"
      disableLtpaCookie="false"
      allowCustomCacheKey="false"
      mapToUserRegistry="User"
      idpMetadata="<OP_HOME>/wlp-usr/servers/<server_name>Server<#>/resources/security/FederationMetadata.xml"
      enabled="true"
      spLogout="false"
      nameIDFormat="unspecified">
      <authFilter id="samlAuthFilter">
      <requestUrl id="openpagesUrl" urlPattern="/grc/api" matchType="notContain"/>
      </authFilter>
      </samlWebSso20>
      </server>

      <saml_id> には、SAML 構成の ID (例: defaultSP) を入力します。

      idpMetadata では、<OP_HOME> および <server_name>Server<#> を、ご使用のアプリケーション・サーバーの値に置き換えてください。FederationMetadata.xml ファイルはステップ 7 で取得します。

      <requestUrl>urlPattern="/grc/api" 属性により、この SAML SSO 認証構成から REST API が除外されます。すべての OpenPages URL を含めるには、以下の例のようなパターンを使用します。
      <requestUrl id="openpagesUrl" urlPattern="/" matchType="contains"/>

      ファイルを保存して閉じます。

  4. ADFS サーバーからトークン署名証明書をエクスポートします。
    詳しくは、ADFS に付属する資料を参照してください。
  5. そのトークン署名証明書を OpenPages 鍵ストアにインポートします。
    keytool -importcert -v -alias adfs -file adfsSignedCert.cer -keystore <OP_HOME>/wlp-usr/servers/<server_name>Server<#>/resources/security/key.p12 -storetype PKCS12
  6. ADFS で証明書利用者の信頼をセットアップします。
    詳しくは、ADFS の資料を参照してください。
    1. ブラウザーで以下の URL にアクセスして、WebSphere Liberty から SAML サービス・プロバイダー・メタデータをエクスポートします。
      • <op_app_server> および <op_port>OpenPages アプリケーション・サーバーのホストとポートに置き換えます。
      • <saml_id> を、OP_SSO_SAML_config.xml ファイル内の <samlWebSso20> 要素で指定した id 属性に置き換えます。
      https://<op_app_server>:<op_port>/ibm/saml20/<saml_id>/samlmetadata
      例:
      https://my.app.server:10111/ibm/saml20/defaultSP/samlmetadata
    2. その SAML サービス・プロバイダー・メタデータを ADFS サーバーにインポートします。ADFS の「Server manager」「Tools」 > 「AD FS Management」 > 「Add Relying Party Trust」をクリックします。
    3. 以下の 2 つのカスタム要求規則を証明書利用者の信頼に追加します。

      要求規則名: GetUpn

      カスタム規則:
      c:[
        Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
        Issuer == "AD AUTHORITY"
        ]
      =>
      add(
        store = "Active Directory",
        types = ("UpnHolder"),
        query = ";userPrincipalName;{0}",
        param = c.Value
        );

      要求規則名: UpnToNameID

      カスタム規則:
      c:[
        Type == "UpnHolder"
        ]
      =>
      issue(
        Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
        Value = RegexReplace(c.Value, "(?<user>[^@]+)@(?<domain>.+)", "${user}")
        );
  7. ブラウザーで以下の URL にアクセスして、ADFS フェデレーション・メタデータ・ファイルを取得します。

    <ADFS_URL> は ADFS サーバーの URL で置き換えてください。

    https://<ADFS_URL>/FederationMetadata/2007-06/FederationMetadata.xml
  8. その ADFS フェデレーション・メタデータ・ファイルの名前を変更して、ステップ 3.cidpMetadata 属性で使用した名前に一致させます。アプリケーション・サーバーの、idpMetadata 属性値で指定したディレクトリーにそのファイルを配置します。
    idpMetadata="<OP_HOME>/wlp-usr/servers/<server_name>Server<#>/resources/security/FederationMetadata.xml"
  9. OpenPages サービスを停止してから再始動します。
  10. 有効期限が切れないようにユーザー・パスワードを設定します。ユーザー・パスワードを無期限にする設定を参照してください。

次のタスク

混合モードを構成する場合は、混合モード・シングル・サインオンの構成 (SAML および OpenPages)を参照してください。それ以外の場合は、ユーザーのパスワードを OpenPages でのデフォルトから変更して、ユーザーが OpenPages の資格情報でログインするのを防止します。以下の例外に注意してください。
  • 混合モード SSO を使用する場合は、OpenPages 認証 (ネイティブ 認証とも呼ばれます) を使用してログインするユーザーのパスワードを変更しないでください。
  • REST API にアクセスするユーザー・アカウントのパスワードは変更しないでください。

ロード・バランサーまたはプロキシー・サーバーを使用する場合は、追加の構成が必要です。SAML V2.0 のシングル・サインオン用の HTTP Server の構成を参照してください。