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

-[[戻る>Financial API (FAPI)]]
* 目次 [#zce5c6fe]
#contents

*概要 [#mec56743]
-[[Financial API (FAPI)]]の「Read and Write API用セキュリティ・プロファイル」
-金融データへのトランザクション・アクセスに適した[[OAuth]]プロファイル

※ この項は、ドラフト 4 を参考にして作成。

*要約 [#sab53ee8]
-送信者・受信者・メッセージ認証を強化
-以下の攻撃に対するコントロールを規定
--認可要求の改ざん
--コードインジェクション
--状態インジェクション
--トークン要求フィッシング
--認可応答の改ざん

**フロー [#y974f9a7]

***response_type [#s32102a0]
[[OpenID Connect]]の[[Hybrid Flow>OpenID Connect#l565139a]]

-code id_token
-code id_token token

***[[IDトークン>OpenID Connect#ofb73c59]] [#g7df69b2]
-JWT形式
--JWS署名(必須)
---PS256
---ES256
--JWE暗号化(すべき)

-分離トークン
--認可応答が改ざんされていないことを検証。
--クライアントは、s_hash値を検証する。

-[[クレーム追加>OpenID Connect#c007540d]]
--at_hash
--c_hash
--更に、
---[[arcとamr>OpenID Connect#l52144f8]]
---[[s_hash>#k722ecb6]]

***s_hash [#k722ecb6]
state の ハッシュ値。

-値
--state 値のASCII表現のオクテットのハッシュの左端の半分をbase64urlエンコーディング
--ハッシュはIDトークンのJOSEヘッダのalgパラメタで使用されるアルゴリズム。

-例:algがHS512の場合
--state値をASCIIエンコードし、
--SHA-512でハッシュ化し、
--左端の256ビットを切り出し、
--base64urlエンコードする。

***request or request_uri [#h3bfbf17]
-パラメタを要求。
-[[Requestオブジェクト>JWT Secured Authorization Request (JAR)]](必須)

**通信 [#ob9374f1]
-SSL/TLS
-redirect_uri(完全一致)

**認証 [#k8da384f]
-[[LoA 3>#h48691d5]]
--特定される⾝元識別情報の信⽤度が「相当程度ある」。
--パスワードだけではなく、2要素以上を用いてユーザー認証をする。

-クライアント認証の類
--[[Requestオブジェクト>JWT Secured Authorization Request (JAR)]](必須)
--クライアント認証と[[記名式トークン>#x210d002]]
---[[OAuth 2.0 Mutual TLS]]
---[[OAuth 2.0 Token Binding]]
---[[OAuth 2.0 Mutual TLS]](MTLS)
---[[OAuth 2.0 Token Binding]](OAUTB)

**トークン種類 [#x210d002]
記名式トークン
[[記名式切符(Proof-of-possession Token)>トークン#b38de47f]]

-対象
--code
--token
---access_token
---refresh_token

-紐付けのために以下をサポートする必要がある。
--[[OAuth 2.0 Mutual TLS]]
--[[OAuth 2.0 Token Binding]]

*役割 [#a2170501]

**Authorization Server [#zf702573]

***認証・認可 [#u62c1062]
-[[LoA 3>#k8da384f]]

***クライアント認証 [#tf6a9f9c]
-[[Requestオブジェクト>JWT Secured Authorization Request (JAR)]](必須)
-[[OAuth 2.0 Mutual TLS]]
-[[OAuth 2.0 Token Binding]]

***redirect_uri [#fabee59b]
-事前登録が必要
-認可リクエストに必須
-完全一致が必要

***code, token [#mbd264d4]
-[[記名式トークン>#x210d002]]
--code
--token
---access_token
---refresh_token

-[[IDトークン>#g7df69b2]]

***追加の機能 [#k8b3bfec]

**Client [#ide28df2]

***Confidentialクライアント [#b1fc3c02]
-以下の何れかをサポートする。
--[[OAuth 2.0 Mutual TLS]]
--[[OAuth 2.0 Token Binding]]
-JWSおよびJWEの両方の[[IDトークン>#g7df69b2]]を要求する。

***Publicクライアント [#e482f66f]
-[[OAuth 2.0 Token Binding]]必須
-[[Requestオブジェクト>JWT Secured Authorization Request (JAR)]](必須)
-arcクレームでLoA 3以上での認証を要求し、[[arcとamr>OpenID Connect#l52144f8]]を検証する。

***HTTP [#z7825ead]
[[Part 1>FAPI Part 1 (Read Only API Security Profile)#pa51309c]]要件を遵守。

**Resource Server [#fbfccde7]
-[[Part 1>FAPI Part 1 (Read Only API Security Profile)#p3a2a94b]]要件を遵守。
-これに加えて、以下をサポートする。
--[[OAuth 2.0 Mutual TLS]]
--[[OAuth 2.0 Token Binding]]

***HTTP [#j47923bc]

***Accessトークン [#y3d4cbbf]

*セキュリティに関する考慮事項 [#mea47b47]

*考察 [#o856c12a]

*参考 [#w0534ff5]
-Financial Services – Financial API - Part 2: Read and Write API Security Profile~
http://openid.net/specs/openid-financial-api-part-2.html
>FAPI Read and Writeセキュリティ・プロファイル

-Financial API 実装の技術課題 - Qiita > FAPI Part 2~
https://qiita.com/TakahikoKawasaki/items/48a9d22205f77db59726#fapi-part-2

**LoA [#h48691d5]
-認証連携普及のために~信頼フレームワークの構築~ | NTTデータ~
http://www.nttdata.com/jp/ja/insights/trend_keyword/2013121901.html

----
Tags: [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]


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