バックエンド処理のセットアップ
クレデンシャル セレクタを使用するには、バックエンド処理用に以下のコンポーネントが必要です。
casso11jp
クレデンシャル セレクタを使用するには、バックエンド処理用に以下のコンポーネントが必要です。
- ログイン認証情報の選択肢ごとに 1 つの認証方式。
- バックエンド コンポーネントを含むポリシー ドメイン。
- 各認証方式を使用するレルム。
- レルムごとのルール。
- 認証コンテキストを設定し、リソース アクセスを許可するポリシー。
2
バックエンド処理で使用する認証方式のセットアップ
ユーザが使用できるように選択した認証情報ごとに 1 つずつ、バックエンド処理用の認証方式をセットアップします。これら複数の方式をセットアップすることで、ユーザは保護されたリソースにアクセスする際に、使用する認証情報のタイプを選択できるようになります。
認証情報のタイプごとに、認証方式は異なります。
- HTML フォーム認証方式
- X.509 クライアント証明書認証方式
- X.509 クライアント証明書およびフォーム認証方式
- SecurID HTML フォーム認証方式
- SafeWord HTML フォーム認証方式
- Windows 認証方式
注
: 基本認証方式は、ポリシー サーバのインストールの一部としてセットアップされているデフォルトの方式です。バックエンド処理のためのポリシー ドメインのセットアップ
認証情報セレクタのバックエンド処理を表すには、ポリシー ドメインを設定します。このソリューションでは、ポリシー ドメインの名前は BackendAuth です。
バックエンド ポリシー ドメインのレルムの設定
設定されているバックエンド認証方式ごとにレルムを 1 つずつ定義します。各レルムには、以下のようにリソース フィルタを定義する必要があります。
/auth/redirect.asp?authtype=type&target=
- type以下のいずれかの値を指定できます。form ユーザ名/パスワード認証cert 証明書認証certform 証明書とフォームによる認証securid SecurID 認証safeword SafeWord 認証windows Windows 認証注: これらのタイプは、このユース ケースの説明を目的として選択されたものです。これら以外の値もありますが、このタイプは、selectlogin.fcc ファイル、または selectlogin.fcc テンプレートに基づいたその他の FCC ファイルにある認証タイプの値と一致している必要があります。また、レルムのリソース フィルタは FCC ファイルのリダイレクト ターゲットとも一致している必要があります。
レルムを保護する Web エージェントは同一にできますが、同一にする必要はありません。このソリューションでは 1 つの Web エージェントを使用しますが、複数の Web エージェントを使用する場合はそれらのエージェントが特定の要件を満たしている必要があります。
casso11jp
認証情報セレクタ機能の一部としてレルムを保護するエージェントに必要な要件は、以下のとおりです。
- レルムを保護するすべての Web エージェント間に、シングル サインオンを設定する必要があります。つまり、すべてのエージェントが同じ cookie ドメインにある、または同じ cookie プロバイダを使用していることを意味します。
- FCC ファイルの @smagentname ディレクティブの値は、最初にリクエストされたリソースを保護する Web エージェントの少なくとも 1 つの予測値と一致する必要があります。この予測値は、AgentName パラメータ、または DefaultAgentName パラメータ(AgentName パラメータに値が割り当てられていない場合)の値です。エージェントの設定の EncryptAgentName パラメータが「はい」に設定されている場合、値は暗号化する必要があります。@smagentname ディレクティブを設定する方法の 1 つに、同じネーミング プロパティで各 Web エージェントを設定する方法があります。これらのエージェントは、さらにエージェント設定オブジェクトも共有できます。名前を暗号化しないのであれば、FCC ファイルで @smagentname ディレクティブをプログラム的に設定する方法もあります。重要:@smagentname ディレクティブが正しく設定されていない場合は、「リクエストで受信したレルムはありません」という内容のエラー メッセージがポリシー サーバのログに出力されることがあります。
- FCCForceIsProtected パラメータを yes に設定し、selectlogin.fcc ファイルによって生成される新しいターゲットに対して 2 つ目の IsProtected コールが必ず作成されるようにします。エージェントが URL クエリ パラメータを無視するのを防ぐために、IgnoreQueryData パラメータを No に設定してください。
バックエンド ポリシー ドメインのルールの作成
BackendAuth ポリシー ドメインとして設定する各レルムには、以下の 2 つのルールを設定します。
- OnAuthAccept ルール
- Web エージェント アクション ルール(この例では、GET アクション ルールを使用します)
どちらのルールも、[リソース]フィールドの値としてアスタリスク(*)を設定します。
たとえば、BackendAuth ポリシー ドメインのフォーム レルムの場合、ルールは以下のようになります。
- OnAuthAcceptResource: /auth/redirect.asp?authtype=form&target=*Action: OnAuthAccept
- GetRuleResource: /auth/redirect.asp?authtype=form&target=*Action: Get
バックエンド ポリシー ドメインの AuthContext レスポンスの設定
AuthContext レスポンスは BackendAuth ドメインの認証方式ごとに設定します。これらの各レスポンスには、AuthContext レスポンス属性が含まれており、OnAuthAccept イベントでのみ評価されます。その値は SM_AUTHENTICATIONCONTEXT ユーザ属性の値として
Single Sign-On
セッション チケットに追加されます。ただし、その値は、ユーザ レスポンスとしてクライアントに返されることはありません。この例の場合、レスポンスのリストは以下のようになります。
名前
| エージェント タイプ
| 説明
|
Form | Web エージェントが保護するレルムの設定 | ユーザ名/パスワード認証用の AuthContext |
Certificate | Web エージェントが保護するレルムの設定 | 証明書認証用の AuthContext |
CertandForm | Web エージェントが保護するレルムの設定 | 証明書とフォーム認証用の AuthContext |
SecurID | Web エージェントが保護するレルムの設定 | SecurID 認証用の AuthContext |
SafeWord | Web エージェントが保護するレルムの設定 | SafeWord 認証用の AuthContext |
Windows | Web エージェントが保護するレルムの設定 | Windows 認証用の AuthContext |
注:
レスポンス属性値は、長さが 80 バイトになるように切り捨てられます。AuthContext レスポンス属性を設定するには、WebAgent-OnAuthAccept-Session-AuthContext レスポンス属性タイプを選択します。
以下の図は、WebAgent-OnAuthAccept-Session-AuthContext 属性タイプを使用した AuthContext レスポンス属性の作成を示します。
図にあるように、AuthContext レスポンス属性タイプはスタティックです。レガシー フェデレーションが使用されているときは、スタティック属性を指定して定数またはリテラル値を定義することによってカプセル化を高めることができます。定数値には文字列も含まれます。
Single Sign-On
の変数とアクティブな式を利用すると、AuthContext レスポンスの属性を柔軟に設定できます。また、これらには認証タイム スタンプ、ハッシュ値、または両方の SAML アサーションを含めることもできます。以下のグループ ボックスは、このソリューションに設定されている結果レスポンスの 1 つを示します。これはフォーム レスポンスの属性です。
バックエンド クレデンシャル選択のポリシーの設定
この例では、BackendAuth ドメインに以下の 2 つのポリシーを設定します。
- ユーザ認証コンテキストを設定するポリシー
- Web エージェント アクションのポリシー
以下の図は 2 つのポリシーを示します。
認証コンテキスト ポリシーの作成
AuthContext ポリシーによって
Single Sign-On
セッション チケットの中の認証コンテキストが設定され、このチケットが認証と検証に使用されます。このポリシーでは、各レルムの OnAuthAccept ルールを対応するレスポンスとペアにして、保護されたリソースへのアクセスを許可します。たとえば、フォーム レルムの OnAuthAccept ルールはフォーム レスポンスとペアになり、SafeWord レルムの OnAuthAccept ルールは SafeWord レスポンスとペアになります。ユーザ認証とユーザ検証は OnAuthAccept イベントであるため、セッション チケットの認証コンテキストは検証のたびに上書きできます。認証コンテキスト属性を更新する機能は、その属性の値にカウンタが含まれている場合などは非常に便利です。ただし、認証情報セレクタを使用するこのソリューションでは、AuthContext ポリシーは認証コンテキストが空の場合にのみ起動するように設定されています。これにより、セッション チケットは上書きされません。したがって、ユーザが選択する認証情報が記憶されます。
セッション チケットから SM_AUTHENTICATIONCONTEXT 属性を取得するアクティブな式を AuthContext ポリシーで記述することにより、認証コンテキストを上書きから保護します。
レガシー フェデレーションが使用されているときは、AuthContext という名前のユーザ コンテキスト変数を作成し、この変数を AuthContext ポリシーの中で使用してアクティブな式を定義すると、セッション チケットから SM_AUTHENTICATIONCONTEXT 属性を取り出すことができます。
AuthContext ポリシーで、AuthContext 変数を使ってアクティブな式を定義します。
保護ポリシーの作成
リクエストされたリソースに対して認証済みユーザを許可するには、BackendAuth ドメインにもう 1 つポリシーが必要になります。このポリシーはリソースの保護を目的とし、このドメインの認証コンテキスト ポリシーに新たに加えられるものです。
この保護ポリシーを設定して、リダイレクション ターゲットに対して認証済みユーザを許可します。これは、redirect.asp ファイルの GET アクションで実行します。ポリシーに GetPolicy という名前を付けます。
GetPolicy には、以下の関連ルールが含まれています。
ルール | Realm |
GetRule | Form |
GetRule | Certificate |
GetRule | CertandForm |
GetRule | SecureID |
GetRule | SafeWord |
GetRule | Windows |