OpenID Connect - Nat Sakimura at OpenID TechNight #7

15,991 views

Published on

Published in: Technology, News & Politics

OpenID Connect - Nat Sakimura at OpenID TechNight #7

  1. 1. ConnectNat Sakimura (@_nat)
  2. 2. Are you… SaaS Provider likeSalesforce / Azure / Google End User Enterprise / Companies. Geeks
  3. 3. QuestionsTo SaaS Providers:• RESTful Architecture 100%• SOAP? 0%Enterprize / Companies• Want to get connected to SaaS Providers?• Want to be your own IdP?Geeks• RESTful? 100%• SOAP? 0%• WS-*? 0%
  4. 4. Working TogetherAB/Connect WG
  5. 5. 設計方針簡単なことは簡単に複雑なことも可能にモジュラー・デザイン
  6. 6. 簡単なことは簡単に標準化された UserInfo APIを通じた シンプルな “Connect”機能モバイル環境のサポート
  7. 7. どうやって簡単に?• OAuth 2.0ベース• JSONの活用• JSON Web Token (JWT) claims 形式• Goal: 全ての現代的なWebプラットフォームで 容易に実装できること
  8. 8. 複雑なことも可能に幅広いセキュリティレベルへの対応Claims 集約分散 Claims
  9. 9. 幅広いセキュリティレベル への対応 LoA4 LoA3 LoA2LoA1 Increasing Level of Assurance →
  10. 10. Claims 集約 Data DataSource SourceSigned Claims RelyingIdP Party
  11. 11. 分散Claims Data Data DataSource Source Source Signed Claims Permission RelyingIdP Party Better scalability, etc.
  12. 12. 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
  13. 13. WHY NOT JUST OAUTH 2.0? http://www.sakimura.org/2011/05/1087/
  14. 14. 図1 OpenID認証(身元確認)の場合 1. あなた、誰?紹介状 もらってきて。メアドも 忘れずに。 2. 紹介状書いてください。 公証人 4. はい、紹介状。 3. はい、どうぞ。 伊部さん 有栖さん 氏名:有栖和歌子 氏名:有栖和歌子 メール:alice@example.com メール:alice@example.com 紹介者:Google 紹介者:Google
  15. 15. 図2 OAuthで身元確認もどきをする場合 1. あなた、誰?自分の家の 合鍵をください。そしたら、 あなただと認めましょう。 2. 合鍵をください。 マンション管理人 4. はい、合鍵です。 3. はい、どうぞ。伊部さん 有栖さん
  16. 16. 図3 OpenID Connectの場合 1. あなた、誰?紹介状 もらってきて。メアドも 忘れずに。 2. 伊部さんにロッカーの 鍵と紹介状を渡して。 執事 4. はい、どうぞ。 3. はい、どうぞ。伊部さん 有栖さん ロッカー 鍵作製:2011/5/15 11:00:04 ロッカー 鍵作製:2011/5/15 11:00:04 認証レベル:2 認証レベル:2 確認者:Google 確認者:Google
  17. 17. 図 4 OpenID Connectのクレーム集約、分散クレーム UserInfo Endpoint ロッカー 氏名:有栖和歌子 生年月日:平成元年3月3日 性別:女 住所:千代田区1-3-5 伊部さん サイトX サイトY サイトZ
  18. 18. プロトコル内容
  19. 19. Connect Endpoints• Authorization Endpoint (OAuth 2.0)• Token Endpoint (OAuth2.0)• Introspection Endpoint• UserInfo Endpoint• Registration Endpoint• Session Management Endpoint
  20. 20. 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}
  21. 21. Token Endpoint• OAuth2.0 + id_token• Id_token は前述のとおり。
  22. 22. Introspection EndpointId_tokenの内容を返す。• Request • Response – Id_token – Iss – user_id – aud – Exp – Iso29115 – Nonce – issued_to
  23. 23. UserInfo Endpoint• ユーザ情報(過去のIdentifierも)を返す。Request Response• access_token • Id, name, given_name,• schema family_name, middle_name, nickname, profile, picture, website, email, verified,access_token は基本的に gender, birthday, zoneinfo,header に記載する。 locale, phone_umber, address, updated_time, openid2
  24. 24. Lite Authz Requesthttps://server.example.com/authorize?response_type=token&client_id=s6BhdRkqt3&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb&scope=openid%20PPID&state=af0ifjsldkj
  25. 25. Lite Authz ResponseHTTP/1.1 302 FoundLocation: https://client.example.com/#access_token=SlAV32hkKG&id_token=asdfjlw.sjfkowkd.hwlekr&expires_in=3600&state=af0ifjsldkj
  26. 26. Standardの追加分• response_type=code をサポート• “request”, “request_uri” – 署名付きリクエスト、複雑なclaimリクエストを可能 に。• UserInfo Response の大幅な拡張
  27. 27. 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" }}
  28. 28. OpenID Claims Object{ "name": "Jane Doe" "given_name": "Jane", "family_name": "Doe", Normal "email": "janedoe@example.com", Claims "picture": "http://example.com/janedoe/me.jpg", "_claim_names": { "birthday": "src1", "eye_color": "src1", Claims "payment_info": "src2", 署名付きなので、キャッシュ "shipping_address": "src2", Pointers されていても正統性を保証 "credit_score": "src3" できる。 }, Aggr. "_claim_sources": { "src1": {"JWT": "JWT_header.JWT_part2.JWT_part3"}, Claims "src2": { "endpoint": “https://m.example.com/” }, "src3": { Dist. "endpoint": "https://credit.example.com/cshere", Claims "access_token": "ksj3n283dke” } }}
  29. 29. OUTLOOK~展望まとめに代えて
  30. 30. Chuck Mortimore, Salesforce (source) Dale Old’s virtualsoul
  31. 31. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  32. 32. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  33. 33. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  34. 34. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  35. 35. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  36. 36. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  37. 37. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  38. 38. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  39. 39. (Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, CloudIdentity Summit 2011 Proceedings http://bit.ly/pBXcgM
  40. 40. api economy big datapersonal data identity
  41. 41. OpenID Connect は、 複数の主体に分散したAPIを 有機的に接続してAPI Economy を動かしてゆくための Claim Centric Framework
  42. 42. Working TogetherAB/Connect WG
  43. 43. • 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
  44. 44. connect

×