ハイリーレギュレーテッドアイデンティティ機能を使用するには、エンタープライズプランとハイリーレギュレーテッドアイデンティティアドオンが必要です。詳細については、「Auth0の価格設定」を参照してください。
前提条件
/authorizeまたは/oauth/parエンドポイントに送信するパラメーターを取得し、それらをJSON Webトークン (JWT)にラップして、秘密鍵を使用して署名します。
認可サーバーは、アプリケーションの公開鍵を使用して署名を検証します。署名が有効な場合、認可サーバーは JARから要求パラメータを抽出し、通常どおり要求を処理します。その結果、パラメータ値は既知のソースから取得されることが保証され、仲介者によって改ざんされたりアクセスされたりすることはできません。
JAR要求を生成する
ヘッダー
alg:JWTに署名するために使用されるアルゴリズム。RS256、RS384、またはPS256のいずれかである必要があります。typ:JWTの種類です。jwtまたはoauth-authz-req+jwtのいずれかである必要があります。
kidフィールドも含まれる場合があります。kid が存在する場合、Auth0はJAR構成中に登録された、一致するキーIDを持つ公開鍵を探し、そのキーを使用してJWTの署名を検証します。
ペイロード
iss:これにはアプリのclient_idが含まれている必要がありますaud:これは、プロトコルと末尾のスラッシュが付いたテナントのドメインである必要があります。例えば、https://your_domain.auth0.com/
/authorizeの呼び出しに必要なパラメータも含まれている必要があります。例:
client_id:これにはアプリのclient_idも含まれている必要がありますresponse_type:Auth0に、実行するフローを示します。認可コード付与フローにcodeを使用します。
audience、scope、state、redirect_uriなど、要求されている認可フローのオプションパラメータが含まれる場合があります。
さらに、JWTには次のオプションのクレームが含まれる場合があります:
iat:数値の日付である必要があります。nbf:過去の時間を表す数値の日付である必要があります。exp:将来の時刻を表す数値の日付である必要があります。jti:64バイト以下の文字列である必要があります。
JWTの生成例
/authorizeエンドポイントを呼び出すには、新しいブラウザウィンドウを開きます。クライアントIDをclient_idパラメータとして渡し、署名およびURLエンコードされたJWTをrequestパラメータとして渡します。