OpenID Connect - Nat Sakimura at OpenID TechNight #7
-
Upload
openid-foundation-japan -
Category
Technology
-
view
14.272 -
download
2
Transcript of OpenID Connect - Nat Sakimura at OpenID TechNight #7
Connect
Nat Sakimura (@_nat)
Are you…
SaaS Provider like Salesforce / Azure / Google
End User Enterprise / Companies.
Geeks
Questions
To SaaS Providers:
• RESTful Architecture
• SOAP?
Enterprize / Companies
• Want to get connected to SaaS Providers?
• Want to be your own IdP?
Geeks
• RESTful?
• SOAP?
• WS-*?
100%0%
100%0%0%
Working Together
AB/Connect WG
設計方針
簡単なことは簡単に
複雑なことも可能に
モジュラー・デザイン
簡単なことは簡単に
標準化された UserInfo APIを通じたシンプルな “Connect” 機能
モバイル環境のサポート
どうやって簡単に?
• OAuth 2.0ベース
• JSONの活用
• JSON Web Token (JWT) claims 形式
• Goal: 全ての現代的なWebプラットフォームで容易に実装できること
複雑なことも可能に
幅広いセキュリティレベルへの対応
Claims 集約
分散 Claims
幅広いセキュリティレベルへの対応
LoA1
LoA2
LoA3LoA4
Increasing Level of Assurance →
Claims 集約
Data Source
Data Source
IdPRelyingParty
Signed Claims
分散Claims
Data Source
Data Source
Data Source
IdPRelyingParty
Permission
Signed Claims
Better scalability, etc.
Connect Suite
• Messages – (merge of former Core, Framework, and UserInfo)
• Standard (HTTPS Binding for Messages) – to be written
• Lite (Minimal Binding spec for RPs)• Registration• Discovery• Session Management
図1 OpenID認証(身元確認)の場合
氏名:有栖和歌子メール:[email protected]紹介者:Google
1. あなた、誰?紹介状もらってきて。メアドも忘れずに。
2. 紹介状書いてください。
3. はい、どうぞ。
有栖さん
4. はい、紹介状。
氏名:有栖和歌子メール:[email protected]紹介者:Google
公証人
伊部さん
1. あなた、誰?自分の家の合鍵をください。そしたら、あなただと認めましょう。
2. 合鍵をください。
3. はい、どうぞ。
有栖さん
4. はい、合鍵です。
図2 OAuthで身元確認もどきをする場合
伊部さん
マンション管理人
図3 OpenID Connectの場合
鍵作製:2011/5/15 11:00:04認証レベル:2確認者:Google
1. あなた、誰?紹介状もらってきて。メアドも忘れずに。 2. 伊部さんにロッカーの
鍵と紹介状を渡して。
3. はい、どうぞ。
有栖さん
4. はい、どうぞ。
鍵作製:2011/5/15 11:00:04認証レベル:2確認者:Google
執事
伊部さん
ロッカー ロッカー
図 4 OpenID Connectのクレーム集約、分散クレーム
氏名:有栖和歌子生年月日:平成元年3月3日性別:女住所:千代田区1-3-5
伊部さん
ロッカー
UserInfo Endpoint
サイトX
サイトYサイトZ
プロトコル内容
Connect Endpoints
• Authorization Endpoint (OAuth 2.0)
• Token Endpoint (OAuth2.0)
• Introspection Endpoint
• UserInfo Endpoint
• Registration Endpoint
• Session Management Endpoint
Authorization Endpoint
• OAuth2.0 ( + id_token if response_type=token)• Id_token
– Opaque String : Introspection Endpoint に投げると以下のものが返る。(← Standard では、JWTを要求)
{
"iss": "http://server.example.com",
"user_id": "248289761001",
"aud": "http://client.example.net",
"exp": 1311281970
}
Token Endpoint
• OAuth2.0 + id_token
• Id_tokenは前述のとおり。
Introspection Endpoint
Id_tokenの内容を返す。
• Request– Id_token
• Response– Iss
– user_id
– aud
– Exp
– Iso29115
– Nonce
– issued_to
UserInfo Endpoint
Request
• access_token
• schema
access_tokenは基本的にheader に記載する。
Response
• Id, name, given_name, family_name, middle_name, nickname, profile, picture, website, email, verified, gender, birthday, zoneinfo, locale, phone_umber, address, updated_time, openid2
• ユーザ情報(過去のIdentifierも)を返す。
Lite Authz Request
https://server.example.com/authorize?
response_type=token
&client_id=s6BhdRkqt3
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
&scope=openid%20PPID
&state=af0ifjsldkj
Lite Authz Response
HTTP/1.1 302 Found
Location: https://client.example.com/
#access_token=SlAV32hkKG
&id_token=asdfjlw.sjfkowkd.hwlekr
&expires_in=3600
&state=af0ifjsldkj
Standardの追加分
• response_type=code をサポート
• “request”, “request_uri”
–署名付きリクエスト、複雑なclaimリクエストを可能に。
• UserInfo Response の大幅な拡張
OpenID Request Object
{"userinfo":
{"claims":{
"name": null,"nickname": {"optional": true},"email": null,"verified": null,"picture": {"optional": true},
},"format": "signed"
}"id_token":
{"claims":{"auth_time": null}
"max_age": 86400,"iso29115": "2"
}}
OpenID Claims Object
{"name": "Jane Doe""given_name": "Jane","family_name": "Doe","email": "[email protected]","picture": "http://example.com/janedoe/me.jpg","_claim_names": {"birthday": "src1","eye_color": "src1","payment_info": "src2","shipping_address": "src2","credit_score": "src3"
},"_claim_sources": {
"src1": {"JWT": "JWT_header.JWT_part2.JWT_part3"},"src2": {
"endpoint": “https://m.example.com/”},"src3": {
"endpoint": "https://credit.example.com/cshere","access_token": "ksj3n283dke”
}}
}
NormalClaims
Claims Pointers
Aggr.Claims
Dist. Claims
署名付きなので、キャッシュされていても正統性を保証
できる。
OUTLOOK~展望
まとめに代えて
(source) Dale Old’s virtualsoul
Chuck Mortimore, Salesforce
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM
api economy
big data
personal data
identity
OpenID Connect は、
複数の主体に分散したAPIを
有機的に接続して
API Economy を動かしてゆくための
Claim Centric Framework
Working Together
AB/Connect WG
• Connect Interop – 9/12 (@OpenID Summit Microsoft Mountain View)
• Connect Technical Overview Summit (@Microsoft Mountain View)
• Official Launch – 10/17 (@iiw)
• OpenID Summit APAC – 12/1
connect