OAuth認証再考からのOpenID Connect #devlove
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

OAuth認証再考からのOpenID Connect #devlove

on

  • 1,942 views

 

Statistics

Views

Total Views
1,942
Views on SlideShare
1,463
Embed Views
479

Actions

Likes
13
Downloads
14
Comments
0

4 Embeds 479

http://d.hatena.ne.jp 333
http://www.openid.or.jp 119
https://twitter.com 26
http://openid.or.jp 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

OAuth認証再考からのOpenID Connect #devlove Presentation Transcript

  • 1. OAuth認証再考からの OpenID Connect @nov
  • 2. Nov Matake OpenID Foundation Japan Evangelist 初号機 OAuth.jp Idcon Rubyist fb_graph, rack-oauth2, openid_connect etc.
  • 3. 「○○ ID でログイン」
  • 4. ユーザー登録めんどくさい
  • 5. 複数サイトで共通のパスワード
  • 6. 「○○ ID でログイン」
  • 7. OpenID / OAuth
  • 8. http://janrain.com/blog/social-login-trends-across-the-web-for-q3-2013/
  • 9. OAuth 認証 … って言うな …
  • 10. 定義: OAuth 認証 外部サービスが提供する OAuth 1.0/2.0 ベースの “Proprietary” な Profile API を 使ってユーザー認証を行うこと。
  • 11. Proprietary
  • 12. GET /me のところを差し替え ると他の ID Provider も使える
  • 13. THE
  • 14. OAuth 認証の落とし穴
  • 15. GET /me User Info :
  • 16. Weak Point GET /me User Info :
  • 17. Weak Point Token Replace GET /me User Info :
  • 18. Weak Point Token Replace GET /me Different User Data User Info :
  • 19. 4者目がいる時は注意 !! GET /me User Info :
  • 20. 見ず知らずの他アプリ向けの Tokenを受けいれてはならない
  • 21. GET /me User Info Another Proprietary GET /app App ID
  • 22. 4 API Request 毎ログインごとに GET /oauth/authorize POST /oauth/token GET /app GET /me
  • 23. ♥ OpenID Connect OAuth 2.0 + Standardised Identity Layer #MA7 Mashup Caravan & Meetup in Kyoto
  • 24. ID Token User Info API
  • 25. ID Token 認証イベントのアサーション (JSON Web Token) iss – Issuer sub – Subject, End-user Identifier aud – Audience, Client ID iat - issued at exp - expiry
  • 26. 誰が (issuer = IdP) 誰を (subject = end-user) 誰のために (audience = client) 認証したのか
  • 27. ID Token Verification Verify Signature (RSA-SHA256 etc.) Verify Claims iss => Expected IdP ? aud => Own Client ID ? iat => Within X mins ? exp => Future ? Get “sub”
  • 28. ID Token User Info API
  • 29. ID Token ID Token さえあれば認証可能 User Info API
  • 30. UserInfo API OAuth 2.0 対応の API Endpoint レスポンスフォーマット標準化 ID 連携に必要なプロフィールデータは割と似てる User ID, 氏名, ニックネーム, 生年月日, 住所 etc. 登録時だけ利用 ?
  • 31. Discovery & Dynamic Registration
  • 32. User Centric means Dynamic
  • 33. developers.facebook.com でアプリ登録 client_id & client_secret をアプリに埋め込む 必要な API Endpoint とレスポンスフォーマットも API Document 読んで把握
  • 34. developers.facebook.com でアプリ登録 client_id & client_secret をアプリに埋め込む 全部自動化 必要な API Endpoint とレスポンスフォーマットも API Document 読んで把握
  • 35. Discovery WebFinger (RFC 7033) GET /.well-known/webfinger?resource=*** OpenID Connect をサポートしてるかどうか OP Config GET /.well-known/openid-configuration OpenID Connect の各 endpoint 等
  • 36. Dynamic Registration Client Registration Endpoint (Discoverable) Standardised Client Metadata redirect_uris, response_types, grant_types, application_type, client_name, logo_uri etc.
  • 37. Harder Things? slideshare.net/nat_sakimura/open-idspecificationsworkupdatetokyo2011
  • 38. twitter.com/nov slideshare.net/matake github.com/nov openid-foundation-japan.github.com