openid connect 101 @ openid technight vol.11

55
Copyright 2013 OpenID Foundation Japan - All Rights Reserved. OpenID Connect 101

Upload: nov-matake

Post on 18-Nov-2014

4.600 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

♥OpenID Connect 101

Page 2: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Nov Matake

OpenID Foundation Japan

Evangelist 初号機

翻訳WG Leader

OAuth.jp

Idcon

Rubyist

fb_graph, rack-oauth2, openid_connect etc.

Page 3: OpenID Connect 101 @ OpenID TechNight vol.11

池澤あやかと学ぼう! はじめてのOAuthとOpenID Connect

Page 4: OpenID Connect 101 @ OpenID TechNight vol.11
Page 5: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

パスワード漏洩例

Page 6: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

パスワードリストアタック被害例

…next ?

Page 7: OpenID Connect 101 @ OpenID TechNight vol.11
Page 8: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

2段階認証

有効化する人1%以下 + 75%は2週間でやめる

Page 9: OpenID Connect 101 @ OpenID TechNight vol.11

リスクベース認証

Page 10: OpenID Connect 101 @ OpenID TechNight vol.11
Page 11: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Page 12: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

セキュリティ専任スタッフが100人未満しかいないサービスにパスワードを預けるのは、自殺行為である。

Eric Sachs, Google

Page 13: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

パスワード、ちゃんとハッシュ化してる?

まさかパスワード数字だけなんてことは…

定期的にメールアドレス生存確認してる?

あやしいユーザー行動、常に監視してる?

2段階認証提供すれば、後はユーザー責任?

Page 14: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

御社はどうですか?

Page 15: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Page 16: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

「○○ ID でログイン」http://klout.com

Page 17: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

v.s

Page 18: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Page 19: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved. https://developers.facebook.com/products/login/

Page 20: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Page 21: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

♥OpenID Connect

OAuth 2.0 + Identity Layer

Page 22: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Page 23: OpenID Connect 101 @ OpenID TechNight vol.11
Page 24: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

2011~

Page 25: OpenID Connect 101 @ OpenID TechNight vol.11
Page 26: OpenID Connect 101 @ OpenID TechNight vol.11

ID Provider 向け

Page 27: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Basic Client Implementation Guide +

Implicit Client Implementation Guide

Page 28: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Basic Client Implementer's Guide 1.0 は, OAuth 2.0 Code Flow を利用して Web ベースの Relying Party を実装する為の実装ガイド

Implicit Client Implementer's Guide 1.0 は, OAuth 2.0 Implicit Flowを利用してWebベースの Relying Party を実装する為の実装ガイド

翻訳済 → http://j.mp/openid-trans

Page 29: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Basic Client

Page 30: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Implicit Client

Page 31: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Code Flow - OpenID ConnectRelying Party OpenID Provider

Initiate

Request Authorization

Authorization Code

Authorization Code

Access Token + ID Token

End User

Authenticate & Authorize

Page 32: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Code Flow - OpenID ConnectRelying Party OpenID Provider

Initiate

Request Authorization

Authorization Code

Authorization Code

Access Token + ID Token

End User

Authenticate & Authorize

Page 33: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Code Flow - OpenID ConnectRelying Party OpenID Provider

Initiate

Request Authorization

Authorization Code

Authorization Code

Access Token + ID Token

End User

Authenticate & Authorizeclient_id=...& response_type=code& redirect_uri=https://...& scope=openid+email

Page 34: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Code Flow - OpenID ConnectRelying Party OpenID Provider

Initiate

Request Authorization

Authorization Code

Authorization Code

Access Token + ID Token

End User

Authenticate & Authorize

Page 35: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Code Flow - OpenID ConnectRelying Party OpenID Provider

Initiate

Request Authorization

Authorization Code

Authorization Code

Access Token + ID Token

End User

Authenticate & Authorize

Page 36: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Code Flow - OpenID ConnectRelying Party OpenID Provider

Initiate

Request Authorization

Authorization Code

Authorization Code

Access Token + ID Token

End User

Authenticate & Authorize

code=...& client_id=...& client_secret=...& grant_type=authorization_code& redirect_uri=https://...

Page 37: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

OpenID Connect =

OAuth 2.0 + Identity Layer

Page 38: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

OpenID Connect Scopes

openid → OpenID Connect Request を明示

profile → 氏名, ニックネーム, プロフィール画像 etc.

email → メールアドレス, 検証済 Flag

address → 住所

phone → 電話番号, 検証済 Flag

offline_access → Refresh Token 取得用

Page 39: OpenID Connect 101 @ OpenID TechNight vol.11

ID Token

Page 40: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

ID Token - 署名アルゴリズム

公開鍵暗号 (RSA-SHA256 etc)

OpenID Provider の公開鍵で署名検証

Native App に秘密鍵埋め込まなくても OK

共通鍵暗号 (HMAC-SHA256 etc)

公開鍵暗号が苦手なエンジニア多い?

でも Native App だと秘密鍵漏れちゃう…

Page 41: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

ID Token - 認証イベントMetadata

誰が (issuer = OpenID Provider)

誰を (subject = End-User)

誰のために (audience = Relying Party)

いつ (Issued At)

認証したのか

Page 42: OpenID Connect 101 @ OpenID TechNight vol.11
Page 43: OpenID Connect 101 @ OpenID TechNight vol.11

検証方法は翻訳ドキュメントを

Page 44: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

UserInfo API

Standardized JSON Format

Page 45: OpenID Connect 101 @ OpenID TechNight vol.11
Page 46: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

OpenID Connect Discovery

Page 47: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Developerサイト読まなくても 必要なエンドポイント情報等

すべて分かる

Page 48: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

GET /.well-known/webfinger

Page 49: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

GET /.well-known/openid-configuration

Page 50: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

OpenID Connect Dynamic Client Registration

Page 51: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Developerサイトのフォームから アプリ (=Client) 登録しなくても

動的にClient登録できる

Page 52: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Page 53: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Static Client Registration

Page 54: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

Dynamic Client Registration

Page 55: OpenID Connect 101 @ OpenID TechNight vol.11

Copyright 2013 OpenID Foundation Japan - All Rights Reserved.

openid-foundation-japan.github.io

slideshare.net/matake

github.com/nov

twitter.com/nov