S eda1a14b50ee24bcab19b62f40858e76 OpenID

ID入れるだけで認証済むもんやと勘違いしてた。そんなこと夢のような話あるはずないのに…。実際はIdentity Providerに認証を委譲する形。IDをURIで表すことや、仕様がオープンになってるので認証プロバイダが分散することが特徴。

仕組み

1. サービスを行うサイト(Consumer)はOpenIDからHTMLを取得する
 Site fetches the HTML of my OpenID
2. そこから opneid.serverを探す→認証プロバイダ(Identity Provider
 Finds "openid.server"
3. サイトは認証プロバイダと秘密のやりとりする
 Establishes a shared secret with the Provider
4. ユーザのブラウザを認証プロバイダにリダイレクトしてログインさせる
 Redirects my browser to the Provider where I authenticate and allow the OpenID login
5. サービスサイトに結果を返してリダイレクトする
 Provider redirects my browser back to the site with an OpenID response
6. サービスサイトは、ユーザをログイン
 Site verifies the signature and logs me in

日本で公開してるOpenIDサーバー

http://www.openid.ne.jp/
http://auth.livedoor.com/openid/

準備

OpenIDのURIには決められたlink要素を記述したHTMLを用意する。
・openid.serverには認証プロバイダ
・openid.delegateはIdentifierが認証プロバイダと別ドメインの時、認証プロバイダと同ドメインのIdentifier
例えばライブドア(自分のOpenID)のにはこの記述がある。


もしこれを独自のURIにしようと思ったらそこに以下のを記述しとけばいい(はず)




その他

・認証プロバイダが信頼できるかどうか。


参考

http://www.slideshare.net/daveman692/open-...
http://www.atmarkit.co.jp/fsecurity/rensai...

フィッシング問題

http://marcoslot.net/apps/openid/
・不正なサービスが認証プロバイダにリダイレクトせずにフィッシングページに移動させてあらあら
・不正なサービスが認証プロバイダが出力するログインフォームを取得して、フォームの送信先をJSとかで書き換えてあらあら
・OpenID入力フォームにパスワード入力項目もつけてあらあら(確かに今までのログインに慣れてたらやっちゃう人もいそう)

Consumerの実装

http://www.plaxo.com/api/openid_recipe


OpenID2.0

http://openid.net/specs/openid-authenticat...
http://www.atmarkit.co.jp/fsecurity/rensai...

もしかして

    他の人の「OpenID」

    S eda1a14b50ee24bcab19b62f40858e76

    無所属ソフトウェアエンジニア

    (1722words)

    最新

      最新エントリ

        関連ツイート