シングル・サインオン

シングル・サインオン は、ユーザー ID とパスワードを 1 回入力するだけで、複数のアプリケーションにアクセスできる認証プロセスです。 複数のアプリケーションで、ユーザー認証および権限付与にこれを使用 Verify するように設定できます。 ユーザーは、自身の Verify アカウント認証情報を使用して、対象アプリケーションにサインインします。 Verify を使用して認証されると、ユーザーは認証済みセッション内で、使用する資格を持つアプリケーションにアクセスできます。 セッションの有効期限が切れると、ユーザーは Verifyを介して再度サインインする必要があります。

Verify とターゲット・アプリケーションの間のシングル・サインオンを実装するには、双方の構成の詳細を交換する必要があります。 アプリケーションを Verify で構成し、ターゲット・アプリケーションで Verify を構成する必要があります。

認証と許可

認証 では、ユーザーの ID が確認され、ユーザーが本人であることが証明されます。 許可 では、ユーザーにリソースへのアクセス権が付与され、ユーザーがリソースに対して実行できる操作が定義されます。 Verify SAML および OpenID Connect を利用した認証と認可をサポートしています。
表 1. 比較の概要
SAML 2.0 OpenID Connect
説明

セキュリティアサーションマークアップ言語( SAML )は、認証および認可機能を提供するオープン標準です。

この規格により、サービス・プロバイダーアイデンティティー・プロバイダー 間でユーザー ID を安全に連絡するためのフレームワークが実現します。

OpenID Connectは、 OpenID の認証機能と OAuth2.0 の認可機能を組み合わせたオープンスタンダードのプロトコルです。

この規格により、依拠当事者OpenID Connect プロバイダー 間でユーザー ID を安全に連絡するためのフレームワークが実現します。

ユース・ケース

エンタープライズ・アプリケーション用のシングル・サインオン

エンタープライズ・アプリケーションおよびコンシューマー・アプリケーションのシングル・サインオン

サポートされるクライアント・タイプ
  • Web ベース
  • Web ベース
  • モバイルまたはネイティブ
  • JavaScript
データ形式 XML JSON
ユーザー情報または認証は、以下を通じて送信されます。

SAML のアサーション

アサーションには、以下の情報が含まれています。
  • 対象 (認証対象のユーザー)
  • 属性 (ユーザーに関する情報)
  • 発行者 (アサーションの発行者)
  • 認証イベントに関するその他の情報

IDトークンと呼ばれるJSON Web Token(JWT)

トークンには、以下の情報が含まれています。
  • 対象 (認証対象のユーザー)
  • 発行者 (ユーザー要求を発行したユーザー)
  • 認証の有効期限
  • 属性またはユーザークレーム(個人に関する情報) 1
  • 認証イベントに関するその他の情報
トークン アクセス・トークン
  • ID トークン
  • アクセス・トークン。 アクセス・トークンは、不透明ストリングまたは JWT 形式のいずれかです。
  • リフレッシュ・トークン
注:OAuth /OIDCトークンの長さは固定されていません。 アクセストークンとリフレッシュトークンを保存する際は、長さが変動する可能性があることを考慮してください。 保存用の最大長を設定する必要があり、今後JWT形式のアクセストークンを使用する予定がない場合は、トークンの長さを少なくとも1024文字に設定してください。
コンポーネント/ロール
  • ユーザー。アクセスを要求します。
  • ユーザー・エージェント。ユーザーが認証を行う場所 (Web ブラウザーなど)。
  • サービス・プロバイダー。ユーザーがアクセスしようとしているアプリケーション。
  • アイデンティティー・プロバイダー。ユーザーを認証します。
  • ユーザー。アクセスを要求します。
  • ユーザー・エージェント。ユーザーが認証を行う場所 (Web ブラウザーなど)。
  • 依拠当事者 またはクライアント。ユーザーがアクセスしようとしているアプリケーション。
  • OpenID Connect プロバイダー。ユーザーとクライアントを認証します。

SAML ベースのシングル・サインオン

サービス・プロバイダー とは、ユーザーに認証を要求するすべての Web ベース・アプリケーションです。 また、返されるユーザー ID 情報のコンシューマーでもあります。

アイデンティティー・プロバイダー は、ユーザー ID を管理およびアサートします。

  1. ユーザーは、ユーザー・エージェント を通じて、サービス・プロバイダー の保護リソースへのアクセスを要求します。
  2. サービス・プロバイダー は、ユーザー・エージェントアイデンティティー・プロバイダー にリダイレクトすることによって、ユーザー認証要求 を送信します。
  3. IDプロバイダー はユーザーの身元を確認し、その身元を証明する SAML アサーションを生成します。
  4. IDプロバイダー、サービスプロバイダー への SAML 認証応答にアサーションを組み込みます。

OpenID Connect ベースのシングル・サインオン

OpenID Connectの信頼先(Relying Party) は、ユーザーへの認証を必要とするあらゆるアプリケーションとすることができます。 また、返されるユーザー ID 情報のコンシューマーでもあります。

OpenID Connect プロバイダー は、許可エンドポイント を通じてユーザーを認証し、トークン・エンドポイント を通じてクライアントを認証します。
  1. ユーザーは、ユーザー・エージェント を通じて、依拠当事者 の保護リソースへのアクセスを要求します。
  2. 依拠当事者 は、ユーザー・エージェントOpenID Connect プロバイダー にリダイレクトすることによって、ユーザー認証要求 を送信します。
  3. OpenID Connect プロバイダー は、ユーザーのセッションが有効であるかどうかを検証します。 有効でない場合、OpenID Connect プロバイダー は、ユーザーにログインを要求し、許可エンドポイント を通じてユーザーを認証します。
  4. 許可付与タイプに応じて、アイデンティティー・プロバイダー許可エンドポイント は、依拠当事者 に以下のいずれかを含む認証応答を送信できます。
    • この認証情報は、クライアントによるリクエスト内で渡され、 依存先がトークンエンドポイントにこの認証コード2を送信することで、IDトークン、アクセストークン、またはリフレッシュトークンと交換することができます。
    • ID トークンおよびアクセス・トークン。

      ID トークン またはリフレッシュ・トークン には、ユーザー・セッションの確立に使用されるユーザーの要求と署名が含まれます。

    • QR コード、ユーザー・コード、および URL。
    • 暗黙的なフロー。 認証と認可を実行し、レスポンスとしてIDトークンとアクセストークンをクライアントに直接返します。
    注: OpenID Connect プロバイダーの暗黙的フローでは、トークンエンドポイントはサポートされていません。
1 これらの主張はユーザーに関する記述であり、トークンの利用者がその署名を検証できれば、信頼できるものである。 これらは、同意を得たユーザー詳細 (E メールや名前など) をクライアント・アプリケーションに提供することを目的としています。
2 認証情報を格納した中間証明書。