SAML2.0 による Introscope のセキュリティ保護

SAML 2.0 は、ユーザ認証の中心的な位置となる SSO 認証プロトコルです。 1 回のログインのみで Web アプリケーション間を移動するには、SAML 2.0 を使用します。 WebView、Web Start Workstation および Command Center は、SAML 2.0 サービス プロバイダとして動作します。 WebView、Webstart Workstation、Command Center は、認証のアイデンティティ プロバイダ(IdP)に接続できます。
apmdevops106
SAML 2.0 は、ユーザ認証の中心的な位置となる SSO 認証プロトコルです。 1 回のログインのみで Web アプリケーション間を移動するには、SAML 2.0 を使用します。 WebView、Web Start Workstation および Command Center は、SAML 2.0 サービス プロバイダとして動作します。 WebView、Webstart Workstation、Command Center は、認証のアイデンティティ プロバイダ(IdP)に接続できます。
内部または外部の IdP を使用するように Introscope を設定します。 Introscope がユーザ認証のために既存の会社の IdP を使用できるように、外部の IdP を使用します。 また、Enterprise Manager には、ユーザ認証のために有効化できる内部の IdP が含まれます。
内部の IdP による SAML 認証の設定
内部の IdP を使用して Introscope を設定します。
以下の手順に従います。
  1. <EM_Home>/config
    ディレクトリに移動します。
  2. IntroscopeEnterpriseManager.properties
    ファイルをテキスト エディタで開きます。
  3. WebView、Web Start Workstation、および Command Center の SAML 認証を有効にします。
    introscope.saml.enable=true
  4. Enterprise Manager の起動中に開始する内部プロバイダを有効にします。
    introscope.saml.internalIdp.enable=true
  5. Enterprise Manager を再起動します。
  • その他の SAML 設定オプションを変更しないでください。 それらを変更すると、CA APM は、内部の IdP と通信できません。
  • ユーザ情報の取得に
    <EM_Home>/config
    ディレクトリの
    realms.xml
    を使用するように内部プロバイダが設定されます。 ローカル、LDAP、または EEM 認証を使用するように
    realms.xml
    を設定します。
外部の IdP による SAML 認証の設定
外部の IdP を使用して Introscope を設定します。
以下の手順に従います。
  1. <EM_Home>/config
    に移動し、テキスト エディタで
    IntroscopeEnterpriseManager.properties
    ファイルを開きます。
  2. WebView および Web Start Workstation の SAML 認証を有効にします。
    introscope.saml.enable=true
  3. (オプション) IdP 要求に使用するバインディング パラメータを変更します。 バインディングには、
    Post
    または
    Redirect
    を指定できます。
    Redirect
    に変更するときは、IdP のリダイレクト要求の URL が異なる場合、
    internalIdpUrl
    を正しい値に変更します。
    デフォルト:
    Post
    introscope.saml.request.binding=POST
  4. IdP の SAML 2 SSO ページに URL を設定します。 正しい値については、IdP の設定を参照してください。
    例: CA Single Sign-On を IdP として使用
    introscope.saml.idpUrl=http://<hostname>/affwebservices/public/saml2sso
  5. (オプション) IdP 設定に従って、他の SAML 設定を変更します。 CA APM のデプロイが 1 つのみの場合は、デフォルト設定を使用します。
    introscope.saml.issuer=com.ca.apm.webview.serviceprovider
    introscope.saml.webstart.issuer=com.ca.apm.webstart.serviceprovider
    introscope.saml.em.issuer=com.ca.apm.em.serviceprovider
    introscope.saml.principalAttributeName=principalName
    introscope.saml.groupsAttributeName=groups
  6. <EM_Home>/config/realms.xml
    ファイルを開き、SAML のレルムを追加します。 このレルムは、Enterprise Manager で、IdP が認証するすべてのユーザを認証できるようにします。
    <realm descriptor="SAML Realm" id="SAML Realm" active="true" />
