第13章 SAML を使用したシングルサインオン


13.1. セキュリティートークンサービス(STS)

Security Token Service は、セキュリティートークンを生成および管理します。特定のタイプのトークンを発行しません。代わりに、複数のトークンプロバイダーをプラグインできるようにする汎用インターフェースを定義します。そのため、各トークンタイプのトークンプロバイダーが存在する場合、さまざまなタイプのトークンに対応するよう設定することができます。また、セキュリティートークンのリクエストと応答の形式も指定します。
セキュリティートークン要求メッセージは、以下を指定します。
  • Issue、Renew など、要求のタイプ。
  • トークンのタイプ。
  • 発行したトークンの有効期間。
  • トークンを要求したサービスプロバイダーに関する情報。
  • 生成されたトークンの暗号化に使用される情報。
備考
PKCS#11 トークンのサポートが、バージョン 6.3.0 から JBoss EAP に追加されました。
EAP セキュリティーレルムは、provider 属性を使用して PKCS#11 鍵とトラストストア定義を受け入れることができます。このパラメーターで指定した値は、関連する KeyStore.getInstance("PKCS11")呼び出しに 渡され、キーとトラストストアが初期化されます。
この新しいサポートの設定は、EAP ドキュメントの範囲外です。この機能を利用する場合は、PKCS#11 のハードウェアおよびソフトウェアの正しいインストールと、java.security ポリシーファイルに必要な正しいエントリーについて理解しておく必要があります。Oracle の 『Java PKCs#11 リファレンスガイド』 は、この情報に役立つリソースである場合があります。
トークン要求メッセージは、SOAP メッセージのボディーに送信されます。トークン要求に関連するすべての情報は、RequestSecurityToken 要素に囲まれています。サンプルリクエストには RequestType の他の 2 つの WS-Trust 要素が含まれます。この要素は、このリクエストが Issue リクエストであると指定し、発行するトークンのタイプを指定する TokenType です。
WS-Trust リクエストメッセージの例を以下に示します。

例13.1 WS-Trust security token request message

<S11:Envelope xmlns:S11=".." xmlns:wsu=".." xmlns:wst="..">  
   <S11:Header>  
      ...  
   </S11:Header>  
   <S11:Body wsu:Id="body">  
      <wst:RequestSecurityToken Context="context">  
         <wst:TokenType>http://www.tokens.org/SpecialToken</wst:TokenType>  
         <wst:RequestType>  
            http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue  
         </wst:RequestType>  
      </wst:RequestSecurityToken>  
   </S11:Body>  
</S11:Envelope>

以下は、セキュリティートークンの応答の例です。

例13.2 セキュリティートークンのレスポンスメッセージ

    <wst:RequestSecurityTokenResponse Context="context" xmlns:wst=".." xmlns:wsu="..">  
       <wst:TokenType>http://www.tokens.org/SpecialToken</wst:TokenType>  
       <wst:RequestedSecurityToken>  
          <token:SpecialToken xmlns:token="...">  
             ARhjefhE2FEjneovi&@FHfeoveq3  
          </token:SpecialToken>  
       </wst:RequestedSecurityToken>  
       <wst:Lifetime>  
          <wsu:Created>...</wsu:Created>  
          <wsu:Expires>...</wsu:Expires>  
       </wst:Lifetime>  
    </wst:RequestSecurityTokenResponse> 

セキュリティートークンの応答の例では、TokenType 要素は発行されたトークンのタイプを指定しますが、RequestedSecurityToken 要素にはトークン自体が含まれます。トークンの形式は、トークンの種類によって異なります。Lifetime 要素は、トークンが作成されたタイミングおよび期限が切れるタイミングを指定します。

セキュリティートークンリクエストの処理

以下は、セキュリティートークンリクエストが処理される手順です。

  • クライアントはセキュリティートークンリクエストを PicketLinkSTS に送信します。
  • PicketLinkSTS 要求メッセージを解析し、JAXB オブジェクトモデルを生成します。
  • PicketLinkSTS 設定ファイルを読み取り、必要に応じて STSConfiguration オブジェクトを作成します。設定から WSTrustRequestHandler への参照を取得し、リクエストの処理をハンドラーインスタンスに委譲します。
  • リクエストハンドラーは、必要に応じて STSConfiguration を使用してデフォルト値を設定します(例: 要求がトークンの有効期間値を指定しない場合)。
  • WSTrustRequestHandler は、WSTrustRequestContext リクエストオブジェクトと、JAXB から受け取った呼び出し元プリンシパルを設定します。PicketLinkSTS
  • WSTrustRequestHandlerSTSConfiguration を使用して SecurityTokenProvider を取得します。これは、要求されているトークンのタイプに基づいてリクエストを処理するために使用する必要があります。次にプロバイダーを呼び出し、構築された WSTrustRequestContext をパラメーターとして渡します。
  • SecurityTokenProvider インスタンスはトークンリクエストを処理し、発行されたトークンをリクエストコンテキストに保存します。
  • WSTrustRequestHandler はコンテキストからトークンを取得し、必要に応じて暗号化し、セキュリティートークンが含まれる WS-Trust 応答オブジェクトを構築します。
  • PicketLinkSTS リクエストハンドラーによって生成された応答を指示し、クライアントに返します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.