OpenID Connectのスコープ

このドキュメントでは、OpenID Connect(OIDC)認証プロトコルに含まれるスコープについてご説明します。OIDC自体の詳細情報については、OpenID Connectプロトコルをご覧ください。

OpenID Connect(OIDC)スコープは、アプリケーションが認証プロセスの際に名前や画像などのユーザー詳細へのアクセスを認可するために使用します。それぞれのスコープは、ユーザー属性のセットを返します。これをクレームといいます。アプリケーションが要求するスコープは、そのアプリケーションでどのユーザー属性が必要かによります。要求されたスコープをユーザーが認可すると、クレームがIDトークンに含める形で返されます。これは/userinfo エンドポイント経由でも使用できるようになります。

たとえば、一般的なWebアプリケーションをビルドしてAuth0に登録し、ユーザー名とパスワードでログインできるように設定したとします。アプリにログインしたユーザーに、その人の名前を含んだ、パーソナライズされた歓迎メールが自動的に送信されるようにしたいと考えています。

  1. ユーザーがアプリ内で[Login(ログイン)]にクリックします

  2. アプリは、以下のスコープを含み、ユーザーをAuth0の認証サーバー(/authorizeエンドポイント)にリダイレクトします。

    • openid(必須:アプリケーションがユーザーの身元検証にOIDCを使用することを伝えるため)

    • Profileprofile(ユーザーの名前でメールをパーソナライズするため)

    • email(歓迎メールの送付先を知るため)

  3. Auth0認可サーバーがユーザーをログインプロンプトにリダイレクトします。

  4. ユーザーが認証を行うと、同意ページが開き、Auth0からアプリに提供されるスコープが表示されます。これには、ユーザーのプロファイル情報とメールアドレスへのアクセス権が含まれます。

  5. ユーザーは、Auth0に保管されているユーザー情報に対してアプリにそのレベルのアクセス権が与えられることを承認・認可します。

  6. これで、アプリがユーザーのプロファイル情報とメールアドレスにアクセスできるようになりました。

標準クレーム

標準クレームは、アプリケーションにユーザー情報(名前・メール・画像など)を提供するためのもので、OIDCプロトコルに対してあらかじめ定義されています。クレームは、IDトークンに含める形で返され、また/userinfoエンドポイント経由でも使用できるようになります。

また、自分で定義、制御し、Auth0 Actionsを使用してトークンに追加するカスタムクレームも作成できます。詳細については、JSON Webトークンクレームをお読みください。

OIDCの基本(必須)スコープはopenidで、アプリケーションがユーザーの身元の検証にOIDCプロトコルを使用することを示します。さらに、アプリケーションで他にもスコープが必要な場合は、スペースで区切って、scopeパラメータに要求されたスコープの名前を列挙します。

最も一般的なスコープに含まれる標準クレームの一覧を下に示しますが、使用できる標準クレームを網羅したリストについては、「OIDCの仕様:openid.netの標準クレーム」を参照してください。スコープの完全なリストについては、「OIDCの仕様:openid.netにおけるスコープ値を使ったクレームの要求」を参照してください。

スコープ クレーム
openid (必須)ユーザーを一意に識別するsubクレームを返します。IDトークンでは、issaudexpiatat_hashの各クレームも表示されます。IDトークンクレームの詳細については、「IDトークンの構造」をお読みください。
profile 基本的なプロファイル情報(namefamily_namegiven_namemiddle_namenicknamepictureupdated_atを含む)を表すクレームを返します。
email ユーザーのメールアドレスを含むemailクレームと、email_verified(メールアドレスがユーザーによって確認されたかどうかを示すブール値)を返します。

アプリケーションのために標準クレームを要求する方法の例は、「サンプルユースケース:スコープとクレーム」を参照してください。

もっと詳しく