| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.openid.introduction">
- <title>導入</title>
- <para>
- <classname>Zend_OpenId</classname> は、OpenID 対応のサイトや
- ID プロバイダを作成するためのシンプルな <acronym>API</acronym>
- を提供する Zend Framework のコンポーネントです。
- </para>
- <sect2 id="zend.openid.introduction.what">
- <title>OpenID とは?</title>
- <para>
- OpenID は、ユーザ中心のデジタル識別子用のプロトコル群のことです。
- これらのプロトコルによって、ID プロバイダを使用したオンライン ID
- を作成します。この ID は、OpenID がサポートする場所ならどこでも使用可能です。
- OpenID 対応のサイトでは、
- ユーザ名やパスワードといった旧来の認証情報を覚えておく必要がなくなるわけです。
- すべての OpenID 対応サイトで単一の OpenID による ID を使用できます。
- この ID は、通常は <acronym>URL</acronym> となります。
- これはそのユーザの個人ページの <acronym>URL</acronym> かもしれませんし、
- blog などの他の情報を含むリソースの <acronym>URL</acronym> かもしれません。
- ユーザ名やパスワードの組み合わせをたくさん覚える必要はもうありません。
- ひとつの ID ですべてのインターネットサービスが使用できるのです。
- OpenID はオープンで、中央管理されておらずフリーなユーザ中心のソリューションです。
- 各自がどの OpenID プロバイダを使用するかを選択できますし、
- 独自の ID サーバを作成することもできます。
- OpenID 対応のサイトや ID プロバイダを作成する際に、
- どこかの許可を得る必要はありません。
- </para>
- <para>
- OpenID についての詳細な情報は
- <ulink url="http://www.openid.net/">OpenID の公式サイト</ulink>
- を参照ください。
- </para>
- </sect2>
- <sect2 id="zend.openid.introduction.how">
- <title>動作原理は?</title>
- <para>
- <classname>Zend_OpenId</classname> コンポーネントの主要な目的は、
- 次の図のような OpenID 認証プロトコルを実装することです。
- </para>
- <para>
- <inlinegraphic align="center" fileref="figures/zend.openid.protocol.jpg" format="JPEG" scale="100" valign="middle" width="559" />
- </para>
- <orderedlist>
- <listitem>
- <para>
- 認証処理はエンドユーザ側から始まります。
- まず OpenID 識別子をユーザエージェント経由で
- OpenID コンシューマに渡します。
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID コンシューマはユーザから受け取った識別子を正規化し、
- その内容を確認します。確認した結果として得られるのは、
- 識別子、OpenID プロバイダ <acronym>URL</acronym> そして OpenID プロトコルのバージョンです。
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID コンシューマは、Diffie-Hellman
- キーを使用してプロバイダとのオプションの関連を確立します。
- その結果、両者が共通の "共用する秘密" を保持することになり、
- これを用いてその後のメッセージの署名や検証を行います。
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID コンシューマは、ユーザエージェントを
- OpenID 認証リクエストとともに
- OpenID プロバイダの <acronym>URL</acronym> にリダイレクトします。
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID プロバイダはユーザエージェントが認証済みかどうかを確認し、
- 必要に応じて認証処理を行います。
- </para>
- </listitem>
- <listitem>
- <para>
- エンドユーザは所定のパスワードを入力します。
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID プロバイダは、指定されたコンシューマでその
- ID が許可されているかどうかを調べ、必要に応じてユーザに問い合わせます。
- </para>
- </listitem>
- <listitem>
- <para>
- エンドユーザは、その ID を渡してもよいかどうかを指定します。
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID プロバイダはユーザエージェントを
- OpenID コンシューマにリダイレクトします。その際のリクエストには
- "認証に通った" あるいは "失敗した" といった情報が含まれます。
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID コンシューマはプロバイダから受け取った情報を検証します。
- この検証には、ステップ 3 で取得した "共用する秘密"
- を用いるか、あるいは OpenID プロバイダにさらに直接リクエストを行います。
- </para>
- </listitem>
- </orderedlist>
- </sect2>
- <sect2 id="zend.openid.introduction.structure">
- <title>Zend_OpenId の構造</title>
- <para>
- <classname>Zend_OpenId</classname> は 2 つのサブパッケージで構成されています。
- まず最初が <classname>Zend_OpenId_Consumer</classname> で、これは
- OpenID 対応のサイトを開発するためのものです。もうひとつは
- <classname>Zend_OpenId_Provider</classname> で、これは OpenID
- サーバを開発するためのものです。これらはお互いに完全に独立しており、
- それぞれ個別に使用できます。
- </para>
- <para>
- これらのサブパッケージの唯一の共通部分は、
- <classname>Zend_OpenId_Extension_Sreg</classname> が実装している
- OpenID Simple Registration Extension と
- <classname>Zend_OpenId</classname> クラスのユーティリティ関数群です。
- </para>
- <note>
- <para>
- <classname>Zend_OpenId</classname> は、<ulink url="http://php.net/gmp">GMP
- 拡張モジュール</ulink> が使用可能な場合はそれを使用します。
- <classname>Zend_OpenId</classname> を使う場合は、
- GMP 拡張モジュールを有効にしておくとよりよいパフォーマンスが得られるでしょう。
- </para>
- </note>
- </sect2>
- <sect2 id="zend.openid.introduction.standards">
- <title>サポートする OpenID 標準規格</title>
- <para>
- <classname>Zend_OpenId</classname> コンポーネントは、
- 次の標準規格に対応しています。
- </para>
- <itemizedlist>
- <listitem>
- <para>
- OpenID Authentication protocol version 1.1
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID Authentication protocol version 2.0 draft 11
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID Simple Registration Extension version 1.0
- </para>
- </listitem>
- <listitem>
- <para>
- OpenID Simple Registration Extension version 1.1 draft 1
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|