mixi openid : RPからhttps://mixi.jp/へのSSL接続に失敗します。
7月 15th, 2011
http://developer.mixi.co.jp/openid/faq/
RPからhttps://mixi.jp/へのSSL接続に失敗します。どんな対策が必要ですか?
に従ってサーバーの証明書を更新します。
前もやったんだけど、メモってなかったのかな
http://insilico.jognote.com/blog/2008/08/13/curl-%E3%81%AB-https-%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/
あれ?入ってた。
Open ID : associate type ASSOC_TYPE_HMAC_SHA1 これも
1月 23rd, 2011
ちょとこのversionと暗号化の組み合わせは何でしょう。
まぁライブラリが正解とは言えないので良いのです。
修正しました。やっとmixiでログイン成功~
if (OpenID::$versionMap[$version] == OpenID::NS_2_0) {
$this->message->set(’openid.ns’, OpenID::NS_2_0);
if(preg_match(’/mixi.jp/’,$this->opEndpointURL)){
$this->message->set(’openid.assoc_type’, self::ASSOC_TYPE_HMAC_SHA1);
[...]
OpenID : session_type DH_SHA1 or DH-SHA256 ? mixi.jpの罠 ?
1月 22nd, 2011
PearのOpenIDライブラリを使っているのですが、
mixi.jp の OpenIDを利用したところ以下のエラーが返された。
“Missing dh_server_public parameter in association response”
https://mixi.jp/openid_server.pl
データは取得出来ていたけど、dh_server_publicがかえってこなかった。。。
ようやく原因がわかりました。。。
session_typeには、
no-encryption
DH-SHA1
DH-SHA256
の3つがあるのですが、sslのときは、当然利用が必要です。
mixi.jpはhttps://につなぎに行くのですが
versionが
http://specs.openid.net/auth/2.0/server
のため
OpenID_Association_Request
のconstruct内で
versionから
session_type = DH-SHA256
と設定されました。
残念ながら mixi.jpはDH-SHA256では、
dh_server_public
enc_mac_key
が返されませんでした ; o ;
仕方ないのでmixiのときは、 DH_SHA1 にして無事認証完了^-^;
// Set defaults
$this->message->set(’openid.mode’, OpenID::MODE_ASSOCIATE);
if (OpenID::$versionMap[$version] == OpenID::NS_2_0) {
[...]
Yahoo OpenID Attribute Exchange をPHPで利用してみる!
7月 26th, 2010
まずは↓この通りにopenidを使ってみてください。
http://techblog.yahoo.co.jp/web/openid/10yahooopenid_rp/
↓次に、こちらPHPじゃないですが、画面遷移は同じです!
Yahoo OpenID AX Attribute Exchange!
http://techblog.yahoo.co.jp/web/openid/openid_axyahoo/
でphpは何を変えるかというと
try_auth.php(リクエスト用を修正です!)
require_once “Auth/OpenID/AX.php”;
でAXも利用可能に。
さらに function run()内の
$auth_request = $consumer->begin($openid);
の下あたりに AXを追加!
画像とfriendlyをnicknameとしてとってみる。
$ax_request = new Auth_OpenID_AX_FetchRequest();
$ax_request->add(
Auth_OpenID_AX_AttrInfo::make(’http://axschema.org/media/image/default’,
1,true,’image’));
$ax_request->add(
Auth_OpenID_AX_AttrInfo::make(’http://axschema.org/namePerson/friendly’
,1,true,’nickname’));
で早速Yahooへログイン!同じく try_auth.phpからYahooへリダイレクトされる
finish_auth.phpへ返されるパラメータに
["openid_ax_value_image"]=> string(54) “https://s.yimg.jp/images/login/openid/img/01/pic90.gif”
["openid_ax_value_nickname"]=> string(12) “ヤフーのID”
の2つが入ってきます。
だいたい問題ないので、次はphpのセッションを少し修正してサービスへ導入します。