mixi Developer Center (ミクシィ デベロッパーセンター)

mixi OpenID

mixi OpenID » 仕様

仕様

概要

mixi OpenID は mixi 内のユーザー情報を外部サイトでの認証に使用するためのサービスです。この文章では mixi OpenID の仕様について説明します。

はじめに

mixi OpenID は mixi 内のユーザー情報を、OpenID Authentication 2.0 (以下 OpenID 2.0) に準拠する形で、外部サイトでの認証に使用するためのプロトコルです。マイミクシィやコミュニティという馴染み深いモデルで、ユーザーに Web 上のアクセスコントロールを提供します。

mixi OpenID では、mixiユーザー個人のアイデンティティを外部サイトに証明する

  • ミクシィ認証

mixi内の関係性を外部サイトに証明する

  • マイミクシィ認証
  • コミュニティ認証

の3種類の認証を提供します。さらに、ユーザーが許可した場合に限り、外部サイトへログインするユーザーのニックネームをあわせて提供します。

マイミクシィ認証、コミュニティ認証を使用することで、外部サイトは次のようなサービスを実現できます。

  • 自分のマイミクシィのみコメントできるブログ
  • 特定のコミュニティ参加者だけがアクセスできる掲示板

認証

mixi OpenID における認証全体の流れについては、OpenID 2.0 仕様に準拠しているため、ここでは説明を省略します。

OpenID Provider (以下 OP) としての mixi は、仕様上のオプショナルなもののうち以下を実装しています。

  • Stateless モードを実装しているため、アソシエーションの確立が省略できます
  • Immediate モードを実装しているため、認証をリクエストする際に openid.mode に checkid_immediate を指定できます

外部サイトは OpenID 2.0 に対応した Relying Party (以下 RP) として、mixi 内のユーザー情報を認証に使用します。なお、OP と RP 間のアソシエーションの確立処理は、単位時間あたりの実行回数に制限があります。RP は可能であればアソシエーションをキャッシュするようにして下さい。

ミクシィ認証

ミクシィ認証は、mixi ユーザ個人のアイデンティティを RP に証明します。

RPは、Yadisプロトコルを用いて、mixiの OP Identifier


https://mixi.jp

に対して discover をおこない、取得した OP Endpoint URL に認証を要求します。OPは、認証を要求しているユーザが mixi ユーザであるかをチェックして、応答を返します。

認証が完了した際に応答に含まれる OP-Local Identifier, Claimed Identifier は共に

https://id.mixi.jp/[ログインしたユーザーの ID]

となります。

なお、ブラウザによる https://id.mixi.jp/[ユーザー ID] への通常のアクセスは、http://mixi.jp/show_friend.pl?id=[ユーザー ID] にリダイレクトされます。

マイミクシィ認証

マイミクシィ認証は、mixi 内でユーザーが誰と友人であるかを、RP に証明します。

RPは、特別な Claimed Identifier

https://id.mixi.jp/[ユーザー ID]/friends

あるいは

http://mixi.jp/show_friend.pl?id=[ユーザー ID]

を指定して認証を要求します。OPは、ログインを要求しているユーザと、mixi内で [ユーザー ID] で示されるユーザーとが、友人同士であるかをチェックして、応答を返します。

認証が完了した際に応答に含まれる OP-Local Identifier はミクシィ認証と同様に https://id.mixi.jp/[ログインしたユーザーの ID] ですが、Claimed Identifier が

https://id.mixi.jp/[ユーザー ID]/friends/[ログインしたユーザーの ID]

となります。

なお、ブラウザによる https://id.mixi.jp/[ユーザー ID 1]/friends/[ユーザー ID 2] への通常のアクセスは、http://mixi.jp/show_friend.pl?id=[ユーザー ID 2] にリダイレクトされます。

コミュニティ認証

コミュニティ認証は、mixi 内でユーザーがどのコミュニティに所属しているかを、RP に証明します。

RPは、特別な Claimed Identifier

https://id.mixi.jp/community/[コミュニティ ID]

あるいは

http://mixi.jp/view_community.pl?id=[コミュニティ ID]

を指定して認証を要求します。OPは、ログインを要求しているユーザが、mixi内で [コミュニティ ID] で示されるコミュニティに参加しているかをチェックして、応答を返します。

認証が完了した際に応答に含まれる OP-Local Identifier はミクシィ認証、マイミクシィ認証と同様に https://id.mixi.jp/[ログインしたユーザーの ID] ですが、Claimed Identifier が

https://id.mixi.jp/community/[コミュニティ ID]/[ログインしたユーザーの ID]

となります。

なお、ブラウザによる https://id.mixi.jp/community/[コミュニティ ID]/[メンバ ID] への通常のアクセスは、http://mixi.jp/show_friend.pl?id=[メンバ ID] にリダイレクトされます。

エイリアス

mixi OpenID では、ユーザー ID の代わりに、ユーザー自身が設定したエイリアス (別名) を使用できます。

エイリアスを設定することで、ユーザーは https://id.mixi.jp/[ユーザー ID] の [ユーザー ID] 部分を、36文字以内の英小文字・数字・アンダースコアで構成される任意の文字列に変更することができます。

エイリアスは mixi OpenID の全ての認証で使用されます。ログインするユーザーがエイリアスを指定している場合、以下の URL が新たに Claimed Identifier として使用できるようになります。

  • https://id.mixi.jp/[ログインするユーザーのエイリアス]
  • https://id.mixi.jp/[ユーザーID or エイリアス]/friends/[ログインするユーザーのエイリアス]
  • https://id.mixi.jp/community/[コミュニティ]/[ログインするユーザーのエイリアス]

さらに、エイリアスを設定しているユーザーの友人は、以下の Claimed Identifier を新たに使用できます。

  • https://id.mixi.jp/[エイリアス]/friends

OP はエイリアスを設定しているユーザーについては Claimed Identifier としてエイリアスを含む URL を優先的に返すようになります。ただし、ユーザー ID が明示的に指定された場合は、エイリアスは使用されません。

ユーザーが入力した Identifier OPが返す Identifier
https://mixi.jp/ https://id.mixi.jp/[エイリアス]
https://id.mixi.jp/[エイリアス] https://id.mixi.jp/[エイリアス]
https://id.mixi.jp/[ユーザー ID] https://id.mixi.jp/[ユーザー ID]

なお、エイリアスを設定した場合も、通常のユーザーID (数字) によるログインは可能です。

ニックネーム

mixi OpenID が提供する全ての認証は、OpenID Simple Registration Extension 1.1(以下 SREG1.1)および OpenID Attribute Exchange 1.0(以下 AX1.0)を利用した、mixi 上のニックネームの引渡しをサポートしています。

RPは認証を要求する際に

  • SREG1.1の nickname 属性
  • AX1.0の Alias/Username 属性 http://axschema.org/namePerson/friendly

のどちらかに対する Fetch Message を含めることで、OP にニックネームの引渡しを要求します。

OPは、ユーザが許可している場合のみ、ニックネームを応答に含めて返します。

注意

本ドキュメントは 2008/08/20 時点での情報です。開発中のため、予告なく仕様が変更される場合があります。

参考

このページの上部へ