第5章 PicketLink アイデンティティー管理
5.1. セキュリティートークンサービス (STS) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
セキュリティートークンサービスは、セキュリティートークンを生成および管理します。特定タイプのトークンは発行しませんが、複数のトークンプロバイダーがプラグインできるようにする汎用インターフェースを定義します。そのため、トークンプロバイダーがトークンタイプごとに存在すれば、さまざまなタイプのトークンに対応するよう設定できます。また、セキュリティートークン要求および応答メッセージの形式も指定します。
セキュリティートークン要求メッセージは、以下を指定します。
- Issue や Renew などの要求タイプ。
- トークンのタイプ。
- 発行されたトークンのライフタイム。
- トークンを要求したサービスプロバイダーに関する情報。
- 生成されたトークンを暗号化するために使用される情報。
トークン要求メッセージは、SOAP メッセージのボディーに含まれ送信されます。トークン要求に関連するすべての情報は
RequestSecurityToken
要素で囲まれます。要求の例には、この要求が Issue 要求であることを指定する RequestType
と、発行するトークンのタイプを指定する TokenType
の 2 つの WS-Trust 要素も含まれています。
WS-Trust 要求メッセージの例は以下のとおりです。
例5.1 WS-Trust セキュリティートークン要求メッセージ
セキュリティートークン応答の例は次のとおりです。
例5.2 セキュリティートークン応答メッセージ
セキュリティートークン応答の例では、
TokenType
要素は発行されたトークンのタイプを指定し、RequestedSecurityToken
要素にはトークン自体が含まれています。トークンの形式は、トークンのタイプによって異なります。Lifetime
要素は、いつトークンが作成され、期限切れになるかを指定します。
セキュリティートークン要求の処理
セキュリティートークン要求の処理手順は次のとおりです。
- クライアントがセキュリティートークン要求を
PicketLinkSTS
に送信します。
PicketLinkSTS
が要求メッセージを解析し、JAXB オブジェクトモデルを生成します。
- 必要な場合、
PicketLinkSTS
は設定ファイルを読み取り、STSConfiguration
オブジェクトを作成します。その後、WSTrustRequestHandler
への参照を設定から取得し、要求の処理をハンドラーインスタンスへ委譲します。
- 要求ハンドラーは必要な場合に
STSConfiguration
を使用してデフォルト値を設定します (要求がトークンのライフタイム値を指定しない場合など)。
WSTrustRequestHandler
はWSTrustRequestContext
を作成し、PicketLinkSTS
より受信したJAXB
要求オブジェクトおよび呼び出し元プリンシパルを設定します。
WSTrustRequestHandler
はSTSConfiguration
を使用して、要求されたトークンのタイプを基に要求の処理に使用する必要があるSecurityTokenProvider
を取得します。その後、プロバイダーを呼び出し、構築されたWSTrustRequestContext
をパラメーターとして渡します。
SecurityTokenProvider
インスタンスはトークン要求を処理し、発行されたトークンを要求コンテキストに保存します。
WSTrustRequestHandler
はトークンをコンテキストから取得し、必要な場合は暗号化します。また、セキュリティートークンが含まれる WS-Trust 応答オブジェクトを構築します。
PicketLinkSTS
は要求ハンドラーによって生成される応答を書き取り、クライアントへ返します。