- ID トークン は、カスタムクレームを通じてユーザーの認可情報をアプリケーションに伝えるためによく使われます。これらのクレームは、ルール の拡張機能を使って追加できます。クレームを追加することで、ユーザーが権限のない操作を試せないようなユーザー インターフェースを提供できます。 に含まれる認可情報は、従来型の web app において、ユーザーがフロントエンドの制御を回避することを防ぐための手段を、アプリケーションのバックエンドにも提供します。
ベストプラクティスAuth0 ロールベースのアクセス制御 (RBAC) を Auth0 Authorization Core 機能で利用して、アクセス権限を定義できます。これらの権限はアクセストークンに自動的に適用できます。詳細については、API で Auth0 Authorization Core RBAC を有効にする を参照してください。Auth0 RBAC 機能では、ID トークンにカスタムクレームとして追加できる情報も提供できます (必要に応じて手動で適用する場合は、アクセストークンにも追加できます) 。Auth0 Organizations では、メンバーシップに割り当てられた 1 つ以上のロールを通じて、Auth0 RBAC 機能を活用できます。詳しくは、Add Roles to Organization Members を参照してください。
- 共有リソース サービスへの公開アクセスを提供する API は、通常、アクセス制御の仕組みによって保護されます。この目的のために、Auth0 では認可用の bearer token、つまり 2 の アクセストークン を作成できます。これにより、通常は Auth0 の ロールベースのアクセス制御 (RBAC) を使って 1 つ以上のメンバーシップに割り当てられたロール を適用したり、ルール の拡張機能を通じてカスタムクレームを追加したりすることで、API にユーザーの認可情報を伝えられます。また、Auth0 RBAC 機能を利用して、 の
scopeclaim を自動的に調整することもできます。API はこの情報を使って適切なレベルのアクセス制御を適用できるため、ユーザー情報を取得するための追加の参照を行わなくても、ポリシー ルールを強制できます。 - 特定のケースでは、Auth0 テナントでアプリケーション レベルのポリシーを実装したいことがあります。これにより、各アプリケーションやリソース サービス (API) を個別に変更しなくても、幅広いアプリケーションやリソース サービスにポリシーを適用できます。通常、これは ルール の拡張機能を使って実装します。
ベストプラクティスAuth0 Organizations は、ユーザーの認証時に参照できる organization 中心の情報を Auth0 ルールに提供します。この情報は、ルール の
context object に含まれる organization object から利用できます。organization object では、Auth0 の Organization 定義に対してプロビジョニングされた任意のメタデータにもアクセスできます。詳しくは、Custom Development for Organizations を参照してください。ID トークンのクレーム
org_id クレームが自動的に追加されます (例については、Tokens と Organizations を扱う を参照してください) 。このパラメーターは Auth0 SDK によって検証されます。また、ID トークンにカスタムクレームを追加することで、Auth0 Organization に関連付けられた追加情報を含めることもできます。
org_name claim は ID トークンに自動的に含まれます。詳しくは、Use Organization Names in Authentication API を参照してください。
SAML アサーション
user オブジェクトで値が割り当てられ、その値は ID トークン内の標準クレームにマッピングされるか、カスタムクレームを使用してマッピングできます。SAML マッピングのカスタマイズについて詳しくは、アプリをSAML IDプロバイダーに接続する: マッピングを設定するを参照してください。
アプリケーションで SAML を使用し、Auth0 が IdP として機能する場合は、organization クエリパラメータを使用して、SAML サインインリクエストに 組織 を含めることができます。
http://schemas.auth0.com/ をプレフィックスとして SAML レスポンスに含まれます。
アクセストークンのクレーム
org_id クレームが自動的に追加されます (例については、Tokens と Organizations を扱うを参照してください) 。また、アクセストークンにカスタムクレームを追加することで、Auth0 Organization に関連付けられた追加情報を含めることもできます。
org_name クレームはアクセストークンに自動的に含まれます。詳しくは、Use Organization Names in Authentication APIを参照してください。
または、organization ごとに一意の API を作成することもできます。これにより、Auth0 で一意の API 定義が作成されます。この方法では、カスタム ルール による拡張の必要性を抑えられますが、その一方で複雑さが増し、扱いが難しくなることがあります。簡単に比較すると次のとおりです。
ロール
API で Auth0 Authorization Core RBAC を有効にすることができます。これにより、アクセストークン内のデフォルトの
scope クレームが自動的に変更され、デフォルトで permission クレームも追加されます (例については、Tokens と Organizations を扱うを参照してください) 。また、ルール の context オブジェクトで使用できる authorization オブジェクトにアクセスして、ロール情報をカスタムクレームとして ID トークンに追加することもできます。詳しくは、Authorization を使用するルールのサンプルユースケース: トークンにユーザー ロールを追加するを参照してください。アクセス制御
- 特定の IP アドレスからのユーザーアクセスをブロックする
- コンテキストに応じた要件や に関する特定の要件を実装する
- メールアドレスを確認済みのユーザーのみにログインを制限する
- 特定の API audience へのアクセスを制限し、ユーザーがほかの API audience 用のアクセストークンを取得できないようにする、または特定の状況ではその audience 用のアクセストークンを取得できないようにする。この場合、各 organization ごとにカスタム API Audience を作成しているなら、対応する API audience に一致する organization に認証中のユーザーが所属していることも、ルール で保証する必要があります。