「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>FAPI Part 2 (Read and Write API Security Profile)]]

* 目次 [#x774c2a7]
#contents

*概要 [#ta7069e9]
-ドイツの金融業界の要望に対応するため、驚くほどのスピードで策定され、~
駆け込みで FAPI Implementer's Draft 第二版と一緒に処理された。

-[[FAPI Part 2 (Read and Write API Security Profile)]]では、[[分離トークン(s_hash)>FAPI Part 2 (Read and Write API Security Profile)#i246cd31]]の代替手段だと書かれている。

-認可レスポンスのパラメタ群が一つの JWT にまとめられ、response={JWT} という形式で返ってくる。

--JWT形式で Authorization Response を返すための仕様

--[[Response Mode を指定するための response_mode パラメタ>OAuth 2.0 Form Post Response Mode]]も拡張する

--Client / Authorization Server それぞれの metadata も拡張する

※ よくよく見ると、[[JWT Secured Authorization Request (JAR)]](リクエスト)のレスポンス版である。

*詳細 [#wdfc0b3d]
-Authorization Response に JWT を使う方法が定義されている。
-[[Response Type>OAuth 2.0 Multiple Response Type Encoding Practices]], [[Response Mode>OAuth 2.0 Form Post Response Mode]] により、挙動とJWTの中身が違ってくる。
-JWTのalgなどは仕様範囲外なので、よく考えて設計する必要がある。

**Discovery / Registration [#ef0c71f9]

***[[Discovery>OpenID Connect - Discovery]] [#k71e4d3e]
response_modes_supportedパラメタで

-[[response_mode>#jdf53132]]
-[[AuthZ metadata>#be301260]]

をアドバタイズ

***[[Registration>OpenID Connect - Dynamic Client Registration]] [#m74d521b]
[[Client metadata>#x88195b8]]を登録。

**Metadata [#q6882927]

***Client metadata [#x88195b8]
Clientが、JWT の署名・暗号にどのアルゴリズムを使用して欲しいかを指定。

-authorization_signed_response_alg
-authorization_encrypted_response_alg
-authorization_encrypted_response_enc

***AuthZ metadata [#be301260]
AuthZがサポートするJWT の署名・暗号アルゴリズムを列挙。
-authorization_signing_alg_values_supported
-authorization_encryption_alg_values_supported
-authorization_encryption_enc_values_supported

**[[response_mode>OAuth 2.0 Form Post Response Mode]] [#jdf53132]

***query.jwt [#le68ebcd]
 HTTP/1.1 302 Found
 Location: https://client.com/callback?response={JWT}

***fragment.jwt [#w7232cda]
 HTTP/1.1 302 Found
 Location: https://client.example.com/cb#response={JWT}

***form_post.jwt [#xbf7b21a]
 HTTP/1.1 200 OK
 Content-Type: text/html;charset=UTF-8
 Cache-Control: no-cache, no-store
 Pragma: no-cache
 <html>
   <head><title>Submit This Form</title></head>
   <body onload="javascript:document.forms[0].submit()">
     <form method="post" action="https://client.example.com/cb">
      <input type="hidden" name="response" value="{JWT}"/>
     </form>
   </body>
 </html>

***jwt [#b838208d]
-ショートカット。以下の何れかを示す。

-[[response_type>OAuth 2.0 Multiple Response Type Encoding Practices]]が、
--"code"の場合、[[query.jwt>#le68ebcd]]
--"token"の場合、[[fragment.jwt>#w7232cda]]

**JWT [#fbb6fcfa]
上記の{JWT}には、以下のペイロードを署名してJWS化したものを入れる。

 {
   "iss":"https://accounts.example.com",
   "aud":"s6BhdRkqt3",
   "exp":1311281970,
   "code":"PyyFaux2o7Q0YfXBU32jhw.5FXSQpvr8akv9CeRDSd0QA",
   "state":"S8NJ7uqk5fY4EjNvP_G_FtyJu6pUsvH9jsYni9dMAJw"
 }

*参考 [#x941b618]
-Draft-nn: Financial-grade API: JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)~
https://openid.net/specs/openid-financial-api-jarm.html

**インフル諸兄 [#j1267125]

***TakahikoKawasaki [#h306ef44]
-OAuth 2.0 の認可レスポンスとリダイレクトに関する説明 - Qiita~
JWT Secured Authorization Response Mode~
https://qiita.com/TakahikoKawasaki/items/8567c80528da43c7e844#jwt-secured-authorization-response-mode

***ritou [#kfb57e70]
-FAPI : JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) とは - r-weblife~
https://ritou.hatenablog.com/entry/2018/09/21/143349

**関連仕様 [#t43a5fc4]
***[[OAuth 2.0 Form Post Response Mode]] [#g80b53c7]
***[[OAuth 2.0 Multiple Response Type Encoding Practices]] [#b0c7ea81]

***[[OpenID Connect - Discovery]] [#n79fb3c3]
***[[OpenID Connect - Dynamic Client Registration]] [#q62b2628]

----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS