FIDOアライアンス東京セミナー
⾦融API向けOAuthへのFIDO認証の導⼊
〜OpenID Foundationでの標準化動向を俯瞰して〜
OpenID ファウンデーション・ジャパン
倉林 雅
倉林 雅
OpenID ファウンデーション・ジャパン
エバンジェリスト
ヤフー株式会社
IDソリューション本部
認証技術⿊帯
CISO-Board
@kura_lab
アジェンダ
1. OpenID Foundationと
OpenID ファウンデーション・ジャパンについて
2. Working Groupと策定中の仕様
3. Financial API(FAPI) WGとは
4. FAPIの仕様
5. FIDOとFAPI
6. まとめ
OpenID Foundationと
OpenID ファウンデーション・ジャパンについて
OpenID Foundation
• ⽶国オレゴン州⾮営利法⼈
• Digital Identityに特化した国際標準化団体
(International standardization organization)
Sustaining Corporate Member Corporate Member Non-profit Member
OpenID ファウンデーション・ジャパン
• インターネットにおけるユーザー認証技術である「OpenID」
技術の国際化を⽀援
• ⽇本国内において「OpenID」技術を普及、啓発し、
もって社員ならび会員に共有する利益を図ること
理事企業 社員・会員企業(⼀例)
OpenID ファウンデーション・ジャパン
• 9/15 Japan Identity & Cloud Summit 2017
• OpenID BizDay
• 8/1 ⾦融 API 時代の OAuth 2.0 &
OpenID Connect・CIS 2017報告会
• 10/13 NIST SP 800-63-3を読む 第1回
• 10/27 NIST SP 800-63-3を読む 第1回
• OpenID TechNight
Working Groupと策定中の仕様
Working Group
Enhanced Authentication Profile (EAP) WG
• OpenID Connectでより強固な
認証を提供するためのセキュリ
ティとプライバシーのプロファ
イル(拡張機能)を策定
• Token Binding Authentication
• EAP ACR Values
• W3C scoped credentials
• FIDO authenticators
Financial API (FAPI) WG
• ⾦融API向けの
OAuthプロファイルを策定
• 本⽇はFIDO認証と合わせて
利⽤される領域となりうるFAPI
について紹介する
Financial API(FAPI) WGとは
アイルランドの4⼤銀⾏のひとつ
ヨーロッパで2番⽬に⼤きい⾦融機関(世界で6番⽬)である
ロイヤルバンク・オブ・スコットランドが所有している銀⾏
⼝座の残⾼、取引履歴を
参照するための3rd Party向けAPIを
開発者向けに紹介した
参考:Ulster Bank Introduces New Banking Open API
https://www.programmableweb.com/news/ulster-bank-introduces-new-banking-open-api/2017/09/13
参考:The Open Banking Standard
https://theodi.org/open-banking-standard
借⼊・運⽤・貯⾦のデータ活⽤を⽬的とした
英国の銀⾏のAPI化の指針のレポート
技術やプライバシー、セキュリティの
仕様やルールが記載されている
参考:The Open Banking Standard
https://theodi.org/open-banking-standard
Open Banking APIのフレームワークとして
「OAuth 2.0」を前提に⽂書が書かれている
英国Open Banking Standardを受けて
オープンAPIの検討会も動いている
全国の銀⾏の発展のために
業界の調査や制度を整備をしている
JSON REST OAuth
OpenID Connect
OAuthは「フレームワーク」
• OAuthはプロトコルではなく
「フレームワーク」
• サービスに適⽤するためのプ
ロファイル(拡張機能)を
作る必要がある
• ⾦融分野で利⽤するためには
⾦融分野のセキュリティ⽔準
を満たすプロファイルが必要
OpenID Foundationの
Working GroupでOAuth 2.0の
プロファイル(拡張機能)を策定中
参考:Financial API (FAPI) WG
http://openid.net/wg/fapi/
Financial API (FAPI) WG
• セキュリティとプライバシープロ
ファイル、JSON data schema、
REST APIsに関する
勧告を提供
• アプリケーションが⾦融⼝座に保管
されているデータを利⽤、⾦融⼝座
とやりとりすること、利⽤者が
セキュリティとプライバシー設定を
することを⽬的とする
• 保健およびクレジットカード情報も
考慮対象とする
FAPIの仕様
FAPIの仕様群
• APIセキュリティプロファイル
• Part 1: Read Only API
• Part 2: Read & Write API
• API仕様
• Part 3: Open Data API
• Part 4: Read Only API
• Part 5: Read & Write API
セキュリティプロファイルの例
Part 1: Read Only API Security Profile
※KeywordはIETFと異なりISOの“shall”, “should”, “may”, “can”を使⽤
FAPIの仕様
標準のOAuth
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token
Access to Resource
Resource
Authorization Code (Redirect)
FAPIの仕様
Part 1,2 適応後のOAuth
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token / ID Token
Access to Resource
Resource
Authorization Code (Redirect)
• request or request_uri
(JWTによるRequest Object)
• scopeにopenid必須
(OpenID Connect対応)
• redirect_uri必須かつ完全⼀致
• state必須
Revoke Token
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token / ID Token
Access to Resource
Resource
Authorization Code (Redirect)
• request or request_uri
(JWTによるRequest Object)
• scopeにopenid必須
(OpenID Connect対応)
• redirect_uri必須かつ完全⼀致
• state必須
• Client認証にMutual TLS
またはJWT Client Assertion
Revoke Token
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token / ID Token
Access to Resource
Resource
Authorization Code (Redirect)
• request or request_uri
(JWTによるRequest Object)
• scopeにopenid必須
(OpenID Connect対応)
• redirect_uri必須かつ完全⼀致
• state必須
• Client認証にMutual TLS
またはJWT Client Assertion• scopeを返却
Revoke Token
• ID Tokenに
s_hash(stateハッシュ値)、
暗号化(Confidential)、
署名のPS256とES256対応
(RS256は排除)
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token / ID Token
Access to Resource
Resource
Authorization Code (Redirect)
• request or request_uri
(JWTによるRequest Object)
• scopeにopenid必須
(OpenID Connect対応)
• redirect_uri必須かつ完全⼀致
• state必須
• Client認証にMutual TLS
またはJWT Client Assertion• scopeを返却
• Token Revocation提供
• ID Tokenに
s_hash(stateハッシュ値)、
暗号化(Confidential)、
署名のPS256とES256対応
(RS256は排除) Revoke Token
OpenID Certification
• OpenID ConnectのOP・RP Certificationを正式提供中
• 仕様が正しく実装されているか、オンライン提供されているテ
スト・スイートのCertificationで確認
• Google、Microsoft、NRI、Yahoo! JAPANなど
• FAPIにおいても同様のスキームでテストを可能にする予定
• http://openid.net/certification/
FIDOとFAPI
Provisioning
ID管理の階層構造
ID管理の階層構造
Authentication
Provisioning
ID管理の階層構造
Attributes
Single Sign-On
Federation
Authentication
Provisioning
ID管理の階層構造
Attributes
Single Sign-On
Federation
Authentication
Provisioning SCIM
ID管理の階層構造
Attributes
Single Sign-On
Federation
Authentication
Provisioning
OAuth
OpenID Connect
SCIM
ID管理の階層構造
Attributes
Single Sign-On
Federation
Authentication
Provisioning
FIDO
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token / ID Token
Access to Resource
Resource
Authorization Code (Redirect)
• request or request_uri
(JWTによるRequest Object)
• scopeにopenid必須
(OpenID Connect対応)
• redirect_uri必須かつ完全⼀致
• state必須
• Client認証にMutual TLS
またはJWT Client Assertion• scopeを返却
• Token Revocation提供
• ID Tokenに
s_hash(stateハッシュ値)、
暗号化(Confidential)、
署名のPS256とES256対応
(RS256は排除) Revoke Token
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token / ID Token
Access to Resource
Resource
Authorization Code (Redirect)
Revoke Token
OAuthではユーザー認証はOut of Scopeだが
FAPIの更新系API(Part 2)のユーザー認証はITU-T X.1254
LoA 3(特定される⾝元識別情報の信⽤度が”相当程度ある”)以上を要求
Resource
Owner
Relying
Party
Authorization
Server
Resource
Server
Start
Authentication Request (Redirect)
Login (User Authentication)
Token Request
Access Token / Refresh Token / ID Token
FIDOの認証領域
Access to Resource
Resource
Authorization Code (Redirect)
Revoke Token
FIDOとFAPI
• OAuthは「ID連携(Federation)」を役割としているため、
ユーザー認証はスコープ外である
• ⾦融領域はFAPIのプロファイルにFIDOの認証を補完し
活⽤できる領域のひとつである
FinTech
Authentication
FIDO
Federation
OAuth
FAPI OpenID Connect
FIDOとFAPI
• FIDOは「認証」、OAuthは「ID連携」の補完関係
• OAuthはFAPIでセキュアなID連携を⽬指す
• FAPIにFIDOの強固なユーザー認証が加わることで
よりセキュアな⾦融領域のID連携が実現できるだろう
まとめ
まとめ
• 英国のOpen Banking Standardにより⽇本を含め各国で
⾦融業界におけるAPI化が進んでいる
• OpenID FoundationではFAPI WGにて⾦融向けAPIを
提供するために必要なOAuthのプロファイルを策定中
• FAPI向けのCertificationの実施を予定
• ⾦融領域においてよりセキュアなID連携を⽬指すために、
FIDOによる認証とFAPIのOAuthプロファイルを
活⽤できるだろう
ご清聴ありがとうございました

金融向けoへの認証の導入