サーチ…


備考

SAML2.0は、サービスプロバイダとIDプロバイダとの間で認証および認可データを転送するために使用されるオープンスタンダードです。

最も一般的な使用法はWebベースのSSOです。ここでSAMLは、認証中に2つのシステムを直接接続する必要なく、別のシステムからの資格情報を持つアプリケーションにログインできるようにしたものです。

SAML2.0認証フロー

SAMLは3つの重要な役割を指定します。

  • アイデンティティプロバイダ(IdP)

    ユーザーの身元を提供し、維持する当事者。これは、ADFSやカスタムデータベースソリューションなどのディレクトリサービスにすることができます。

  • サービスプロバイダ(SP)

    サービスプロバイダは、ユーザがログインしようとしている実際のサービスです。これは、Webサイト、アプリケーション、またはユーザーがログインする必要がある任意のサービスです。

  • プリンシパル/ユーザー

    要求を開始した実際のユーザー、またはサービスプロバイダ (SP)からリソースにアクセスしようとしているユーザー。

メインのSAMLユースケースはWebベースのSSOで、SAMLプロセスはユーザーのブラウザ内のリダイレクトセットによって実行され、ユーザーはIdPとSPの間のトークンキャリアとして機能します。

SAMLを使用するWebベースのSSOには2つのフローがあります。

  • アイデンティティプロバイダ(IdP)の開始

    ユーザはIdPにログインし、選択したSPに転送されます。例えば、ユーザが企業イントラネットにログインし、使用可能なすべてのアプリケーションが表示されます。

  • サービスプロバイダ(SP)が開始

    ユーザーはアプリケーションにログインしようとしますが、IdPに転送されて実際の認証が実行されます。たとえば、ユーザーがリモートのSaaSアプリケーションにログインしようとすると、会社のIdPに転送され、企業の資格情報でリモートアプリケーションにログインできるようになります。

SP開始フローは、以下のワークフローによって大きく可視化されます。

SAMLベースの認証フロー出典: ウィキペディア

  1. ユーザーが特定のアプリケーションまたはWebページ上のリソースにアクセスしようとする
  2. ユーザーは、外部IdPを使用してログインしようとします。 SPはSAMLアサーションを生成し、これを(通常はPOSTまたはGET変数を介して)渡し、IdPに転送します
  3. ユーザーはIdPに対して自分自身を認証します
  4. 署名されたアサーションとトークンは、IdPによって生成されます
  5. 署名されたアサーションおよびトークンは、SPに(POSTまたはGET変数を使用して)戻され、成功した場合、セッションはSP上で開始されます
  6. さらに 、SPとのアクティブなセッション(クッキーによる)がある間に、ユーザがSPからさらなるリソースを要求できるため、すべての要求でIdPで認証する必要はありません。

SAMLデバッグツール

すべてのリクエストとアサーションが前後するため、SAMLの主張とアサーションに関する問題をデバッグするのは面倒です。

SAML内では、IdPとSPの間に直接接続を必要としないという基本原則があるため、ユーザーのブラウザは2つの間のメッセージキャリアとして機能します。このため、すべての通信は暗号化されていますが、自分のブラウザを経由します。

さまざまなデバッグツールを使用すると、IdPとSPの間で正確な通信と要求が行われ、転送されます。

まず始めに、さまざまなブラウザのためのいくつかのツールを紹介します。

クロム

Firefox

SAML要求をデバッグするためのSAMLトレーサ 例えばSAML Tracerを使用すると、テストやデバッグ中にデコードされたSAMLアサーションとリクエストをリアルタイムで見ることができます



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow