Open棟梁Project - マイクロソフト系技術情報 Wiki -[[戻る>クレームベース認証#td7a8a84]] * 目次 [#e8f85b16] #contents *概要 [#iaa04036] OpenID対応について。 *OpenID 1.1 [#j4d08fe6] **End Userは自分のClaimed Identifierを認証するIdPを明示。 [#lcd709c8] End Userは自分のClaimed Identifierを認証してくれるIdPを明示する。 ***Claimed IdentifierとIdPのエンドポイントURLが同一ホストにある場合 [#s8ed5236] head要素の中にlink要素として、下記のように記載。 <link rel="openid.server" href="IdPが提供するサーバのエンドポイントURL" /> e.g. : http://profile.hatena.ne.jp/h1romas4/ ***Claimed IdentifierとIdPのエンドポイントURLが同一ホストにない場合 [#ca879f87] head要素の中にlink要素として、下記のように記載。~ これにより、Claimed Identifierの認証を外部のIdPサーバに委ねる事ができる。 <link rel="openid.server" href="IdPが提供するサーバのエンドポイントURL" /> <link rel="openid.delegate" href="Claimed Identifierとして使用するURL" /> 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="post"> <fieldset> <legend>Enter your OpenID URL</legend> <input type="text" id="openid_url" ≪name="openid_url"≫ value="" /> <input type="submit" id="openid_url_submit" name="openid_url_submit" value="LOGIN" /> </fieldset> </form> ***CSS [#t0cd71b7] OpenIDのロゴを表示する。 input#openid_url { text-indent: 18px; background-image: url("http://sample.openid-idp.com/img/openid_logo.png"); background-repeat: no-repeat; background-position: left center; } **処理シーケンス [#d8fb2560] 処理シーケンスを、Consumerサイト上の処理を中心に説明する。 +OpenIDログイン・フォームにClaimed IdentifierのURLが入力される。 +Consumerは、"openid.server"と"openid.delegate"を参照する。 +[[smart mode>#bee468a7]]を選択し、Claimed Identifierの認証手続きを行う。 +ConsumerはEnd UserのUser-AgentにIdPに対する問い合わせを示指する(2通りの方式がある)。 ++ユーザにリダイレクト要求(302リダイレクト)を返し、IdPにリクエストさせる。~ これにより、IdPの認証手続きページに画面遷移しログインや情報開示可否を選択できる。 ++Ajaxスタイルの非同期通信による問い合わせ方式 +ConsumerはEnd UserのUser-AgentがIdPから受け取った紹介状をリダイレクトで受け取ります。 +dumb modeの場合、Consumerは紹介状の妥当性を直接IdPに問い合わせる。 ***smart mode [#bee468a7] 事前にConsumerとIdPの間で共通鍵を共有し、信頼関係を成立させておくモード。 ***dumb mode [#aabc2d92] -事前に共通鍵を共有することなく、Claimed Identifierの認証手続きを行う。 -smart modeと比べて一連の手続きの最後に1つ余計に処理が増える。 **参考 [#zb079ddc] -OpenIDの仕様と技術(2):~ あなたのサイトをOpenID対応にしている2行の意味 (1/3) - @IT~ http://www.atmarkit.co.jp/ait/articles/0708/10/news130.html -OpenID と delegate の設定 | hiromasa.another :o)~ http://another.maple4ever.net/archives/133/