CA SDM 用の SAML 認証の有効化

Security Assertion Markup Language (SAML) は、別のコンテキストでのセッションに基づき、ユーザをアプリケーションにログインさせる標準技術です。 SAML SSO はユーザのアイデンティティをある場所(アイデンティティ プロバイダ)から別の場所(サービス プロバイダ)へと転送することで機能します。 この処理は、デジタル署名された XML ドキュメントの交換を通して行われます。
casm173
Security Assertion Markup Language (SAML) は、別のコンテキストでのセッションに基づき、ユーザをアプリケーションにログインさせる標準技術です。 SAML SSO はユーザのアイデンティティをある場所(アイデンティティ プロバイダ)から別の場所(サービス プロバイダ)へと転送することで機能します。 この処理は、デジタル署名された XML ドキュメントの交換を通して行われます。
この記事では、以下のサーバで CA Service Desk Manager 用の SAML 認証を有効化する方法について説明します。
前提条件
  1. ADFS をアイデンティティ プロバイダとして使用する場合は、Windows Server 2012 R2 以降に ADFS をインストールする必要があります。 ADFS および CA Service Desk Manager のインストールを完了したら、次に、以下の CA SDM 関連情報を使用して ADFS を設定する必要があります。
    1. ADFS に[証明書利用者信頼の追加]を設定する際、
      [URL の設定]
      画面で、以下を指定します。
      • [WS-フェデレーション パッシブ プロトコルのサポートを有効にする]
        チェックボックスを選択します。
      • [証明書利用者 WS-フェデレーション パッシブ プロトコル URL]
        内の値を以下の通りに入力してください。
        https://<SDM host name>:<https port>/CAisd/pdmweb.exe
      • [SAML 2.0 WebSSO プロトコルのサポートを有効にする]
        チェックボックスを選択します。
      • [証明書利用者 SAML 2.0 SSO サービス URL]
        内の値を以下の通りに入力してください。
        https://<sdm host>:<https port>/CAisd/pdmweb.exe
    2. クレーム ルールを追加する際、
      [クレーム ルールの設定]
      の手順で以下を指定します。
      • クレーム ルール名
        クレーム ルール名を指定します。 たとえば、SDM Claim Rule と入力します。
      • 属性のストア
        ドロップダウン リストからデータソースを選択します。 たとえば、Active Directory を選択します。
      • LDAP 属性
        ドロップダウン リストから
        [SAM アカウント名]
        を選択します。
      • 送信クレーム タイプ
        ドロップダウン リストから
        [名前]
        を選択します。
  2. アイデンティティ プロバイダとして CA Single Sign-on(旧 CA Siteminder)を使用する場合は、以下の操作を行います。
    1. 管理者として CA Single Sign-on を起動します。
    2. フェデレーション パートナーシップのパートナーシップ フェデレーションに移動し、[パートナーシップ]をクリックします。
      フェデレーション パートナーシップ リストが表示されます。
    3. 使用するフェデレーション パートナーシップ名をクリックします。
      [パートナーシップのプロパティ]ページが表示されます。
    4. [IP 制限]セクションを展開し、[アサーション属性]プロパティを確認します。
    5. Namespace フィールドの値は、それぞれのクレームの URI である必要があります。 値が「未指定」として指定されている場合、SAML 認証は機能しません。
  3. アイデンティティ プロバイダの設定に使用する証明書が SHA 256 署名であることを確認します。
  4. CA SDM 用 SSL が有効であることを確認します。 詳細については、「CA SM 17.3 用の SSL 認証の有効化」を参照してください。
