oauth & openid connect 入門のための入門

12
© 2015 Takashi Yahata (@ paoneJP) OAuth & OpenID Connect 入門のための入門 Takashi Yahata - @paoneJP 2015/7/31 2015/7/31 1

Upload: takashi-yahata

Post on 17-Aug-2015

243 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

OAuth & OpenID Connect

入門のための入門

Takashi Yahata - @paoneJP

2015/7/31

2015/7/31 1

Page 3: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP) 2015/7/31 3

OpenID Connect って何?

Page 4: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

トラディッショナルなアプリ連携

2015/7/31 4

ファイアウォールの中で組織内の人が

組織内のPCで組織内のアプリ同士が連携して

Page 5: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP) 2015/7/31 5

イマドキなアプリ連携

インターネットのあらゆるところから

正規のユーザーも、そうでない人も

いろんなデバイスを使って

3rd party のアプリと連携して

Page 6: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

3rd party アプリにあなたの認証情報を渡してアプリを利用

3rd party アプリは 「あなたの権限」 で 「すべての機能」 を実行可能

3rd party アプリの利用停止はパスワードの変更で

もちろんパスワードを設定した全アプリの変更対応が必要

OAuthがないとき

2015/7/31 6

Page 7: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

3rd party アプリがあなたに成り代わって機能を使うとき

あなたに 「必要な権限」 の同意を取って

機能にアクセスするためのトークンを受け取って

必要な機能を利用する

3rd party アプリの利用停止は、トークンを失効することで、アプリごとに停止ができる

OAuthがあるとき

2015/7/31 7

Page 8: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

OAuth では、ほとんどの実装で Bearer Token (無記名トークン) を使用。

OAuth で認証、という実装は、Bearer Token でユーザー情報が取れるAPIにアクセスして、情報が取れれば認証OKとするもの。

トークンの盗用、トークンの再利用を防げなければ、安全には使えない。

OAuthで認証する?え?

2015/7/31 8

Page 9: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

OAuth2.0 のフローを使って

認証結果に関する情報を含む

発行者の検証ができる

IDトークンを取得して

認証連携を実現する

OAuth2.0 + Identity Layer = OpenID Connect

2015/7/31 9

{"kid": "1e9gdk7","alg": "RS256"}{"iss": "http://server.example.com","sub": "248289761001","aud": "s6BhdRkqt3","nonce": "n-0S6_WzA2Mj","exp": 1311281970,"iat": 1311280970,"at_hash": "77QmUPtjPfzWtF2AnpK9RQ"}[signature]

eyJraWQiOiIxZTlnZGs3IiwiYWxnIjoiUlMyNTYifQ.ewogImlzcyI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZfV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5NzAsCiAiYXRfaGFzaCI6ICI3N1FtVVB0alBmeld0RjJBbnBLOVJRIgp9.F9gRev0Dt2tKcrBkHy72cmRqnLdzw9FLCCSebV7mWs7o_sv2O5s6zMky2kmhHTVx9HmdvNnx9GaZ8XMYRFeYk8L5NZ7aYlA5W56nsG1iWOou_-gji0ibWIuuf4Owaho3YSoi7EvsTuLFz6tq-dLyz0dKABMDsiCmJ5wqkPUDTE3QTXjzbUmOzUDli-gCh5QPuZAq0cNW3pf_2n4zpvTYtbmj12cVcxGIMZby7TMWESRjQ9_o3jvhVNcCGcE0KAQXejhA1ocJhNEvQNqMFGlBb6_0RxxKjDZ-Oa329eGDidOvvp0h5hoES4a8IuGKS7NOcpp-aFwp0qVMDLI-Xnm-Pg

Page 10: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

http://datatracker.ietf.org/wg/oauth/documents/

RFC6749 The OAuth 2.0 Authorization Framework

RFC6750 The OAuth 2.0 Authorization Framework: Bearer Token Usage

OAuthを学ぶ

2015/7/31 10

Page 11: OAuth & OpenID Connect 入門のための入門

© 2015 Takashi Yahata (@paoneJP)

http://openid.net/developers/specs/

OpenID Connect Core 1.0

http://datatracker.ietf.org/wg/oauth/documents/

RFC7519 JSON Web Token (JWT)

http://datatracker.ietf.org/wg/jose/documents/

Cryptography

PublicKey, Hash, …

OpenID Connectを学ぶ

2015/7/31 11