外部の IdP の設定
ログインに成功したらアプリケーションにユーザをリダイレクトして戻すように、サービス プロバイダのメタデータで IdP を設定します。 Enterprise Manager には、WebView および Web Start Workstation 用のサービス プロバイダのメタデータ ファイルが含まれています。 メタデータ ファイルには、アサーション コンシューマのアドレスや暗号化キーなどの設定が含まれます。 IdP がメタデータのインポートをサポートする場合、これらのファイルを使用して、IdP でサービス プロバイダ エンティティを作成します。 メタデータ ファイルには、以下の形式で名前が付けられます。
<EM_Home>/config/saml-sp*-metadata.xml
サービス プロバイダは、以下の NameID 形式を提供します。
ログイン後に、ユーザ名は、アサーション属性または NameID タグのいずれかで、SAML アサーション応答で渡されます。 設定ファイル内の属性名を変更します。
クラスタの場合、MOM からサービス プロバイダのメタデータをインポートします。
<EM_Home>/config/domain.xml
ファイル ディレクトリ内で管理者のグループおよびユーザを設定します。 ユーザにすべての操作の権限を個別に割り当て、ユーザがメンバであるグループに権限を割り当てます。 Team Center 内のユニバースの権限定義は、SAML アサーションで取得されるユーザ グループ メンバシップにも基づいています。
Authorization
IdP からの SAML 2.0 アサーションでは、定義された属性を持つ属性ステートメントを提供できます。 Enterprise Manager は、ユーザの許可に対して定義済みの属性を使用できます。 SAML アサーションで提供される場合、この属性には、ユーザがメンバであるグループの名前が含まれます。 これらのグループを使用して、エージェントのドメインまたはサーバに対する Enterrise Manager 行アクセスのリソースを許可できます。 この属性のデフォルト名は、
groups
です。 名前を変更するには、
introscope.saml.groupsAttributeName
プロパティを設定します。
セキュリティ オプション
署名
SAML 応答には、アサーションまたは応答全体のシグネチャを含めることができます。
SAML 応答/アサーションのシグネチャを IdP の依存パーティ構成ファイルで設定します。 シグネチャは、サービス プロバイダのプロファイル構成ごとに設定されます。 内部の IdP では、依存パーティ構成ファイルの場所は、
<EM_Home>/config/shibboleth/conf/relying-party.xml>
です。
IdP の SAML 応答には、応答またはアサーションのシグネチャが含まれ、応答内のキーがシグネチャを検証します。 ただし、信頼は WebView 証明書ストア(
<WebView_Home>/config/internal/server/keystore>
ファイル)の証明書で検証されます。 信頼の検証を容易にするために、このストアに IdP の証明書を追加します。
シグネチャの検証または信頼の検証に失敗した場合は、ユーザ認証は失敗し、Enterprise Manager に対してユーザが認証されません。
Encryption
SAML 応答のアサーションまたは NameID は暗号化することができます。
SAML アサーション/NameID の暗号化を IdP 依存パーティ構成ファイルで設定します。 暗号化は、サービス プロバイダのプロファイル構成ごとに設定されます。 内部の IdP では、依存パーティ構成ファイルの場所は、
<EM_Home>/config/shibboleth/conf/relying-party.xml>
です。
サービス プロバイダの公開証明書は、サービス プロバイダのメタデータ ファイル内に存在します。 IdP は、この証明書を使用して暗号化します。 サービス プロバイダの秘密鍵は、WebView 証明書ストア(
<WebView_Home>/config/internal/server/keystore>
)に存在します。 公開証明書は、PEM 形式の RSA キーです。 サービス プロバイダ メタデータ ファイル内の公開証明書を変更できます。 サービス プロバイダ メタデータ ファイルの変更を行った後は、対応する秘密鍵を WebView 証明書ストアに追加します。 これらの変更により、復号化が容易になります。
復号化プロセスが失敗した場合は、ユーザ認証は失敗し、Enterprise Manager に対してユーザが認証されません。
トラストストアへの IdP 公開証明書のインポート
Enterprise Manager および WebView トラストストア ファイルは
<WebView_Home>/config/internal/server/keystore>
にあります。 認証が成功するためには、IdP の公開鍵が Enterprise Manager および WebView のトラストストア ファイルに含まれている必要があります。 公開鍵をインポートした場合、IdP は署名された SAML 応答を送信できます。 インポートにより、受信したシグネチャ(メッセージ)の信頼が確立されます。 信頼が検証されていない場合は、認証は失敗します。 IdP メタデータ ファイルには、IdP の公開鍵が含まれています。 キーストアに証明書をインポートできます。
以下の手順に従います。
  1. IdP メタデータ内の証明書情報を新しいファイルにコピーします(例:
    idp_public.pem
    )。 IdP メタデータ内の証明書は PEM と呼ばれる形式です。
  2. 新しいファイルにヘッダおよびフッタを追加します。 ファイルは、追加後にこの例のようになります。
    -----BEGIN CERTIFICATE-----
    MIIDeTCCAmGgAwIBAgIEb1CaGjANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJDWjEXMBUGA1UE
    CBMOQ3plY2ggUmVwdWJsaWMxDzANBgNVBAcTBlByYWd1ZTEMMAoGA1UEChMDQVBNMQwwCgYDVQQL
    EwNBUE0xGDAWBgNVBAMTD0NBIFRlY2hub2xvZ2llczAeFw0xNTAyMTgxNjA0NDBaFw0xNTA1MTkx
    NjA0NDBaMG0xCzAJBgNVBAYTAkNaMRcwFQYDVQQIEw5DemVjaCBSZXB1YmxpYzEPMA0GA1UEBxMG
    UHJhZ3VlMQwwCgYDVQQKEwNBUE0xDDAKBgNVBAsTA0FQTTEYMBYGA1UEAxMPQ0EgVGVjaG5vbG9n
    aWVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmEbxIlwPc8yD1JzSN/Fex52Rjfwl
    ImI4QUeKk5f23qFiYM+n/5zMf5aQVfr548E1PrZeuug+PmyiJJzT9waLxXwK7ifQjDndcusYAuYT
    NRALylfse08Z0Wzfd1q54eo7lx+fnzlzFTOhKNa3ecHg5KibPV1TQny/HI+5pRJpMnL7zXu+UkYF
    Xc2VDtX9PXC46M0Z27XkVnx96uQfYI8hHLYkUyw90/8E7U+9/veYbaSafMgPJvmtlgt7jvsk131u
    6YNzB0Kw6eC3J1MJuenu390qYi8hyrifnA969xVNfSzgs8WMo0XWdBWOfFDCqPQlG8O1n24kKjID
    DiwrfwseFwIDAQABoyEwHzAdBgNVHQ4EFgQUQ7SL+nQvflhanTopBW86MfdRrSUwDQYJKoZIhvcN
    AQELBQADggEBAHIcZ/zwuf4w6S6TV58vjy0OS/3Jqc+uGr31AeRzPTip1qjGOJSTVrCSeFzZxcQd
    PsehylsKDAxCdaTsgBuGv0idoC0LofNOJrm2Wwzwxj/1dcUIls4xDXWxHPSjHyLVKUxTtGZLXNKR
    lICLOW1FEUs42G2VR00Zj0t7A1XjHG4Z+UhjclXEXOkWprk9VI9cn2z80jr8VQWlf6sCuEnpkoML
    2G+geeSYvBI5E6QgpjgevIsK0r2NXigH+JTZ+psLa+tPpHhXCkNLNAueq3bgkbodK8E1Dpv8IRX6
    z6LUS/iuMCCtjoA1FGMsF1EZiQ2Pt/MPZgPAAsMrZWkikXqNke4=
    -----END CERTIFICATE-----
  3. ファイルを保存します。
  4. open ssl を使用してファイルを PEM から DER 形式に変換します。
    openssl x509 -outform der -in idp_public.pem -out idp_public.der
  5. keytool を使用して Enterprise Manager または WebView のキーストアに DER 形式の証明書をインポートします。
    keytool -import -alias your-alias -keystore keystore -file idp_public.der
    キーストアのパスワードは
    password
    です。
  6. Enterprise Manager および WebView が同じ場所にインストールされている場合は、キーストアに証明書を 1 回のみインポートします。 インストールが同じ場所にない場合は、インストールごとに証明書をインポートします。
