検索

10.2. SAML

download PDF

SAML 2.0 は OIDC と類似の仕様ですが、より成熟したものです。これは、SOAP および Web サービスメッセージングの仕様から派生するため、通常は OIDC よりも詳細になります。SAML 2.0 は、認証サーバーとアプリケーション間の XML ドキュメントを変換する認証プロトコルです。XML 署名と暗号化は、要求と応答の検証に使用されます。

通常、SAML は 2 つのユースケースを実装します。

最初のケースは、Red Hat build of Keycloak サーバーがユーザーを認証するように要求するアプリケーションです。ログインに成功すると、アプリケーションは XML ドキュメントを受け取ります。このドキュメントには、ユーザー属性を指定する SAML アサーションが含まれています。レルムは、アクセス情報 (ユーザーロールマッピングなど) が含まれるドキュメントにデジタル署名します。アプリケーションは、この情報を使用してユーザーがアプリケーションでアクセスできるリソースを判断します。

2 つ目のユースケースは、リモートサービスにアクセスするクライアントです。クライアントは Red Hat build of Keycloak から SAML アサーションを要求し、ユーザーの代わりにリモートサービスを呼び出します。

10.2.1. SAML バインディング

Red Hat build of Keycloak は、3 つのバインディングタイプをサポートします。

10.2.1.1. リダイレクトバインディング

リダイレクト バインディングは一連のブラウザーリダイレクト URI を使用して情報を交換します。

  1. ユーザーは、ブラウザーを使用してアプリケーションに接続します。アプリケーションは、ユーザーが認証されていないことを検出します。
  2. アプリケーションは XML 認証リクエストドキュメントを生成し、これを URI のクエリーパラメーターとしてエンコードします。この URI は、Red Hat build of Keycloak サーバーにリダイレクトするために使用されます。設定によっては、アプリケーションは XML ドキュメントにデジタル署名し、署名を Red Hat build of Keycloak へのリダイレクト URI のクエリーパラメーターとして追加することもできます。この署名は、リクエストを送信するクライアントを検証するために使用されます。
  3. ブラウザーは Red Hat build of Keycloak にリダイレクトします。
  4. サーバーは XML 認証リクエストドキュメントを抽出し、必要に応じてデジタル署名を検証します。
  5. ユーザーは認証情報を入力します。
  6. 認証後、サーバーは XML 認証応答ドキュメントを生成します。ドキュメントには、名前、アドレス、電子メール、およびユーザーが持つロールマッピングなどのユーザーに関するメタデータを保持する SAML アサーションが含まれます。ドキュメントは通常、XML 署名を使用してデジタル署名され、暗号化もされる場合があります。
  7. XML 認証応答ドキュメントは、リダイレクト URI のクエリーパラメーターとしてエンコードされます。URI により、ブラウザーがアプリケーションに返されます。デジタル署名も、クエリーパラメーターとして含まれます。
  8. アプリケーションはリダイレクト URI を受け取り、XML ドキュメントを抽出します。
  9. アプリケーションはレルムの署名を検証し、有効な認証応答を受信していることを確認します。SAML アサーション内の情報は、アクセスの決定やユーザーデータの表示に使用されます。

10.2.1.2. POST バインディング

POST バインディングは リダイレクト バインディングと似ていますが、POST バインディングは GET リクエストの代わりに POST リクエストを使用して XML ドキュメントを交換します。POST バインディングは JavaScript を使用して、ドキュメント交換時にブラウザーが Red Hat build of Keycloak サーバーまたはアプリケーションに POST リクエストを送信するようにします。HTTP は、埋め込み JavaScript などの HTML フォームが含まれる HTML ドキュメントで応答します。ページを読み込むと、JavaScript はフォームを自動的に呼び出します。

POST バインディングは 2 つの制限があるために推奨されます。

  • セキュリティー: Redirect バインディングでは、SAML 応答は URL の一部です。ログで応答をキャプチャーする可能性があるため、安全性は低くなります。
  • サイズ: HTTP ペイロードでドキュメントを送信すると、制限された URL よりも、大量のデータに、より多くのスコープが提供されます。

10.2.1.3. ECP

Enhanced Client or Proxy (ECP) は、SAML v.2.0 プロファイルを表します。これにより、Web ブラウザーのコンテキスト外にある SAML 属性を交換できます。多くの場合、REST または SOAP ベースのクライアントによって使用されます。

10.2.2. Red Hat build of Keycloak サーバーの SAML URI エンドポイント

Red Hat build of Keycloak には、すべての SAML 要求に対して単一のエンドポイントがあります。

http(s)://authserver.host/realms/{realm-name}/protocol/saml

すべてのバインディングはこのエンドポイントを使用します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.