- IDトークン は、カスタムクレームを通じてユーザーの認可情報をアプリケーションに渡すためによく使用されます。カスタムクレームは、Rules 拡張機能を使用して追加できます。クレームを追加することで、ユーザーが権限のない操作を試行できないユーザーインターフェースを実現できます。 内の認可情報は、従来の Web アプリケーションにおいて、フロントエンドの制御を迂回しようとするユーザーをアプリケーションのバックエンドで制限する手段にもなります。
ベストプラクティスAuth0 Authorization Core 機能を通じて Auth0 ロールベースアクセス制御 (RBAC) を利用すると、アクセス許可を定義し、それらをアクセストークンに自動的に適用できます。詳細については、API のロールベースアクセス制御を有効にする を参照してください。Auth0 RBAC 機能では、IDトークン (必要に応じてアクセストークンにも手動で適用可能) にカスタムクレームとして追加できる情報も提供できます。Auth0 Organizations では、1 つ以上のメンバーシップに割り当てられたロールを通じて Auth0 RBAC 機能を活用できます。詳しくは、組織メンバーにロールを追加する を参照してください。
- 共有リソースサービスへの公開アクセスを提供する API は、通常、アクセス制御メカニズムで保護されます。このため Auth0 では、認可ベアラートークン、つまり 2 の アクセストークン を作成する機能を提供しています。これにより通常は、Auth0 の ロールベースアクセス制御 (RBAC) を使用して 1 つ以上の メンバーシップに割り当てられたロール を適用するか、Rules 拡張機能でカスタムクレームを追加することで、ユーザーの認可情報を API に伝えることができます。また、Auth0 RBAC 機能を利用して、 の
scopeクレームを自動的に調整することもできます。これにより API は、この情報を使用して適切なレベルのアクセス制御を適用でき、ユーザー情報を取得するための追加のルックアップを行わずにポリシールールを適用できます。 - 場合によっては、アプリケーションレベルのポリシーを Auth0 テナントで実装したいこともあります。これにより、各アプリケーションやリソースサービス (API) を個別に変更しなくても、広範な対象にポリシーを適用できます。通常、これは Rules 拡張機能を使用して実装します。
ベストプラクティスAuth0 Organizations では、ユーザーの認証時に利用できる組織関連情報に Auth0 Rules からアクセスできます。この情報は、Rules の
context オブジェクトに含まれる organization オブジェクトから利用できます。organization オブジェクトでは、Auth0 の組織定義に対してプロビジョニングされたメタデータにもアクセスできます。詳しくは、Organizations のカスタム開発 を参照してください。IDトークンのクレーム
org_id クレームが自動的に追加されます (例については、トークンと組織の使用 を参照してください) 。このパラメーターは Auth0 SDK によって検証されます。また、IDトークンにカスタムクレームを追加することで、Auth0 の組織に関連付けられた追加情報を含めることもできます。
org_name クレームは IDトークンに自動的に含まれます。詳しくは、Authentication API で組織名を使用するを参照してください。
SAML アサーション
user オブジェクトの値が割り当てられます。これらの値は、IDトークン内の標準クレームにマッピングされるか、カスタムクレームを使用してマッピングできます。SAML マッピングのカスタマイズの詳細については、Connect Your App to SAML Identity Providers: Set up mappings を参照してください。
アクセストークンのクレーム
org_id クレームが自動的に追加されます (例については、Work with Tokens and Organizationsを参照) 。また、アクセストークンにカスタムクレームを追加することで、Auth0 の組織に関連する追加情報を含めることもできます。
org_name クレームはアクセストークンに自動的に含まれます。詳しくは、Authentication API で組織名を使用する を参照してください。
または、組織ごとに一意の API を作成することもできます。この方法では、Auth0 で組織ごとに一意の API 定義を作成することになります。この仕組みにより、カスタム Rule 拡張機能の必要性を減らせますが、その分複雑さが増し、扱いが難しくなる場合があります。簡単に比較すると、次のとおりです。
| アプローチ | メリット | デメリット |
|---|---|---|
| 一意の API オーディエンス |
|
|
| カスタムクレーム | Auth0 テナントの構成を簡素化できます。 | アクセストークンに組織を追加するには、Rule でカスタムコードが必要です。 |
ロール
API で Auth0 Authorization Core RBAC を有効にすると、アクセストークン内のデフォルトの
scope クレームが自動的に変更され、デフォルトで permission クレームが追加されます (例については、Work with Tokens and Organizations を参照してください) 。また、Rules の context オブジェクトで利用できる authorization オブジェクトにアクセスすることで、ロール情報をカスタムクレームとして IDトークンに追加することもできます。詳しくは、Rules with Authorization Sample Use Cases: Add User Roles to Tokens を参照してください。アクセス制御
- 特定の IP アドレスからのユーザーによるアクセスをブロックする
- Contextual またはに関する特定の要件を実装する
- メールアドレスの確認が完了しているユーザーだけにログインを制限する
- 特定の API オーディエンスへのアクセスを制限し、ユーザーが他の API オーディエンス用のアクセストークンを取得できないようにする、または特定の状況ではそのオーディエンス用のアクセストークンを取得できないようにする。この場合、各組織に対してカスタム API Audience を作成しているなら、認証中のユーザーが対応する API オーディエンスに一致する組織に属していることも、Rule で保証する必要があります。