制限事項
  • SAML 2.0 は認証にのみ使用できます。
  • クラスタごとに 1 つの WebView サーバのみがサポートされています。
  • クラスタごとに 1 つの Web Start Workstation サーバのみがサポートされています。
  • IdP に対するフェールオーバはサポートされません。
IntroscopeEnterpriseManager.properties の設定オプション
IntroscopeEnterpriseManager.properties
ファイルで、以下の設定オプションを使用できます。
introscope.saml.enable
SAML 認証を有効にするオプション。
デフォルト:
false
introscope.saml.request.binding
IdP への要求のバインディング。 バインディングには、
POST
または
Redirect
を指定できます。
Redirect
に変更するときは、IdP のリダイレクト要求の URL が異なる場合、
internalIdpUrl
を正しい値に変更します。
デフォルト:
POST
introscope.saml.idpUrl
IdP の SAML 2.0 SSO サービスの URL アドレス。 正しい値については、IdP のドキュメントを参照してください。
デフォルト:
内部の IdP の SAML SSO サービスへの URL
introscope.saml.issuer
WebView のサービス プロバイダの識別子文字列は、IdP のサービス プロバイダ識別文字列と一致する必要があります。 デフォルト値は、サービス プロバイダのメタデータ ファイル内の値と一致します。 メタデータをインポートすると、サービス プロバイダと IdP で値が同じになります。 1 つの IdP で複数の WebView を実行する場合は、この設定を変更します。 この文字列に一致するように IdP 設定を変更します。
デフォルト:
com.ca.apm.webview.serviceprovider
introscope.saml.webstart.issuer
Webstart Workstation のサービス プロバイダの識別子文字列は、IdP 設定のサービス プロバイダ識別文字列と一致する必要があります。 デフォルト値は、サービス プロバイダのメタデータ ファイル内の値と一致します。 メタデータをインポートすると、サービス プロバイダと IdP で値が同じになります。 1 つの IdP で複数の Web Start Workstation を実行する場合は、この設定を変更します。 この文字列に一致するように IdP 設定を変更します。
デフォルト:
com.ca.apm.webview.serviceprovider
introscope.saml.principalAttributeName
ユーザ名のソースとして使用される SAML アサーション応答属性。 アサーション応答に存在しない場合は、NameID が使用されます。
デフォルト:
principalName
introscope.saml.groupsAttributeName
許可グループのソースとして使用される SAML アサーション応答属性。
デフォルト:
groups
introscope.saml.webstart.tokenTimeoutInSeconds
Webstart Workstation の SAML SSO トークンの有効な期間を設定します。 認証後、この期間内に Webstart Workstation を開始する必要があります。 この期間内に Webstart Workstation が開始されない場合、許可は期限切れになります。 Webstart Workstation ページをリフレッシュして、新しいトークンを生成します。
デフォルト:
60
introscope.saml.internalIdp.enable
内部の IdP を有効にするオプションです。
デフォルト
: false
introscope.saml.sp.privatekey.alias
秘密鍵エイリアスを設定するオプション。
デフォルト:
spprivatekey
introscope.saml.idp.time.skew
IdP とサービス プロバイダの間の時間のずれを設定するオプション。 値は秒単位です。
デフォルト:
60
apm.webview.saml.sp.truststore
SAML の目的で使用される WebView 構成プロパティ。
<EM_Home>
ディレクトリを基準にキーストア ファイルを設定するオプション。
デフォルト:
config/internal/server/keystore
IntroscopeEnterpriseManager.properties での SAML 設定の例
###############################################################################
# SAML SSO Settings
#
###############################################################################
introscope.saml.enable=true
introscope.saml.idpUrl=http://siteminder01.ca.com/affwebservices/public/saml2sso
introscope.saml.issuer=com.ca.apm.webview.serviceprovider
introscope.saml.webstart.issuer=com.ca.apm.webstart.serviceprovider
introscope.saml.principalAttributeName=principalName
introscope.saml.groupsAttributeName=groups
introscope.saml.internalIdp.enable=false