動的な認証コンテキスト処理(SAML 2.0)
casso127jpjp
2
認証コンテキストは、アイデンティティ プロバイダでユーザが認証した方法を示します。アイデンティティ プロバイダは、認証コンテキストをアサーションに含めます。認証コンテキストによって、サービス プロバイダは、リソースへのアクセス権を付与する前にアサーションの信頼性を確認できます。
ユーザの現在のセッションの保護レベルが、要求された認証コンテキストより低い場合があります。その場合、ユーザはより高いレベルで再認証する必要があります。動的な認証機能により、
Single Sign-On
アイデンティティ プロバイダはユーザを複数の認証 URL にリダイレクトします。目標は、アサーションのために必要な認証レベルを確立することです。ユーザが再認証したら、IdP はアサーションを生成できます。このような柔軟性により、1 つのフェデレーション パートナーシップ内に複数のセキュリティ レベルが適用されます。動的な認証は、認証コンテキスト テンプレートを使用して実行されます。テンプレートには、認証コンテキスト URI とポリシー サーバで定義された認証レベルの間のマッピングが含まれています。認証レベルは、ユーザ セッションの認証コンテキストの強度を示します。各 URI は、認証 URL にもマップされます。リクエストされた認証コンテキストでユーザを認証するため、IdP は、ユーザを再認証のためにこの URL に送信します。最後に、IdP は、リクエストされたコンテキストでサービス プロバイダにアサーションを送信します。
SP によって開始される SSO に対する動的認証
SP が開始した SSO トランザクションの一部として、SP は、ユーザが特定の認証コンテキストで認証されることを要求できます。サービス プロバイダには、アイデンティティ プロバイダに送信する認証リクエストの一部として 要素が含まれています。
アイデンティティ プロバイダがリクエストを受信すると、要素の値を最新のユーザ認証コンテキストと比較します。認証レベルは、現在の認証コンテキストを決定します。比較が成功した場合、アイデンティティ プロバイダは認証コンテキストをアサーションに含めます。その後、アイデンティティ プロバイダは、アサーションをサービス プロバイダに返します。
サービス プロバイダで検証が設定されている場合、リクエストした値に対して受信した認証コンテキストが検証されます。検証に失敗した場合、レスポンスは拒否されます。検証は任意です。
注:
Single Sign-On
IdP はパッシブ認証をサポートしません。SP がクエリ パラメータ IsPassive=true を含む認証リクエストを送信し、IdP が何らかの理由によりユーザを再認証する必要がある場合、IdP は NoPassive レスポンスを返します。認証コンテキスト処理は以下の手順に従います。
- SP は、<RequestedAuthnContext> 要素および比較演算子を含む認証リクエストを送信します。
- IdP がリクエストを受信します。以下のいずれかのアクションが発生します。
- ユーザが有効なセッションを持っていない場合、IdP は、提供された と、パートナーシップによって使用されている認証コンテキスト テンプレートを使用します。テンプレートでは、各 URI は認証 URL にマップされています。IdP は、リクエストされた認証コンテキストに基づいて認証 URL を決定し、その URL にユーザをリダイレクトします。IdP は、その URL でユーザを認証し、そのユーザ用のセッションが生成されます。
- SP が をリクエストに含めない場合、IdP はテンプレートのデフォルト認証 URL を使用します。デフォルト エントリによって認証コンテキストが決定されます。このコンテキストでは、最小の認証レベルを決定します。
- ユーザが有効なセッションを持っている場合、IdP はそのセッションの認証レベルを SP によってリクエストされた AuthnContext と比較します。この比較は、リクエストで送信された比較演算子に基づいています。認証レベルが十分高い場合、IdP はアサーションを生成します。認証レベルが低すぎる場合、<RequestedAuthnContext> 要素および比較演算子によって、使用する認証コンテキスト URI が決定されます。テンプレート内の URI マッピングに基づいて、IdP はユーザを対応する認証 URL にリダイレクトします。IdP はユーザを認証し、ユーザ セッションが生成されます。一致がない場合、IdP は SP に NoAuthnContext レスポンスを返します。レスポンスには、IdP がリクエストされた認証コンテキストをサポートしないというメッセージが含まれます。
- 設定されている場合、SP は、アサーション内の認証コンテキスト URI が有効かどうかを、その設定と比較して確認します。 この検証が成功すると、認証トランザクションは完了です。
重要:
サポートされている唯一の比較演算子は exact です。SP がその他の比較演算子を送信した場合、エラーのレスポンスが SP に返されます。エラーは、リクエストがサポートされていないことを示します。テンプレートで定義された認証コンテキスト URI は、SP がリクエストしたコンテキストの 1 つに一致する必要があります。SP によって開始される SSO に対する認証コンテキスト結果
最初の表は、動的な認証コンテキスト テンプレートのサンプルを示しています。その下の表は、リクエストされた認証コンテキストおよび動的認証コンテキスト処理に基づく結果を示しています。
リクエストされた認証コンテキストの強度が最初のセッションのコンテキストより低い場合、IdP はアサーション内に正確な認証コンテキストを返します。各表の結果は、この結果を反映しています。
ここでは、SP がシングル サインオンを開始したと仮定します。
認証コンテキスト テンプレートの設定
Authentication コンテキスト URI | デフォルト値 | 強度 | 認証レベル | 認証 URL |
初期セッション コンテキスト: Password
SP がリクエストした 認証コンテキスト | 比較 値 | [Result] |
Password | exact | 成功/Password |
TimeSyncToken | exact | TimeSyncToken 認証 URL にリダイレクト |
SmartCardPKI | exact | SmartCard PKI 認証 URL にリダイレクト |
初期セッション コンテキスト: TimeSyncToken
SP がリクエストした 認証コンテキスト | 比較 値 | [Result] |
Password | exact | 成功/Password |
TimeSyncToken | exact | 成功/TimeSyncToken |
SmartCardPKI | exact | SmartCard PKI 認証 URL にリダイレクト |
初期セッション コンテキスト: SmartCardPKI
SP がリクエストした 認証コンテキスト | 比較 値 | [Result] |
Password | exact | 成功/Password |
TimeSyncToken | exact | 成功/TimeSyncToken |
SmartCardPKI | exact | 成功//SmartCard PKI |
有効なセッションなし、デフォルト URI としてのパスワード
SP がリクエストした 認証コンテキスト | 比較 値 | [Result] |
なし | なし | Password 認証 URI にリダイレクト |
Password | exact | Password 認証 URL にリダイレクト |
TimeSyncToken | exact | TimeSyncToken 認証 URL にリダイレクト |
SmartcardPKI | exact | SmartCardPKI 認証 URL にリダイレクト |
IdP によって開始される SSO に対する動的認証の処理
シングル サインオンが IdP で開始される場合、認証コンテキスト処理では以下の手順に従います。
- IdP はシングル サインオン トランザクションを開始します。
- ユーザが有効なセッションを持っていない場合、ユーザは、認証コンテキスト テンプレートに設定されたデフォルト認証 URL にリダイレクトされます。
- ユーザが有効なセッションを持っている場合、セッションの認証レベルが、デフォルトの認証コンテキスト URI の保護レベルと比較されます。そのレベルが少なくともデフォルトほど強力でない場合、ユーザは、デフォルトの URI に対する認証 URL にリダイレクトされます。ユーザは認証されません。このプロセスは、アサーションを生成するために必要な最小の認証レベルを確立します。
- IdP はアサーションを生成し、認証コンテキストをアサーションに含めます。その後、アサーションは SP に送信されます。
- 設定されている場合、SP は、アサーション内の認証コンテキスト URI が有効かどうかを、その設定と比較して確認します。 この検証が成功すると、認証トランザクションは完了です。
Single Sign-On
が SP にある場合、受信する認証コンテキストを検証するように SP を設定できます。検証が成功した場合、アサーション内の authncontext 値は、SP パートナーシップが使用するテンプレートの認証コンテキスト URI の 1 つに一致する必要があります。