OpenID
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>OpenID / OAuth / OpenID Connect]]
* 目次 [#e8f85b16]
#contents
*概要 [#iaa04036]
*OpenID 1.1 [#j4d08fe6]
**End Userは自分のClaimed Identifierを認証するIdPを明示。...
End Userは自分のClaimed Identifierを認証してくれるIdPを明...
***Claimed IdentifierとIdPのエンドポイントURLが同一ホスト...
head要素の中にlink要素として、下記のように記載。
<link rel="openid.server" href="IdPが提供するサーバのエ...
e.g. : http://profile.hatena.ne.jp/h1romas4/
***Claimed IdentifierとIdPのエンドポイントURLが同一ホスト...
head要素の中にlink要素として、下記のように記載。~
これにより、Claimed Identifierの認証を外部のIdPサーバに委...
<link rel="openid.server" href="IdPが提供するサーバのエ...
<link rel="openid.delegate" href="Claimed Identifierと...
e.g. : http://openid.maple4ever.net/hiromasa/
**ConsumerサイトのOpenIDログイン・フォーム [#lba1601f]
Enter your OpenID URLなので、Claimed IdentifierのURLを入...
***HTML [#e41c1f5b]
ブラウザのオートコンプリートを利用するため、 ~
OpenID URLのテキスト・フィールドはname属性値に~
openid_urlと統一した名前を付けることが推奨されている。
<form id="openid_form" action="./login.cgi" method="pos...
<fieldset>
<legend>Enter your OpenID URL</legend>
<input type="text" id="openid_url" ≪name="openid_url...
<input type="submit" id="openid_url_submit" name="o...
</fieldset>
</form>
***CSS [#t0cd71b7]
OpenIDのロゴを表示する。
input#openid_url {
text-indent: 18px;
background-image: url("http://sample.openid-idp.com/i...
background-repeat: no-repeat;
background-position: left center;
}
**処理シーケンス [#d8fb2560]
処理シーケンスを、Consumerサイト上の処理を中心に説明する。
+OpenIDログイン・フォームにClaimed IdentifierのURLが入力...
+Consumerは、"openid.server"と"openid.delegate"を参照する。
+通常、[[smart mode>#bee468a7]]を選択し、Claimed Identifi...
+ConsumerはEnd UserのUser-AgentにIdPに対する問い合わせを...
++ユーザにリダイレクト要求(302リダイレクト)を返し、IdP...
これにより、IdPの認証手続きページに画面遷移しログインや情...
++Ajaxスタイルの非同期通信による問い合わせ方式
+ConsumerはEnd UserのUser-AgentがIdPから受け取った紹介状...
+[[dumb mode>#bee468a7]]の場合、Consumerは紹介状の妥当性...
***openid.mode [#g794fd6a]
-associateモード
--ConsumerとIdPの間で、共通鍵の共有を行う。
--[[smart mode>#bee468a7]]を処理する場合に必要。~
associateモードが失敗した場合は、[[dumb mode>#bee468a7]]...
--Consumer <---(POST)---> IdP
-check_authenticationモード
--紹介状が正しいかどうか、IdPへ問い合わせる。
--[[dumb mode>#bee468a7]]で必要になる。
--Consumer <---(GET)---> IdP
-checkid_immediateモード
--Claimed IdentifierがVerified IdentifierであるかIdPへ問...
--Consumer <---(302 redirect)---> User-Agent <---(GET)---...
-checkid_setupモード
--属性情報の通知方法を設定可能なIdpの画面が提供される。
--Consumer <---(302 redirect)---> User-Agent <---(GET)---...
***smart modeとdumb mode [#bee468a7]
OpenID認証における、大まかな動作指針
-smart mode~
事前にConsumerとIdPの間で共通鍵を共有し、信頼関係を成立さ...
-dumb mode
--事前に共通鍵を共有することなく、Claimed Identifierの認...
--smart modeと比べて一連の手続きの最後に1つ余計に処理が増...
-id_res
--???
**OpenID Simple Registration Extension 1.0 [#v0725f58]
OpenID 1.1 の拡張機能で、End Userの登録情報を照会する機能。
***機能概要 [#d94c2872]
-IdPのエンドポイントURLにリダイレクトさせる際に所定のクエ...
-紹介状をリダイレクトで受け取る際のURLに含まれるクエリパ...
-このリダイレクトURLのクエリパラメータに含める事ができる値
--ニックネーム
--メールアドレス
--フルネーム
--誕生日
--性別
--郵便番号
--国
--言語
--タイムゾーン
-Consumerは照会したい項目を選択できる。
-End Userは照会要求を拒否できる。
**セキュリティ [#q8c8d8f1]
難しい。
-OpenIDの仕様と技術(4):OpenIDをとりまくセキュリティ上...
http://www.atmarkit.co.jp/ait/articles/0711/20/news128.html
以下の3つがある。
-通信経路のセキュリティ
-セキュリティ上の脅威
-評価
***通信経路のセキュリティ [#w88d0632]
-smart modeで、Consumer <---> IdP間で共通鍵を共有する。
--Diffie-Hellman鍵共有(または鍵交換)プロトコルを使用す...
--以降、HMAC-SHA1(ハッシュ関数と秘密鍵)の署名でメッセー...
-メッセージ署名
--checkid_setup/checkid_immediateモード~
・・・
--id_resモード~
IdPから返される紹介状
***セキュリティ上の脅威 [#m4adb8d6]
-フィッシング(悪意のあるConsumerサイトからニセのIdpに誘...
-OpenID Realm Spoofing(より、狡猾なフィッシング)
-Google検索などを用いてアカウント名の収集が可能。
-紹介状の送信に対するリプレイ攻撃が可能。~
Consumer側で、nonceワンタイムな値を追加する。
***IdPの評価 [#f7039926]
-IdPを運営してきた実績
-認証フォームに対するヘルプ機能
-httpsへの対応
-アカウントのリカバリ機能の充実
-プライバシーポリシーの内容
-スパム、セキュリティ対策
-Attribute Exchange(AX)への対応
-Provider Authentication Policy Extension(PAPE)への対応
-アカウント登録手続きの内容
AOLは許可するIdPをホワイトリスト形式で指定している。
**参考 [#zb079ddc]
-OpenIDの仕様と技術 - @IT~
--(2):あなたのサイトをOpenID対応にしている2行の意味 (1...
http://www.atmarkit.co.jp/ait/articles/0708/10/news130.html
--(3):第3回 Consumerの実装を知り、OpenIDを使ってみよう...
http://www.atmarkit.co.jp/ait/articles/0709/21/news142.html
--(4):OpenIDをとりまくセキュリティ上の脅威とその対策 (...
http://www.atmarkit.co.jp/ait/articles/0711/20/news128.html
-OpenID と delegate の設定 | hiromasa.another :o)~
http://another.maple4ever.net/archives/133/
*OpenID 2.0 [#z93c5118]
-[[用語>OpenID / OAuth / OpenID Connect#zf2b18ee]]
-一般ユーザーがより使いやすい仕様。
--Identifier
--認証方式
**Identifierの記述形式 [#q2d9294f]
-URLのほかに、XRIというURIを拡張した形式で記述できる。
-XRIは従来のURLと比べて短い文字列を使用できる。
-XRIはドメインのように取得する必要がある。
-XRI:// ---> http://xri.net/ と変更すると、~
xri.netのXRI Proxy ResolverがXRI文字列を解釈して適切なリ...
**User-Supplied Identifier [#kddef9f7]
これまでどおり
-RPはエンドユーザーにログインフォームを表示する。
-Claimed IdentifierをRPのログインフォームに入力して認証す...
***変更点 [#qc3a2274]
-1.1の場合ではClaimed Identifierを入力。
-2.0ではUser-Supplied Identifierを入力。
--従来どおりにClaimed IdentifierをRPのログインフォームに...
--OPで使用したいIdentifierを選択しOP Identifierを入力して...
ユーザーは自分の長いClaimed Identifierを覚える必要がなく...
---OPでOP Identifierを入力して認証を済ませる。
---OP Identifierを選択して、認証結果をRPに返す。
--User-Supplied Identifierとは
---End UserによってRPに対して提示されるIdentifier
---Claimed IdentifierまたはOP Identifierの総称
**XRDSベースのdiscovery [#r5297d6a]
XRDSというXMLのフォーマットは以下が可能。
-サービスに対応している認証サービス(OP)の詳細を指定
--サービス(RP?OP?)の優先順位を指定
--サービス(RP?OP?)のエンドポイントURLを指定
***これまで [#u7cf4280]
+Claimed Identifierを入力
+RPがClaimed Identifierにあるlink要素を解決
--openid.server
--必要であればopenid.delegate、
+RPはエンドユーザーをOPにリダイレクト
***変更点 [#s10b2611]
IdentifierがXRDS文書を指している場合、~
XRDS文書によってOPが決定される。
-OpenID 2.0ベースでのdelegate設定サンプル
<head>
<link rel="openid.server" href="OpenID 1.1のIdPが提供...
<link rel="openid.delegate" href="OpenID 1.1のClaimed...
<link rel="openid2.local_id" href="OpenID 2.0のOP-Loca...
<link rel="openid2.provider" href="OpenID 2.0のOPのエ...
<meta http-equiv="x-xrds-location" content="XRDS文書の...
OP-Local Identifier:OP上でのユーザID
**参考 [#d9a8abaa]
-OpenIDの仕様と技術 - @IT~
(5):OpenID Authentication 2.0時代の幕開け (2-3/3)~
--http://www.atmarkit.co.jp/ait/articles/0802/19/news133_...
--http://www.atmarkit.co.jp/ait/articles/0802/19/news133_...
*参考 [#l4bff6f4]
-OpenIDの仕様と技術 連載インデックス - @IT~
http://www.atmarkit.co.jp/fsecurity/index/index_openid.html
----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>OpenID / OAuth / OpenID Connect]]
* 目次 [#e8f85b16]
#contents
*概要 [#iaa04036]
*OpenID 1.1 [#j4d08fe6]
**End Userは自分のClaimed Identifierを認証するIdPを明示。...
End Userは自分のClaimed Identifierを認証してくれるIdPを明...
***Claimed IdentifierとIdPのエンドポイントURLが同一ホスト...
head要素の中にlink要素として、下記のように記載。
<link rel="openid.server" href="IdPが提供するサーバのエ...
e.g. : http://profile.hatena.ne.jp/h1romas4/
***Claimed IdentifierとIdPのエンドポイントURLが同一ホスト...
head要素の中にlink要素として、下記のように記載。~
これにより、Claimed Identifierの認証を外部のIdPサーバに委...
<link rel="openid.server" href="IdPが提供するサーバのエ...
<link rel="openid.delegate" href="Claimed Identifierと...
e.g. : http://openid.maple4ever.net/hiromasa/
**ConsumerサイトのOpenIDログイン・フォーム [#lba1601f]
Enter your OpenID URLなので、Claimed IdentifierのURLを入...
***HTML [#e41c1f5b]
ブラウザのオートコンプリートを利用するため、 ~
OpenID URLのテキスト・フィールドはname属性値に~
openid_urlと統一した名前を付けることが推奨されている。
<form id="openid_form" action="./login.cgi" method="pos...
<fieldset>
<legend>Enter your OpenID URL</legend>
<input type="text" id="openid_url" ≪name="openid_url...
<input type="submit" id="openid_url_submit" name="o...
</fieldset>
</form>
***CSS [#t0cd71b7]
OpenIDのロゴを表示する。
input#openid_url {
text-indent: 18px;
background-image: url("http://sample.openid-idp.com/i...
background-repeat: no-repeat;
background-position: left center;
}
**処理シーケンス [#d8fb2560]
処理シーケンスを、Consumerサイト上の処理を中心に説明する。
+OpenIDログイン・フォームにClaimed IdentifierのURLが入力...
+Consumerは、"openid.server"と"openid.delegate"を参照する。
+通常、[[smart mode>#bee468a7]]を選択し、Claimed Identifi...
+ConsumerはEnd UserのUser-AgentにIdPに対する問い合わせを...
++ユーザにリダイレクト要求(302リダイレクト)を返し、IdP...
これにより、IdPの認証手続きページに画面遷移しログインや情...
++Ajaxスタイルの非同期通信による問い合わせ方式
+ConsumerはEnd UserのUser-AgentがIdPから受け取った紹介状...
+[[dumb mode>#bee468a7]]の場合、Consumerは紹介状の妥当性...
***openid.mode [#g794fd6a]
-associateモード
--ConsumerとIdPの間で、共通鍵の共有を行う。
--[[smart mode>#bee468a7]]を処理する場合に必要。~
associateモードが失敗した場合は、[[dumb mode>#bee468a7]]...
--Consumer <---(POST)---> IdP
-check_authenticationモード
--紹介状が正しいかどうか、IdPへ問い合わせる。
--[[dumb mode>#bee468a7]]で必要になる。
--Consumer <---(GET)---> IdP
-checkid_immediateモード
--Claimed IdentifierがVerified IdentifierであるかIdPへ問...
--Consumer <---(302 redirect)---> User-Agent <---(GET)---...
-checkid_setupモード
--属性情報の通知方法を設定可能なIdpの画面が提供される。
--Consumer <---(302 redirect)---> User-Agent <---(GET)---...
***smart modeとdumb mode [#bee468a7]
OpenID認証における、大まかな動作指針
-smart mode~
事前にConsumerとIdPの間で共通鍵を共有し、信頼関係を成立さ...
-dumb mode
--事前に共通鍵を共有することなく、Claimed Identifierの認...
--smart modeと比べて一連の手続きの最後に1つ余計に処理が増...
-id_res
--???
**OpenID Simple Registration Extension 1.0 [#v0725f58]
OpenID 1.1 の拡張機能で、End Userの登録情報を照会する機能。
***機能概要 [#d94c2872]
-IdPのエンドポイントURLにリダイレクトさせる際に所定のクエ...
-紹介状をリダイレクトで受け取る際のURLに含まれるクエリパ...
-このリダイレクトURLのクエリパラメータに含める事ができる値
--ニックネーム
--メールアドレス
--フルネーム
--誕生日
--性別
--郵便番号
--国
--言語
--タイムゾーン
-Consumerは照会したい項目を選択できる。
-End Userは照会要求を拒否できる。
**セキュリティ [#q8c8d8f1]
難しい。
-OpenIDの仕様と技術(4):OpenIDをとりまくセキュリティ上...
http://www.atmarkit.co.jp/ait/articles/0711/20/news128.html
以下の3つがある。
-通信経路のセキュリティ
-セキュリティ上の脅威
-評価
***通信経路のセキュリティ [#w88d0632]
-smart modeで、Consumer <---> IdP間で共通鍵を共有する。
--Diffie-Hellman鍵共有(または鍵交換)プロトコルを使用す...
--以降、HMAC-SHA1(ハッシュ関数と秘密鍵)の署名でメッセー...
-メッセージ署名
--checkid_setup/checkid_immediateモード~
・・・
--id_resモード~
IdPから返される紹介状
***セキュリティ上の脅威 [#m4adb8d6]
-フィッシング(悪意のあるConsumerサイトからニセのIdpに誘...
-OpenID Realm Spoofing(より、狡猾なフィッシング)
-Google検索などを用いてアカウント名の収集が可能。
-紹介状の送信に対するリプレイ攻撃が可能。~
Consumer側で、nonceワンタイムな値を追加する。
***IdPの評価 [#f7039926]
-IdPを運営してきた実績
-認証フォームに対するヘルプ機能
-httpsへの対応
-アカウントのリカバリ機能の充実
-プライバシーポリシーの内容
-スパム、セキュリティ対策
-Attribute Exchange(AX)への対応
-Provider Authentication Policy Extension(PAPE)への対応
-アカウント登録手続きの内容
AOLは許可するIdPをホワイトリスト形式で指定している。
**参考 [#zb079ddc]
-OpenIDの仕様と技術 - @IT~
--(2):あなたのサイトをOpenID対応にしている2行の意味 (1...
http://www.atmarkit.co.jp/ait/articles/0708/10/news130.html
--(3):第3回 Consumerの実装を知り、OpenIDを使ってみよう...
http://www.atmarkit.co.jp/ait/articles/0709/21/news142.html
--(4):OpenIDをとりまくセキュリティ上の脅威とその対策 (...
http://www.atmarkit.co.jp/ait/articles/0711/20/news128.html
-OpenID と delegate の設定 | hiromasa.another :o)~
http://another.maple4ever.net/archives/133/
*OpenID 2.0 [#z93c5118]
-[[用語>OpenID / OAuth / OpenID Connect#zf2b18ee]]
-一般ユーザーがより使いやすい仕様。
--Identifier
--認証方式
**Identifierの記述形式 [#q2d9294f]
-URLのほかに、XRIというURIを拡張した形式で記述できる。
-XRIは従来のURLと比べて短い文字列を使用できる。
-XRIはドメインのように取得する必要がある。
-XRI:// ---> http://xri.net/ と変更すると、~
xri.netのXRI Proxy ResolverがXRI文字列を解釈して適切なリ...
**User-Supplied Identifier [#kddef9f7]
これまでどおり
-RPはエンドユーザーにログインフォームを表示する。
-Claimed IdentifierをRPのログインフォームに入力して認証す...
***変更点 [#qc3a2274]
-1.1の場合ではClaimed Identifierを入力。
-2.0ではUser-Supplied Identifierを入力。
--従来どおりにClaimed IdentifierをRPのログインフォームに...
--OPで使用したいIdentifierを選択しOP Identifierを入力して...
ユーザーは自分の長いClaimed Identifierを覚える必要がなく...
---OPでOP Identifierを入力して認証を済ませる。
---OP Identifierを選択して、認証結果をRPに返す。
--User-Supplied Identifierとは
---End UserによってRPに対して提示されるIdentifier
---Claimed IdentifierまたはOP Identifierの総称
**XRDSベースのdiscovery [#r5297d6a]
XRDSというXMLのフォーマットは以下が可能。
-サービスに対応している認証サービス(OP)の詳細を指定
--サービス(RP?OP?)の優先順位を指定
--サービス(RP?OP?)のエンドポイントURLを指定
***これまで [#u7cf4280]
+Claimed Identifierを入力
+RPがClaimed Identifierにあるlink要素を解決
--openid.server
--必要であればopenid.delegate、
+RPはエンドユーザーをOPにリダイレクト
***変更点 [#s10b2611]
IdentifierがXRDS文書を指している場合、~
XRDS文書によってOPが決定される。
-OpenID 2.0ベースでのdelegate設定サンプル
<head>
<link rel="openid.server" href="OpenID 1.1のIdPが提供...
<link rel="openid.delegate" href="OpenID 1.1のClaimed...
<link rel="openid2.local_id" href="OpenID 2.0のOP-Loca...
<link rel="openid2.provider" href="OpenID 2.0のOPのエ...
<meta http-equiv="x-xrds-location" content="XRDS文書の...
OP-Local Identifier:OP上でのユーザID
**参考 [#d9a8abaa]
-OpenIDの仕様と技術 - @IT~
(5):OpenID Authentication 2.0時代の幕開け (2-3/3)~
--http://www.atmarkit.co.jp/ait/articles/0802/19/news133_...
--http://www.atmarkit.co.jp/ait/articles/0802/19/news133_...
*参考 [#l4bff6f4]
-OpenIDの仕様と技術 連載インデックス - @IT~
http://www.atmarkit.co.jp/fsecurity/index/index_openid.html
----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認...
ページ名: