シングル・サインオン

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

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

認証と許可

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

Security Assertion Markup Language (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 プロバイダー は、ユーザーの ID を検証し、ユーザー ID を表明する SAML アサーション を生成します。
  4. アイデンティティー・プロバイダー は、 サービス・プロバイダーへの SAML 認証応答 にアサーションをパッケージ化します。

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

OpenID Connect 依拠当事者 は、ユーザーの認証を必要とする任意のアプリケーションにすることができます。 また、返されるユーザー ID 情報のコンシューマーでもあります。

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

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

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