Tomcat 上で CA SDM 用 SAML 認証を有効にします。
以下の手順に従います。
  1. web.xml ファイルを設定します。
    1. 以下のフォルダに移動し、
      NX_ROOT\bopcfg\www\CATALINA_BASE\webapps\CAisd\WEB-INF\
      web.xml ファイルを編集します。
    2. <!-- Add filter here -->
      ステートメントの下で、以下の設定をコピーして貼り付けます。
      <filter>
      <filter-name>FederationFilter</filter-name>
      <filter-class>com.auth10.federation.WSFederationFilter</filter-class>
      <init-param>
      <param-name>login-page-url</param-name>
      <param-value>main.jsp</param-value>
      </init-param>
      <init-param>
      <param-name>exclude-urls-regex</param-name>
      <param-value>/images/|/js/|/css/</param-value>
      </init-param>
      </filter>
    3. <!-- Add filter-mapping here -->
      ステートメントの下で、以下の設定をコピーして貼り付けます。
      <filter-mapping>
      <filter-name>FederationFilter</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>
    4. ファイルを保存して閉じます。
  2. federation.properties ファイルを設定します。
    1. 以下のフォルダに移動し、
      NX_ROOT\bopcfg\www\CATALINA_BASE\shared\resources\federation.properties
      ファイルを編集します。
    2. アイデンティティ プロバイダおよび CA Service Desk Manager に関連する以下の詳細を定義します。
      1. federation.trustedissuers.issuer
        アイデンティティ プロバイダの URL を定義します。
        例:
        Siteminder
        http://<siteminderURL>/affwebservices/public/wsfeddispatcher
        ADFS
        https://<trusted_issuer_URL>/<identity_provider>/ls/idpinitiatedsignon.aspx
      2. federation.trustedissuers.thumbprint
        アイデンティティ プロバイダによって提供される証明書の拇印の値を定義します。 証明書の
        「トークン署名]
        セクションから拇印を指定する必要があります。
        例:
        0214c3035d002505b9e5e672a117d9bf5c5d4d02
        アイデンティティ プロバイダを設定するために使用する証明書は、SHA-256 で署名される必要があります。
        SHA-256 証明書から使用する拇印は、SHA-1 拇印である必要があります。
      3. federation.trustedissuers.friendlyname
        アイデンティティ プロバイダ用の共通名を定義します。
        例:
        ADFS
        TestIP - <trusted_issuer_URL>
        Siteminder
        TestIP
      4. federation.audienceuris
        トークンを受け取る元のアプリケーションの URI を定義します。
        例:
        https://<SDM_HOST>:<SDM_TOM_SSL_PORT>/CAisd/pdmweb.exe|https://<SDM_HOST>:<SDM_TOM_SSL_PORT>/CAisd/pdmweb.exe
      5. federation.realm
        トークンが送信される元の場所を定義します。
        例:
        https://<SDM_HOST>:<SDM_TOM_SSL_PORT>/CAisd/pdmweb.exe
      6. federation.enableManualRedirect
        トークンの手動リダイレクトを有効にするかどうかを指定します。 手動リダイレクトを有効にするにはこの値を True にし、手動リダイレクトを無効にするには False にします。
        デフォルト:
        false
      7. federation.reply
        応答を受信する場所の URL を定義します。
        例:
        https://<SDM_HOST>:<SDM_TOM_SSL_PORT>/CAisd/pdmweb.exe
    3. ファイルを保存して閉じます。
  3. CA Service Desk Manager サービスを再起動します。
  4. CA SDM を起動し、SAML ベースの SSO アクセスを許可したいユーザ ロールに UI からの外部ユーザ認証を有効にします。
