#### SAMLv2 サービスプロバイダのカスタマイズ

SAMLv2 サービスプロバイダには、次の属性グループが含まれています。

- 「表明コンテンツ」

- 「表明処理」

- 「サービス」

- 「拡張」

##### 表明コンテンツ

- 「要求/応答署名」

- 「暗号化」

- 「証明書エイリアス」

- 「名前 ID の形式」

- 「認証コンテキスト」

- 「表明タイムスキュー係数」

- 「基本認証」

##### 要求/応答署名

次の SAMLv2 サービスプロバイダ要求または応答の署名を有効にするチェックボックスをオンにします。

認証要求が署名されました | このサービスプロバイダによって受信されるすべての認証要求が署名済みである必要があります。
表明が署名されました | このサービスプロバイダによって受信されるすべての表明が署名済みである必要があります。
POST 応答が署名されました | アイデンティティープロバイダは、`PostResponse` 要素に署名する必要があります。
アーティファクト応答 | アイデンティティープロバイダは、`ArtifactResponse` 要素に署名する必要があります。
ログアウト要求 | アイデンティティープロバイダは、`LogoutRequest` 要素に署名する必要があります。
ログアウト応答 | アイデンティティープロバイダは、`LogoutResponse` 要素に署名する必要があります。
名前 ID 要求の管理 | アイデンティティープロバイダは、`ManageNameIDRequst` 要素に署名する必要があります。
名前 ID 応答の管理 | アイデンティティープロバイダは、`ManageNameIDResponse` 要素に署名する必要があります。

##### 暗号化

次の要素の暗号化を有効にするチェックボックスをオンにします。

属性 | アイデンティティープロバイダは、すべての `AttributeStatement` 要素を暗号化する必要があります。
表明 | アイデンティティープロバイダは、すべての `Assertion` 要素を暗号化する必要があります。
NameID | アイデンティティープロバイダは、すべての `NameID` 要素を暗号化する必要があります。

##### 証明書エイリアス

この属性は、サービスプロバイダ用の証明書エイリアス要素を定義します。「`署名`」は、キーストアで正しい署名証明書を見つけるために使用されるプロバイダ証明書エイリアスを指定します。「`暗号化`」は、キーストアで正しい暗号化証明書を見つけるために使用されるプロバイダ証明書エイリアスを指定します。

##### 名前 ID の形式

サービスプロバイダによってサポートされる名前 ID の形式を定義します。名前 ID は、プロバイダがユーザーに関して相互に通信するための手段です。シングルサインオンの対話では、次のタイプの識別子がサポートされます。

- `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`

- `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`

- `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`

- `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`

持続識別子は、特定のユーザーのデータストアエントリに 2 つの属性の値として保存されます。一時識別子は一時的なものであり、ユーザーの永続的なデータストアにデータは書き込まれません。

##### 認証コンテキスト

この属性は、SAMLv2 で定義されている認証コンテキストクラスをサービスプロバイダ側で利用可能な認証方法にマップします。

マッパー

  要求された認証コンテキストを作成するために使用される `SPAuthnContextMapper` インタフェースの実装を指定します。デフォルトの実装は、`com.sun.identity.saml2.plugins.DefaultSPAuthnContexteMapper` です。

サポート

  アイデンティティープロバイダによるサポートがある場合は、認証コンテキストクラスの横にあるチェックボックスをオンにします。

コンテキスト参照

  SAMLv2 で定義されている認証コンテキストクラスは、次のとおりです。

  - InternetProtocol

  - InternetProtocolPassword

  - Kerberos

  - MobileOneFactorUnregistered

  - MobileTwoFactorUnregistered

  - MobileOneFactorContract

  - MobileTwoFactorContract

  - Password

  - PasswordProtectedTransport

  - Previous-Session

  - X509

  - PGP

  - SPKI

  - XMLDSig

  - Smartcard

  - Smartcard-PKI

  - Software-PKI

  - Telephony

  - NomadTelephony

  - PersonalTelephony

  - AuthenticaionTelephony

  - SecureRemotePassword

  - TLSClient

  - Time-Sync-Token

  - Unspecified

レベル

  値として、OpenSSO の認証フレームワークで定義されている認証レベルに対応する正数を取ります。認証レベルは、認証方法がどの程度信頼できるかを示します。

  このフレームワークでは、デフォルトの認証コンテキスト (優先される認証方法) を使用して各サービスプロバイダが設定されます。ただし、プロバイダは割り当てられた認証コンテキストを定義された認証レベルに基づく認証コンテキストに変更することがあります。たとえば、プロバイダ B は認証レベルが 3 のローカルセッションを生成する必要があるため、そのレベルが割り当てられた認証コンテキストを使用してユーザーを認証するようにアイデンティティープロバイダに要求します。このクエリーパラメータの値は、アイデンティティープロバイダが使用する認証コンテキストを決定します。

