カスタムクレームを作成する
アクセストークンやIDトークンのカスタムクレームを読み出すには、JSON Web Token(JWT)を使用して、OIDCのログインフローでオーディエンス(aud
)を渡す必要があります。詳細については、「アクセストークン」をお読みください。
JWTでカスタムクレームを設定するときは、衝突を回避する必要があります。カスタムクレームが予約されたクレームや他のリソースのクレームと衝突しないようにするには、カスタムクレームに衝突耐性のある名前を付けます。Auth0では、名前空間形式の使用を推奨しています。
一般的な制限
Auth0は、カスタムクレームに以下の制限を適用します。
カスタムクレームのペイロードは最大100 KBに設定される
OpenID標準クレームや、Auth0によって内部的に使用されるクレームは、カスタマイズや変更できない
/userinfo
エンドポイントを除いて、Auth0 APIオーディエンスのアクセストークンには、名前空間のない、プライベートなカスタムクレームが含まれてはいけない指定されたOIDCユーザープロファイルクレームしかアクセストークンに追加できない
次のクレームがAuth0の制限の対象となります。
acr
act
active
amr
at_hash
ath
attest
aud
auth_time
authorization_details
azp
c_hash
client_id
cnf
cty
dest
entitlements
events
exp
groups
gty
htm
htu
iat
internalService
iss
jcard
jku
jti
jwe
jwk
kid
may_act
mky
nbf
nonce
object_id
org_id
org_name
orig
origid
permissions
roles
rph
s_hash
sid
sip_callid
sip_cseq_num
sip_date
sip_from_tag
sip_via_branch
sub
sub_jwk
toe
txn
typ
uuid
vot
vtm
x5t#S256
制限のないクレーム
機密のユーザー情報のクレームを作成して、ユーザープロファイルを強化し、ユーザーエクスペリエンスを向上させることができます。これらのクレームは、IDトークンからアプリケーションによって利用されます。制限のないクレームの詳細については、「IDトークン」をお読みください。使用の際には、「トークンのベストプラクティス」を考慮してください。
以下のクレームには一般的な制限のみが適用されます。
address
birthdate
email
email_verified
family_name
gender
given_name
locale
middle_name
name
nickname
phone_number
phone_number_verified
picture
preferred_username
profile
updated_at
website
zoneinfo
名前空間のガイドライン
名前空間識別子については、以下のガイドラインを使用してください。
Auth0以外のHTTPまたはHTTPS URLを名前空間識別子として使用します。Auth0のドメインは名前空間識別子として使用できません。これには以下のものが含まれます。
auth0.com
webtask.io
webtask.run
自分が管理しているURLを名前空間識別子として使用します。これにより、他の誰かが同じ名前空間を使用するリスクを回避できます。この名前空間URLが実際のリソースを指す必要はありません。これは呼び出されることがなく、識別子としてのみ使用されます。
URLは
http://
またはhttps://
で始めます。必要に応じて、複数の名前空間を作成します。
必要に応じて、複数の名前空間を作成します。
名前空間を選択したら、それにクレームを追加して、トークンに追加できる名前空間クレームを作成します。例:
http://www.example.com/favorite_color
非名前空間のガイドライン
非名前空間のカスタムクレームについては、次のガイドラインを使用してください。
アプリケーションに絶対に必要な場合を除き、衝突耐性のあるパブリックの名前空間カスタムクレームを使用してください。
衝突耐性のある、分かりやすい名前のクレームを作成します。たとえば、
employee_id
を使用します。e_id
にはしません。クレームの名前と値をできるだけ軽くし、アプリケーションに絶対に必要なデータのみを渡すようにします。
重いペイロードをカスタムクレームに割り当てないようにします。
トークンに追加されるカスタムクレームの他の例については、「ユースケースの例:スコープとクレーム」を参照してください。
カスタムクレームを作成する
カスタムクレームを作成するには、Auth0 Actionsを使用します。api
オブジェクトを使用すると、アクセストークンやIDトークンにsetCustomClaim
メソッドが使えるようになります。
例
exports.onExecuteCredentialsExchange = async (event, api) => {
api.accessToken.setCustomClaim('myClaim', 'this is a private, non namespaced claim');
};
Was this helpful?