IIS 上での CA SDM 用の SAML 認証の有効化
以下の手順に従います。
  1. CA SDM がインストールされているサーバ上で、microsoft.NET Framework 4 がインストールされていることを確認します。 詳細については、「CA SM 17.3 用の SSL 認証の有効化」を参照してください。 詳細については、「How to Setup SSL on IIS (IIS での SSL のセットアップ方法)」で Microsoft のドキュメントを参照してください。
  2. エディタで、web.config ファイルを開きます。 ファイルは通常 NX_ROOT\bopcfg\www\ wwwroot\ 内で利用可能です。
  3. ファイルで、以下のステートメントを探します。
    <!-- To Enable SAML, Comment above code and Uncomment below code. -->
  4. ファイル内でこのステートメントの上にあるコードはすべてコメント化します。コードの最初に <!-- タグを追加し、コードの最後に --> タグを追加します。
  5. ファイル内でステートメントの下に現れたコードはすべてアンコメント化します。コードの最初の <!-- とコードの最後の --> を削除します。
  6. 以下の行を検索してテキスト「Define the URI of the application from where to accept the tokens」を、http://<SDM ホスト名>:<SSL ポート>/CAisd/pdmweb.exe で書き換えます。
    <audienceUris>
    <add value="Define the URI of the application from where to accept the tokens" />
    </audienceUris>
    例:
    <audienceUris>
    <add value="http://CAServiceDesk:443/CAisd/pdmweb.exe" />
    </audienceUris>
  7. 以下の行を検索し、「add thumbprint」と「name」パラメータの値を変更します。 証明書の
    「トークン署名]
    セクションから拇印を指定する必要があります。
    <trustedIssuers>
    <add thumbprint="Define the value of the certificate thumbprint provided by the Identity Provider" name="Define a common name for the Identity Provider" />
    </trustedIssuers>
    例:
    <trustedIssuers>
    <add thumbprint="bb89519f06dc7b1ab43871e1a3310eca893b94cb" name="sdmcomputer01.casm.local" />
    </trustedIssuers>
  8. 以下の行を検索し、[issuer]、[realm]、[reply]および[requireHttps]パラメータの値を変更します。
    <federationConfiguration>
    <cookieHandler requireSsl="false" />
    <wsFederation passiveRedirectEnabled="true" issuer="Define the Identity Provider URL" realm="Define the location from where the tokens are sent" reply="Define the URL of the location that receives responses" requireHttps="true|false" />
    </federationConfiguration>
    1. issuer
      アイデンティティ プロバイダの URL を定義します。
      例:
      ADFS:
      https://hostname.casm.local/adfs/ls/idpinitiatedsignon.aspx
      Siteminder:
      http://hostname:88/affwebservices/public/wsfeddispatcher
    2. realm
      realm="Define the location from where the tokens are sent"
      realm="https://<SDM host name>:<SSL Port>/CAisd/pdmweb.exe"
      に置き換えます。
      例:
      realm="https://CAServiceDesk:443/CAisd/pdmweb.exe"
    3. reply
      テキスト
      reply="Define the URL of the location that receives responses"
      を reply="https://<
      SDM host name
      >:<
      SSL Port
      >/CAisd/pdmweb.exe" に置き換えます。
      例:
      reply="https://CAServiceDesk:443/CAisd/pdmweb.exe"
    4. requireHttps
      https を必要とするかどうかを true または false で定義します。
      True
      アイデンティティ
      プロバイダ URL が https ベースの場合は、この値を
      true
      に設定します。
      False
      アイデンティティ プロバイダ URL が http ベースの場合は、値を
      false
      にします。
  9. ファイルを保存して閉じます。
  10. CA Service Desk Manager サービスを再起動します。
  11. CA SDM を起動し、SAML ベースの SSO アクセスを許可したいユーザ ロールに UI からの外部ユーザ認証を有効にします。