比較タイプ

  認証コンテキストをこのプロパティーの値と比較するときの条件を指定します。指定可能な値は、次のとおりです。

  - exact: 表明に含まれる認証コンテキストステートメントが指定された認証コンテキストの少なくとも 1 つと完全一致でなければならない場合に指定します。

  - minimum: 表明に含まれる認証コンテキストステートメントが指定された認証コンテキストの少なくとも 1 つと同じ強度 (とアイデンティティープロバイダがみなすもの) でなければならない場合に指定します。

  - maximum: 表明に含まれる認証コンテキストステートメントの強度が、指定されたどの認証コンテキストステートメントよりも低くなければならない場合に指定します。

  - better: 表明に含まれる認証コンテキストステートメントの強度が、指定されたどの認証コンテキストステートメントよりも高くなければならない場合に指定します。

  デフォルト値は exact です。

##### 表明タイムスキュー係数

表明は、一定の期間だけ有効であり、その前後は無効です。この属性は、`notBefore` 値の猶予期間を秒単位で指定します。デフォルト値は `300` です。`notAfter` 値とは無関係です。

##### 基本認証

基本認証を有効にすると、SOAP エンドポイントを保護できます。SOAP エンドポイントにアクセスするプロバイダは、「`ユーザー名`」と「`パスワード`」の 2 つのプロパティーでユーザーとパスワードを定義する必要があります。

##### 表明処理

- 「属性マッパー」

- 「自動連携」

- 「アカウントマッパー」

- 「一時ユーザー」

- 「URL」

- 「デフォルトの中継状態」

- 「アダプタ」

##### 属性マッパー

デフォルトの属性マッパープラグインによって使用されるマッピングを定義する値を指定します。デフォルトのプラグインクラスは、`com.sun.identity.saml2.plugins.DefaultSPAttributeMapper` です。

マッピングは次の形式で設定してください。

SAML 属性=ローカル属性

たとえば、`EmailAddress=mail` や `Address=postaladdress` のようにします。「新しい値」としてマッピングを入力し、「追加」をクリックします。

##### 自動連携

これを有効にすると、自動連携によって、同じユーザーの異なるプロバイダアカウントが共有の属性に基づいて自動的に連携されます。「属性」フィールドには、自動連携を有効にしたときに同じユーザーの異なるプロバイダアカウントを照合するために使用される属性を指定します。

##### アカウントマッパー

シングルサインオンを目的としてリモートユーザーアカウントをローカルユーザーアカウントにマップするために使用される `AccountMapper` インタフェースの実装を指定します。デフォルトの値は、`com.sun.identity.saml2.plugins.DefaultSPAccountMapper` で、これはデフォルトの実装です。

##### アーティファクトメッセージのエンコーディング

この属性は、アーティファクトのメッセージエンコーディング書式を `URI` または `FORM` のいずれかで定義します。

##### 一時ユーザー

この属性は、一時的な名前識別子を使用するシングルサインオンの場合に、すべてのアイデンティティープロバイダユーザーをマップするサービスプロバイダ側のユーザーの識別子を指定します。

##### URL

「ローカル認証 URL」は、ローカルログインページの URL を指定します。

「中間 URL」は、認証後、元の要求の URL の前にユーザーを誘導する URL を指定します。たとえば、ユーザーアカウントの自動作成後にアカウントの作成に成功したことを示すページなどを指定します。

「外部アプリケーションログアウト URL」は、外部アプリケーション用のログアウト URL を定義します。サーバーがログアウト要求をリモートのパートナーから受け取ると、バックチャネル `HTTP POST` とすべての Cookie を使用してログアウト URL に要求が送信されます。オプションで、セッションプロパティー名に設定されたクエリーパラメータ `appsessionproperty` が URL に含まれる場合は、ユーザーセッションプロパティーを `HTTP ヘッダー`および `POST` パラメータとして送信できます。

##### デフォルトの中継状態

SAML v2 の処理 (シングルサインオン、シングルログアウト、または連携終了) に成功すると、ページが表示されます。このページは、通常は最初に要求されたリソースであり、最初の要求で `RelayState` 要素を使用して指定されます。`RelayState` が指定されなかった場合は、この `defaultRelayState` プロパティーの値が表示されます。

注意 – `RelayState` または `defaultRelayState` に特殊文字 (`&` など) が含まれている場合は、その値を URL エンコードする必要があります。たとえば、`RelayState` の値が `http://www.sun.com/apps/myapp.jsp?param1=abc&param2=xyz` である場合は、次のように URL エンコードする必要があります。

`http%3A%2F%2Fwww.sun.com%2Fapps%2Fmyapp.jsp%3Fparam1%3Dabc%26param2%3Dxyz`

その上で、URL に付加します。たとえば、シングルサインオン URL を開始したサービスプロバイダは次のようになります。

`http://`host`:`port`/` deploy-uri`/saml2/jsp/spSSOInit.jsp?metaAlias=/sp&idpEntityID=http://www.idp.com&RelayState=http%3A%2F%2Fwww.sun.com%2Fapps%2Fmyapp.jsp%3Fparam1%3Dabc%26param2%3Dxyz`

