Submit Search
なぜOpenID Connectが必要となったのか、その歴史的背景
•
93 likes
•
50,720 views
Tatsuo Kudo
Follow
Prepared for #DevLOVE http://devlove.doorkeeper.jp/events/7419
Read less
Read more
1 of 36
Download now
Downloaded 503 times
More Related Content
なぜOpenID Connectが必要となったのか、その歴史的背景
1.
なぜOpenID Connectが必要となったのか その歴史的背景 工藤達雄 OpenIDファウンデーション・ジャパン
2.
自己紹介 工藤達雄 http://www.linkedin.com/in/tatsuokudo,
@tkudos サン・マイクロシステムズ (1998~2008) https://blogs.oracle.com/tkudo 野村総合研究所 (2008~) OpenIDファウンデーション・ジャパン (2013~) http://openid.or.jp/blog Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
3.
Webアプリケーションのユーザー認証 誰? 1 2 3 4 6 7 8 ○○です (ID/パスワードなど) Copyright © 2013
OpenID Foundation Japan. All Rights Reserved. 5
4.
SSO (エスエスオー; Single Sign-On) 誰? 1 2 7 8 3 4 6 ○○です 9 10 Copyright
© 2013 OpenID Foundation Japan. All Rights Reserved. 5
5.
複数アイデンティティ・リポジトリ間のSSO Copyright © 2013
OpenID Foundation Japan. All Rights Reserved.
6.
方法その1: クライアント側ががんばる 誰? ○○です 1 ロック解除 2 4 3 5 6 7 △△です Copyright ©
2013 OpenID Foundation Japan. All Rights Reserved.
7.
方法その2: クレデンシャルを横取り 誰? △△です 1 2 3 6 4 △△です Copyright ©
2013 OpenID Foundation Japan. All Rights Reserved. 5
8.
方法その3: アイデンティティ連携 1 6 2 3 4 誰? △△です Copyright ©
2013 OpenID Foundation Japan. All Rights Reserved. 5
9.
SAML (サムル; Security Assertion
Markup Language) アイデンティティ情報を安全に 流通させるためのXML形式 および通信仕様 ID連携を実現する主要要素を 4つに分解 「アサーション」「プロトコル」 「バインディング」「プロファイル」 Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. Profile 特定のユースケース(SSOなど)を実現するうえでの、アサー ション、プロトコル、バインディングの組み合わせを規定。 Binding リクエストおよびレスポンスの手続きを、実際にIdPとRP の間でどのように実施するか規定。直接通信(SOAP)や、 ユーザエージェントを介在させるHTTPリダイレクト通信な どが存在。 Protocol アサーションの送受信を実施するためのリクエストお よびレスポンスの手続き。 Assertion ユーザのID名や認証方法およびそのユーザの属 性や権限に関する表明。 8
10.
SAMLのコアは「アサーション」 <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0"
IssueInstant="2005-0131T12:00:00Z"> <saml:Issuer>www.example.com</saml:Issuer> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress">
[email protected]
</saml:NameID> </saml:Subject> <saml:Conditions NotBefore="2005-01-31T12:00:00Z" NotOnOrAfter="2005-0131T12:30:00Z"></saml:Conditions> <saml:AuthnStatement AuthnInstant="2005-01-31T12:00:00Z" SessionIndex="0"> <saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport </saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> </saml:Assertion> Source: Federated Identity Management http://www.xmlgrrl.com/publications/177-maler-fed-id.html Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 9
11.
Liberty Alliance Source:リバティ・アライアンスの取組みについて http://www.kantei.go.jp/jp/singi/it2/nextg/meeting/dai7/siryou4.pdf Source: Web2.0時代のアイデンティティ関連技術と
OpenID http://www.slideshare.net/schee/t2 Source: 高橋健司. "アイデンティティ管理の現状と今後." 信学誌 92.4 (2009): 287-294. http://ieice.or.jp/jpn/books/kaishikiji/2009/200904.pdf Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 10
12.
SAML 2.0 (aka Liberty
ID-FF (Identity Federation Framework)) Source:第一回Liberty Alliance技術セミナー資料 Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 11
13.
Liberty ID-WSF (アイデンティティWebサービス・フレームワーク) Source: クラウド間連携へ向けてのアイデンティティ管理技術
カンターラ・イニシアティブ概要と技術標準化の動向 https://itmedia.smartseminar.jp/static/upload/itmedia.smartseminar.jp/seminar/110/shared/pdf/Com-3.pdf Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 12
14.
ID-WSFが目指していたもの Source:リバティ・アライアンスの取組みについて http://www.kantei.go.jp/jp/singi/it2/nextg/meeting/dai7/siryou4.pdf Copyright ©
2013 OpenID Foundation Japan. All Rights Reserved.
15.
ID-WSFのシーケンス Source: Liberty Alliance
ID-WSF2.0 仕様 について http://www.slideshare.net/hiroki/080620-identity-conference-2-hiroki Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 14
16.
ID-WSFのシーケンス (cont.) Source: Liberty
Alliance ID-WSF2.0 仕様 について http://www.slideshare.net/hiroki/080620-identity-conference-2-hiroki Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 15
17.
けっきょくID-WSFは普及しなかった 一言で言うと「やりすぎ」 サービス仕様まで定義しようとした
ついていけないので普及が進まない → 普及が進まな いので流行らない → 流行ってないのでついていかな い → (以下繰り返し) Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
18.
SAMLは「事前の信頼関係に基づく連携」 ID情報をどこに提供 するかを事前に設定 リライング・パーティ (RP) アイデンティティ・ プロバイダ (IdP) ID情報をどこから入手す るかを事前に設定 4 2 1 3 3. ユーザ認証 1.
サービスにアクセス 2. 事前設定した IdP からの ID 情報の取得を要求 4. IdP から得た ID 情報を提示 Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
19.
“Identity 2.0” Source: Identity
2.0 Keynote http://youtu.be/RrpajcAgR1E Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
20.
“The Laws of
Identity” Source: IdentityBlog - Digital Identity, Privacy, and the Internet's Missing Identity Layer http://www.identityblog.com/?p=1065 Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
21.
「ユーザーセントリック・アイデンティティ」 ユーザーがコンテクストに応じて決める どのIDを使うか(名乗るか)
どの属性を連携するか … Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
22.
OpenID Source: brad's life
- OpenID http://brad.livejournal.com/2120086.html Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
23.
OpenIDとは OpenIDにおけるIDとはURLのことである。 End
Userは自分のClaimed IdentifierをConsumerに対して認証してくれるIdP に加入していなければならない。 End UserはどのIdPに加入していても良く、ConsumerはいずれのIdPであっ ても協調してEnd UserのClaimed Identifierの認証手続きを行わなければなら ない。 IdPがConsumerに対して認証するのはEnd UserのClaimed Identifier、即ち URLが、End Userが確かに所有しているかどうかということである。 Source: OpenIDの仕様と技術(1):仕様から学ぶOpenIDのキホン (3/3) - @IT http://www.atmarkit.co.jp/ait/articles/0707/06/news135_3.html Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 22
24.
OpenIDはサービス同士の連携を「ユーザ」が決定 XRDS サービス 2. XRDS文書を取得し、 IdPを発見 リライング・ パーティ(RP) アイデンティティ・ プロバイダ (IdP) 3.
RP が動的に 信頼関係を確立 6 4 1 5 5. ユーザ認証と ID情報の提供 4. XRDSにより決定されたIdP からの ID 情報の取得を要求 6. IdP から得た ID 情報を提示 Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 1. サービスに「利用する XRDS」 を明示してアクセス
25.
OpenIDをAPIのアクセス認可にも使えないか? We want
something like Flickr Auth / Google AuthSub / Yahoo! BBAuth, but published as an open standard, with common server and client libraries, etc. The trick with OpenID is that the users no longer have passwords, so you can’t use basic auth for API calls without requiring passwords (defeating one of the main points of OpenID) or giving cut-and-paste tokens (which suck). -- Blaine Cook, April 5th, 2007 Source: History « hueniverse http://hueniverse.com/oauth/guide/history/ Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
26.
OAuth I CAN HAD
OPEN: OAuth First Summit a Hit! « hueniverse http://hueniverse.com/2008/07/i-can-had-open-oauth-first-summit-a-hit/ Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
27.
そこかしこでOAuthが使われるように ユーザー認証に使うケースも OAuth+OpenIDよりも、OAuth+独自ユーザー認証APIのほ うが提供しやすい
さらに発展 OAuth WRAP → OAuth 2.0へ Facebookも乗ってきた Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
28.
OpenID < OAuth Source:
Google Trends - Web Search interest: openid, oauth - Worldwide, 2004 - present http://goo.gl/2M2MJp Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 27
29.
「 (旧) OpenID
Connect」 Source: FactoryCity » OpenID Connect http://factoryjoe.com/blog/2010/01/04/openid-connect/ Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. Source: OpenID Connect http://web.archive.org/web/20100726233101/http://openidconnect.com/
30.
OpenID 2.0の課題 「OP/RP間の設定をもっとかんたんに、 もしくは省略したい」 OpenIDプロバイダ(OP) OpenIDプロバイダ(OP) RPのリクエストに基づきユーザー認証を行いその認 RPのリクエストに基づきユーザー認証を行いその 証結果と属性情報を提供 認証結果と属性情報を提供 OpenIDリライング・パーティ(RP) OpenIDリライング・パーティ(RP) OPに認証結果や属性情報をリクエストし OPに認証結果や属性情報をリクエストし その情報をもとにユーザーにサービスを提供 その情報をもとにユーザーにサービスを提供 2. OPの場所を特定し、リクエスト/ レスポンスに用いる署名鍵を交換 レスポンスに用いる署名鍵を交換 Web
API (ID情報、lセッション管理、 ソーシャル、決済、 アクティビティ、…) 「OPの提供する 他のAPIと かんたんに 組み合わせて利用 したい」 5. 認証レスポンス (ブラウザを (ブラウザを リダイレクト) リダイレクト) 「認証リクエスト/ レスポンスに対して、 公開鍵を用いて 暗号化・署名したい」 3. 認証リクエスト (ブラウザを (ブラウザを リダイレクト) リダイレクト) 4. ユーザー認証の実施と ユーザー認証の実施と 認証結果と属性情報の 提供可否の確認 1. 「OPの 「OPのID IDで で ログイン」 ログイン」 PCのWebブラウザ PCのWebブラウザ 6. アクセスを 許可し サービスを サービスを 提供 「携帯電話のWebブラウザや、 Webブラウザ以外の ユーザー・エージェント (ネイティブ・アプリケーションや JavaScriptクライアントなど) ユーザー ユーザー RPへのアクセスを試みる過程においてOPからRPへ RPへのアクセスを試みる過程においてOPからRP にも対応したい」 の認証結果と属性情報の提供を許可 への認証結果と属性情報の提供を許可 Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. 29
31.
現在のOpenID Connectへ Source: CIS13:
Bootcamp: Ping Identity OAuth and OpenID Connect In Action w... http://www.slideshare.net/CloudIDSummit/cis13-bootcamp-ping-identity-oauth-and-openid-connect-in-action-with-pingfederate-handson Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
32.
OpenID Connect アイデンティティ・プロバイダ (IdP: ID情報提供側) OpenID Connect 対応製品が SSO
/ アクセス 管理システム OAuth 2.0による API認可と統合 認可リクエスト/APIアクセス リライング・パーティ (RP: ID情報要求側) Webアプリ ケーション ライブラリや パッケージの 導入が不要 続々登場 モバイル “Self-issued IdP” 認証結果/属性情報提供 アプリケーション JWT * によって 携帯端末がIdPに! セキュアにID情報を提供 * JSON Web Token Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. ネイティブ(non-Web) アプリでも利用可能
33.
主要ID/API連携仕様がすべてOpenID Connectに収斂 Source: http://civics.com/OpenID-connect-webinar/ Copyright
© 2013 OpenID Foundation Japan. All Rights Reserved. 32
34.
再び Identity First
へ UMA (User Managed Access; ウーマ) Source: [WG-UMA] New "UMA 101" slides available on the wiki http://kantarainitiative.org/pipermail/wg-uma/2013-September/002486.html Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. OpenPDS (Open Personal Data Store) Source: openPDS - The privacy-preserving Personal Data Store http://openpds.media.mit.edu/
35.
まとめ ふたつの考えかたがある サービスのひとつとしての「アイデンティティAPI」
アイデンティティが中心にあってこそのサービス SAML, ID-WSF, OpenID Copyright © 2013 OpenID Foundation Japan. All Rights Reserved. OAuth OpenID Connect, UMA, PDS
Download