Apache 上で CA SDM 用 SAML 認証を有効にします。
以下の手順に従います。
  1. CA Service Management
    で HTTPS が有効になっていることを確認します。 詳細については、「CA SM 17.3 用の SSL 認証の有効化」を参照してください。
  2. Shibboleth サービス プロバイダをダウンロードして、
    CA Service Management
    がインストールされている Apache サーバ上にインストールします。 使用しているオペレーティング システムに対応した Shibboleth サービス プロバイダをダウンロードする必要があります。 Shibboleth サービス プロバイダ バージョン 2.6 を使用することをお勧めします。 Shibboleth サービス プロバイダは、Solaris 上でのインストールをサポートしていません。 Shibboleth インストールおよびソフトウェア ダウンロードの詳細については、Shibboleth のドキュメントを参照してください。
  3. Shibboleth サービスを開始します。
  4. アイデンティティ プロバイダのメタデータ URL をブラウザで起動して、
    FederationMetadata.xml
    ファイルを生成し、パス
    \etc\shibboleth\
    にコピーしてから、ファイル名を
    partner-metadata.xml
    に変更します。 たとえば、ADFS をアイデンティティ プロバイダとして使用している場合、メタデータ URL は https://<ADFS server>/federationmetadata/2007-06/federationmetadata.xml となります。
  5. Shibboleth2.xml ファイルを以下の通りに変更します。 ファイルは通常 \etc\shibboleth\ 内で利用可能です。
    1. ファイルで以下の行を検索し、「entity ID」パラメータと「REMOTE_USER」の値を変更します。
      <
      ApplicationDefaults entityID="https://<SDM host name>:<SSL Port>" REMOTE_USER="<IdP claim user detail property>" cipherSuites="ECDHE+AESGCM:ECDHE:!aNULL:!eNULL:!LOW:!EXPORT:!RC4:!SHA:!SSLv2"
      >
      例:
      <
      ApplicationDefaults entityID="https://CAServiceDesk:443"
      REMOTE_USER="smuser"
      cipherSuites="ECDHE+AESGCM:ECDHE:!aNULL:!eNULL:!LOW:!EXPORT:!RC4:!SHA:!SSLv2"
      >
    2. ファイルで以下の行を検索し、パラメータ「entity ID」の値を変更します。
      <SSO entityID="<URL of the Identity Provider> "
      discoveryProtocol="SAMLDS" discoveryURL="https://ds.example.org/DS/WAYF">
      SAML2 SAML1
      </SSO>
      例:
      <SSO entityID="http://adfscomputer/adfs/services/trust"
      discoveryProtocol="SAMLDS" discoveryURL="https://ds.example.org/DS/WAYF">
      SAML2 SAML1
      </SSO>
    3. shibboleth.xml ファイルを開き、エンティティ ID の値を、partner-metadata.xml ファイルで使用可能なエンティティ ID の値に置き換えます。
    4. 以下の行を検索してすべてコメント化します。まだコメント化されていない場合は、コードの最初に <!-- を追加し、コードの最後に --> を追加することを意味します。
      <!-- Example of remotely supplied batch of signed metadata. -->
      <!--
      <MetadataProvider type="XML" validate="true"
      uri="http://example.org/federation-metadata.xml"
      backingFilePath="federation-metadata.xml" reloadInterval="7200">
      <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/>
      <MetadataFilter type="Signature" certificate="fedsigner.pem"/>
      <DiscoveryFilter type="Blacklist" matcher="EntityAttributes" trimTags="true"
      attributeName="http://macedir.org/entity-category"
      attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
      attributeValue="http://refeds.org/category/hide-from-discovery" />
      </MetadataProvider>
      -->
    5. 前述のように、コメント付きのコードの下に次の行を追加します。
      <!-- Example of locally maintained metadata. -->
      <MetadataProvider type="XML" validate="false" file="partner-metadata.xml"/>
  6. パス ./etc/shibboleth/ から attribute-map.xml を開き、以下の通りに編集します。
    ファイルの先頭で、以下の行を追加します。
    <Attribute name="<IdP claim to send to the relying party>" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" id="<IdP claim to send to the relying party>"/>
    例:
    <Attribute name="smuser" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" id="smuser"/>
    注:
    Shibboleth 向け ADFS を使用して「証明書利用者信頼」を作成している場合、ADFS にアップロードすべきメタデータは、サービス プロバイダのメタデータ URL を起動することで取得できます。 たとえば、https://<Shibboleth サーバ名>/Shibboleth.sso/Metadata です。
  7. httpd.conf ファイルを開き、次の通りに編集します。 ファイルは通常
    etc/httpd/conf/
    内で利用可能です。 httpd.conf file ファイルの最後に以下の行を追加します。
    #Shibboleth configuration
    LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_22.so
    <Location /Shibboleth.sso>
    SetHandler shib
    </Location>
    <Location />
    AuthType shibboleth
    ShibRequestSetting requireSession 1
    Require valid-user
    ShibUseHeaders Off
    </location>
  8. Shibboleth サービスを再起動します。
  9. Apache サーバを再起動します。
  10. CA SDM を起動し、SAML ベースの SSO アクセスを許可したいユーザ ロールに UI からの外部ユーザ認証を有効にします。