SlideShare a Scribd company logo
なぜOpenID Connectが必要となったのか
その歴史的背景
工藤達雄

OpenIDファウンデーション・ジャパン
自己紹介
 工藤達雄 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.
Webアプリケーションのユーザー認証
誰?
1
2

3

4
6

7
8

○○です
(ID/パスワードなど)
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.

5
SSO
(エスエスオー; Single Sign-On)

誰?
1
2
7
8

3

4
6

○○です
9
10

Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.

5
複数アイデンティティ・リポジトリ間のSSO

Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
方法その1: クライアント側ががんばる
誰?

○○です
1

ロック解除

2

4
3

5

6

7

△△です
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
方法その2: クレデンシャルを横取り
誰?

△△です
1

2
3

6
4

△△です

Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.

5
方法その3: アイデンティティ連携

1
6

2

3

4

誰?

△△です

Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.

5
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
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">j.doe@example.com</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
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
SAML 2.0
(aka Liberty ID-FF (Identity Federation Framework))

Source:第一回Liberty Alliance技術セミナー資料
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.

11
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
ID-WSFが目指していたもの

Source:リバティ・アライアンスの取組みについて http://www.kantei.go.jp/jp/singi/it2/nextg/meeting/dai7/siryou4.pdf
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
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
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
けっきょくID-WSFは普及しなかった
 一言で言うと「やりすぎ」
 サービス仕様まで定義しようとした
 ついていけないので普及が進まない → 普及が進まな

いので流行らない → 流行ってないのでついていかな
い → (以下繰り返し)
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
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.
“Identity 2.0”

Source: Identity 2.0 Keynote http://youtu.be/RrpajcAgR1E
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
“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.
「ユーザーセントリック・アイデンティティ」
 ユーザーがコンテクストに応じて決める
 どのIDを使うか(名乗るか)
 どの属性を連携するか

…

Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
OpenID

Source: brad's life - OpenID http://brad.livejournal.com/2120086.html
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
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
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」 を明示してアクセス
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.
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.
そこかしこでOAuthが使われるように
 ユーザー認証に使うケースも
 OAuth+OpenIDよりも、OAuth+独自ユーザー認証APIのほ
うが提供しやすい

 さらに発展
 OAuth WRAP → OAuth 2.0へ
 Facebookも乗ってきた
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.
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
「 (旧) 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/
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
現在の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.
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)
アプリでも利用可能
主要ID/API連携仕様がすべてOpenID Connectに収斂

Source: http://civics.com/OpenID-connect-webinar/
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.

32
再び 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/
まとめ
 ふたつの考えかたがある
 サービスのひとつとしての「アイデンティティAPI」
 アイデンティティが中心にあってこそのサービス

SAML,
ID-WSF,
OpenID
Copyright © 2013 OpenID Foundation Japan. All Rights Reserved.

OAuth

OpenID
Connect,
UMA, PDS
なぜOpenID Connectが必要となったのか、その歴史的背景

More Related Content

なぜOpenID Connectが必要となったのか、その歴史的背景