プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

OpenID 技術セミナー GINZA TECH LOUNGE feat. OpenID

仕事帰りにGINZA TECH LOUNGE feat. OpenIDに行ってきました。ミクシィ、ヤフー、リクルートの3社による技術セミナーだけあって、参加者も定員一杯の120名と大盛況な感じでした。

構成

・ヤフー(30分) Yahoo! JAPAN OpenID プロバイダ技術解説
ミクシィ(30分) mixi OpenID プロバイダ技術解説
リクルート(30分) ATND OpenID RP 技術解説
マッシュアップアワード運営事務局(10分)
・ライトニングトーク(5分×4名)
* ListPod ゆーすけべーさん
* おぷん(koress project)Cigar-Cookさん「"おぷん"で知る 草の根OpenID動向」
* FlipClip 堀内さん
* okyuu.com(カカクコム)藤原さん

本日参加者のOpenID利用状況

参加登録に使ったATNDOpenID専用ツールになっててその集計。

Yahooセッション

  • Yahoo! JapanのアクティブユーザーIDの数は2200万
  • OpenID2.0に対応
OpenIDの発行について
  • ID毎にOpenIDの発行処理が必要 ⇒ ID大量取得者によるRP不正利用の防止
  • YahooIDはOpenIDに含まれない ⇒ OpenIDポリシーに沿わないが、セキュリティーポリシー上仕方がない
OpenIDの認証
  • checkid_setupモードの認証要求に対応
  • checkid_immediateモードの認証要求には非対応(セキュリティポリシー
  • OpenID再利用問題を解決するため、認証応答に含まれるclaimed_idパラメタにはフラグメントを付加 (ユーザーIDのリサイクルの際の問題解消)
  • 間接通信では否定アサーションを返さない(OpenIDの仕様に準拠)⇒ エラー画面を表示/YahooのTOPにリダイレクト
セキュリティ対策
  • return_toのチェックについて「あんしんネット」で利用しているブラックリストを利用
  • ログインシール、ログイン履歴の利用促進
フィッシングの脅威

悪意のあるサイトがRPのOpenID入力フォーム、OPの認証画面を偽装する可能性あるため、ユーザーがOPの認証画面の正当性を判断できる機能が必要 ⇒ ログインシール(自分だけの画像、テキストをログイン画面に表示する)を利用し、フィッシングサイトとの判別に利用

その他

ログインされているRPはiknow.co.jpが圧倒的に多い

mixiセッション

  • ユーザーIDの数は1500万ID
  • OpenID2.0と1.1に対応 ⇒ 現状では2.0対応のRPが少ない (Yahoo!は2.0のみ、Hatenaは1.1のみ対応)
OpenID Identifier
隠し機能
  • OpenID Identifierを一回だけ好きな文字列に変更可能
  • OpenIDとしてではなく、自分のmixiIDとしても利用できる(プレミアム会員限定ですよ)
セキュリティ

DNS cache poisoning

  • OP EndpointをSSL/TLSで提供
  • Identifier or OP IdentifierをSSL/TLSで提供
  • RPはSSL/TLS接続を正しく利用すべき

phiching

  • phichingについては対策の啓蒙活動

詳細はmixi Developer Centerにて

RECRUITセッション

ATNDの実装について

構成

RoRを利用

  • ruby-openid (ruby library)
  • open_id_authentication (RoR plug-in)
  • restful_authentication (RoR plug-in)

UserTable

nickname ユーザ名 ユニーク
identity_url ユーザのOpenID ユニーク
ユーザ登録について

1. まずはOpenIDで認証
2. DBにユーザ名が存在しないかチェック
3. identity_url, nicknameを保存して登録完了

実装で困ったところ

ユーザ名をどう決めさせるか

  • sregに対応してたらsreg.nicknameがユーザ名(mixiは対応)でそれ以外はidentityUrlを利用
  • 意外とidentitiUrlをそのまま利用する人が多い ⇒ リンク先が外部ページと誤解される恐れがある

OpenIDをどう理解させるか

  • ユーザにOpenIDをいかに感じさせないかが重要なのではないかと考え、出来る限りOpenIDという言葉を使わないようにした
  • まだまだ模索中。RPが増えていく中でベストプラクティスが見つかるのではないか

ライトニングトーク

ListPod
  • OpenIDの利用状況はダントツでYahoo!が一番(2位のHatenaの3倍以上)
  • OpenIDは携帯対応ができない
  • 小規模サービスにとってはOpenIDはかなり使いがってのよい機能。実装も簡単で早い
おぷん
  • 日本国内のFirefoxシェアが約2割
  • 今年の冬以降、サービスのFirefoxシェアが減少傾向 ⇒ 一般の利用者が増えている
FlipClip

既存サービスにOpenIDを導入する際に気にしたこと

  • マーケティングなどの利用に会員情報は欲しい
  • 既存の会員の整合性も必要

既存アカウントとOpenIDを紐付けるアプローチをとった

  • 初回はOpenID認証 ⇒ 次に既存アカウントID/PASSを入力してもらってを紐付ける
  • 次回以降はOpenID認証のみでOK(紐付け解除もできる)
  • mixiからの動線でユーザ数が急増
  • 大手に便乗できるのはOpenIDの利点
okyuu.com
  • Firefoxのsxipperを利用されると不具合が発生
  • テキストボックスを利用していないので上記アドオンを利用した際に不具合がでる

中々内容の濃いセミナーでした。OpenIDも工夫して利用すれば色々面白そうですね。