Top Banner
Connect Nat Sakimura (@_nat)
44

OpenID Connect - Nat Sakimura at OpenID TechNight #7

Jun 30, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Connect

Nat Sakimura (@_nat)

Page 2: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Are you…

SaaS Provider like Salesforce / Azure / Google

End User Enterprise / Companies.

Geeks

Page 3: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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%

Page 4: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Working Together

AB/Connect WG

Page 5: OpenID Connect - Nat Sakimura at OpenID TechNight #7

設計方針

簡単なことは簡単に

複雑なことも可能に

モジュラー・デザイン

Page 6: OpenID Connect - Nat Sakimura at OpenID TechNight #7

簡単なことは簡単に

標準化された UserInfo APIを通じたシンプルな “Connect” 機能

モバイル環境のサポート

Page 7: OpenID Connect - Nat Sakimura at OpenID TechNight #7

どうやって簡単に?

• OAuth 2.0ベース

• JSONの活用

• JSON Web Token (JWT) claims 形式

• Goal: 全ての現代的なWebプラットフォームで容易に実装できること

Page 8: OpenID Connect - Nat Sakimura at OpenID TechNight #7

複雑なことも可能に

幅広いセキュリティレベルへの対応

Claims 集約

分散 Claims

Page 9: OpenID Connect - Nat Sakimura at OpenID TechNight #7

幅広いセキュリティレベルへの対応

LoA1

LoA2

LoA3LoA4

Increasing Level of Assurance →

Page 10: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Claims 集約

Data Source

Data Source

IdPRelyingParty

Signed Claims

Page 11: OpenID Connect - Nat Sakimura at OpenID TechNight #7

分散Claims

Data Source

Data Source

Data Source

IdPRelyingParty

Permission

Signed Claims

Better scalability, etc.

Page 12: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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

Page 13: OpenID Connect - Nat Sakimura at OpenID TechNight #7

WHY NOT JUST OAUTH 2.0?

http://www.sakimura.org/2011/05/1087/

Page 14: OpenID Connect - Nat Sakimura at OpenID TechNight #7

図1 OpenID認証(身元確認)の場合

氏名:有栖和歌子メール:[email protected]紹介者:Google

1. あなた、誰?紹介状もらってきて。メアドも忘れずに。

2. 紹介状書いてください。

3. はい、どうぞ。

有栖さん

4. はい、紹介状。

氏名:有栖和歌子メール:[email protected]紹介者:Google

公証人

伊部さん

Page 15: OpenID Connect - Nat Sakimura at OpenID TechNight #7

1. あなた、誰?自分の家の合鍵をください。そしたら、あなただと認めましょう。

2. 合鍵をください。

3. はい、どうぞ。

有栖さん

4. はい、合鍵です。

図2 OAuthで身元確認もどきをする場合

伊部さん

マンション管理人

Page 16: OpenID Connect - Nat Sakimura at OpenID TechNight #7

図3 OpenID Connectの場合

鍵作製:2011/5/15 11:00:04認証レベル:2確認者:Google

1. あなた、誰?紹介状もらってきて。メアドも忘れずに。 2. 伊部さんにロッカーの

鍵と紹介状を渡して。

3. はい、どうぞ。

有栖さん

4. はい、どうぞ。

鍵作製:2011/5/15 11:00:04認証レベル:2確認者:Google

執事

伊部さん

ロッカー ロッカー

Page 17: OpenID Connect - Nat Sakimura at OpenID TechNight #7

図 4 OpenID Connectのクレーム集約、分散クレーム

氏名:有栖和歌子生年月日:平成元年3月3日性別:女住所:千代田区1-3-5

伊部さん

ロッカー

UserInfo Endpoint

サイトX

サイトYサイトZ

Page 18: OpenID Connect - Nat Sakimura at OpenID TechNight #7

プロトコル内容

Page 19: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Connect Endpoints

• Authorization Endpoint (OAuth 2.0)

• Token Endpoint (OAuth2.0)

• Introspection Endpoint

• UserInfo Endpoint

• Registration Endpoint

• Session Management Endpoint

Page 20: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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

}

Page 21: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Token Endpoint

• OAuth2.0 + id_token

• Id_tokenは前述のとおり。

Page 22: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Introspection Endpoint

Id_tokenの内容を返す。

• Request– Id_token

• Response– Iss

– user_id

– aud

– Exp

– Iso29115

– Nonce

– issued_to

Page 23: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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も)を返す。

Page 24: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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

Page 25: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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

Page 26: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Standardの追加分

• response_type=code をサポート

• “request”, “request_uri”

–署名付きリクエスト、複雑なclaimリクエストを可能に。

• UserInfo Response の大幅な拡張

Page 27: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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"

}}

Page 28: OpenID Connect - Nat Sakimura at OpenID TechNight #7

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

署名付きなので、キャッシュされていても正統性を保証

できる。

Page 29: OpenID Connect - Nat Sakimura at OpenID TechNight #7

OUTLOOK~展望

まとめに代えて

Page 30: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(source) Dale Old’s virtualsoul

Chuck Mortimore, Salesforce

Page 31: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 32: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 33: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 34: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 35: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 36: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 37: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 38: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 39: OpenID Connect - Nat Sakimura at OpenID TechNight #7

(Source) Chuck Mortimore (Salesforce), “Open, Mobile, Social”, Cloud Identity Summit 2011 Proceedings http://bit.ly/pBXcgM

Page 40: OpenID Connect - Nat Sakimura at OpenID TechNight #7

api economy

big data

personal data

identity

Page 41: OpenID Connect - Nat Sakimura at OpenID TechNight #7

OpenID Connect は、

複数の主体に分散したAPIを

有機的に接続して

API Economy を動かしてゆくための

Claim Centric Framework

Page 42: OpenID Connect - Nat Sakimura at OpenID TechNight #7

Working Together

AB/Connect WG

Page 43: OpenID Connect - Nat Sakimura at OpenID TechNight #7

• 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

Page 44: OpenID Connect - Nat Sakimura at OpenID TechNight #7

connect