##### アダプタ

com.sun.identity.federation.plugins.FederationSPAdapter インタフェースの `実装クラスを定義します。` これは、連携処理中にアプリケーション固有の処理を追加するのに使用されます。

##### サービス

- 「メタエイリアス」

- 「シングルログアウトサービス」

- 「名前 ID の管理サービス」

- 「表明アーティファクトコンシューマサービス」

##### メタエイリアス

設定するプロバイダの `metaAlias` を指定します。`metaAlias` は、プロバイダのエンティティー識別子と配置されている組織を特定するために使用されます。値は、レルムまたは組織 (OpenSSO に SAML v2 Plug-in for Federation Servicesがインストールされているかどうかによる) を表す文字列と、スラッシュ「/」およびプロバイダ名を組み合わせたものです。次に例を示します。`/suncorp/travelprovider`

注意 – `metaAlias` で使用する名前に `/` を含めることはできません。

##### シングルログアウトサービス

シングルログアウトサービスは、サービスプロバイダが認証したすべてのセッションで、ログアウト機能の同期を取ります。

「`場所`」は、要求の送信先となるプロバイダの URL を指定します。「`応答場所`」は、予期されている応答プロバイダの URL を指定します。バインドのタイプは次のとおりです。

- HTTP リダイレクト

- POST

- SOAP

##### 名前 ID の管理サービス

このサービスは、主体の新しい名前 ID を指定するためにサービスプロバイダと通信するときに使用される URL を定義します。登録は、連携セッションが確立されたあとでのみ行われます。

「`場所`」は、要求の送信先となるプロバイダの URL を指定します。「`応答場所`」は、予期されている応答プロバイダの URL を指定します。バインドのタイプは次のとおりです。

- HTTP リダイレクト

- POST

- SOAP

##### 表明アーティファクトコンシューマサービス

このサービスは、サービスプロバイダがアイデンティティープロバイダから受信した応答を処理します。サービスプロバイダは、ユーザーを認証する必要があるときに、アイデンティティープロバイダに認証要求を送信します。

- 「HTTP-ARTIFACT」は、ブラウザを使用しない SOAP ベースのプロトコルを指定します。

- 「HTTP-POST」は、ブラウザベースの HTTP POST プロトコルを指定します。

- 「PAOS」は、PAOS バインドの URL の場所を定義します。

「`場所`」は、要求の送信先となるプロバイダの URL を指定します。「`インデックス`」は、標準メタデータに含まれる URL を指定します。「`デフォルト`」は、バインドに使用されるデフォルトの URL です。

##### 拡張

- 「SP URL」

- 「SP ログアウト URL」

- 「App シークレットリスト」

- 「IDP リスト検索実装の要求」

- 「IDP リスト取得完了の要求」

- 「IDP リストの要求」

- 「IDP プロキシ」

- 「概要」

- 「プロキシカウント」

- 「IDP プロキシリスト」

##### SP URL

SAE (Secure Attribute Exchange) の要求を処理できるサービスプロバイダの URL エンドポイントを定義します。この URL が空である (設定されていない) 場合は、SAE のシングルサインオンが有効になりません。通常の SAMLv2 シングルサインオンの応答は、サービスプロバイダに送信されます。

##### SP ログアウト URL

SAE のグローバルログアウト要求を処理できるサービスプロバイダの URL エンドポイントを定義します。

##### App シークレットリスト

この属性は、アプリケーションのセキュリティー設定を定義します。アプリケーションごとに 1 つのエントリが必要です。各エントリの形式は次のとおりです。

`url=SPAppURL|type=`symmetric または Asymmetric`|secret=`ampassword でエンコードされた共有シークレット``

##### IDP リスト検索実装の要求

IDP リスト検索 SPI の実装クラスを定義します。これは、ECP によって信頼されている優先アイデンティティープロバイダのリストを返します。

##### IDP リスト取得完了の要求

`IDPList` 要素が完全でない場合に、完全なアイデンティティープロバイダリストを取得するために使用できる URI 参照を指定します。

##### IDP リストの要求

ECP が通信するアイデンティティープロバイダのリストを定義します。これは、IDP 検索のデフォルト実装 (たとえば、`com.sun.identity.saml2.plugins.ECPIDPFinder`) によって使用されます。

##### IDP プロキシ

「プロキシ認証設定」属性は、動的アイデンティティープロバイダプロキシの値を定義します。サービスプロバイダのプロキシ認証を有効にするには、このチェックボックスをオンにします。

##### 概要

プロキシとして機能しているアイデンティティープロバイダを検索するために Introduction Cookie を使用するには、このチェックボックスをオンにします。

##### プロキシカウント

プロキシ認証に使用できるアイデンティティープロバイダの最大数を入力します。

##### IDP プロキシリスト

プロキシ認証に使用できるアイデンティティープロバイダのリストを追加します。「新しい値」にプロバイダの識別子として定義されている URI を入力し、「追加」をクリックします。