Zend_OpenId-Introduction.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="zend.openid.introduction">
  5. <title>導入</title>
  6. <para>
  7. <classname>Zend_OpenId</classname> は、OpenID 対応のサイトや
  8. ID プロバイダを作成するためのシンプルな <acronym>API</acronym>
  9. を提供する Zend Framework のコンポーネントです。
  10. </para>
  11. <sect2 id="zend.openid.introduction.what">
  12. <title>OpenID とは?</title>
  13. <para>
  14. OpenID は、ユーザ中心のデジタル識別子用のプロトコル群のことです。
  15. これらのプロトコルによって、ID プロバイダを使用したオンライン ID
  16. を作成します。この ID は、OpenID がサポートする場所ならどこでも使用可能です。
  17. OpenID 対応のサイトでは、
  18. ユーザ名やパスワードといった旧来の認証情報を覚えておく必要がなくなるわけです。
  19. すべての OpenID 対応サイトで単一の OpenID による ID を使用できます。
  20. この ID は、通常は <acronym>URL</acronym> となります。
  21. これはそのユーザの個人ページの <acronym>URL</acronym> かもしれませんし、
  22. blog などの他の情報を含むリソースの <acronym>URL</acronym> かもしれません。
  23. ユーザ名やパスワードの組み合わせをたくさん覚える必要はもうありません。
  24. ひとつの ID ですべてのインターネットサービスが使用できるのです。
  25. OpenID はオープンで、中央管理されておらずフリーなユーザ中心のソリューションです。
  26. 各自がどの OpenID プロバイダを使用するかを選択できますし、
  27. 独自の ID サーバを作成することもできます。
  28. OpenID 対応のサイトや ID プロバイダを作成する際に、
  29. どこかの許可を得る必要はありません。
  30. </para>
  31. <para>
  32. OpenID についての詳細な情報は
  33. <ulink url="http://www.openid.net/">OpenID の公式サイト</ulink>
  34. を参照ください。
  35. </para>
  36. </sect2>
  37. <sect2 id="zend.openid.introduction.how">
  38. <title>動作原理は?</title>
  39. <para>
  40. <classname>Zend_OpenId</classname> コンポーネントの主要な目的は、
  41. 次の図のような OpenID 認証プロトコルを実装することです。
  42. </para>
  43. <para>
  44. <inlinegraphic align="center" fileref="figures/zend.openid.protocol.jpg" format="JPEG" scale="100" valign="middle" width="559" />
  45. </para>
  46. <orderedlist>
  47. <listitem>
  48. <para>
  49. 認証処理はエンドユーザ側から始まります。
  50. まず OpenID 識別子をユーザエージェント経由で
  51. OpenID コンシューマに渡します。
  52. </para>
  53. </listitem>
  54. <listitem>
  55. <para>
  56. OpenID コンシューマはユーザから受け取った識別子を正規化し、
  57. その内容を確認します。確認した結果として得られるのは、
  58. 識別子、OpenID プロバイダ <acronym>URL</acronym> そして OpenID プロトコルのバージョンです。
  59. </para>
  60. </listitem>
  61. <listitem>
  62. <para>
  63. OpenID コンシューマは、Diffie-Hellman
  64. キーを使用してプロバイダとのオプションの関連を確立します。
  65. その結果、両者が共通の "共用する秘密" を保持することになり、
  66. これを用いてその後のメッセージの署名や検証を行います。
  67. </para>
  68. </listitem>
  69. <listitem>
  70. <para>
  71. OpenID コンシューマは、ユーザエージェントを
  72. OpenID 認証リクエストとともに
  73. OpenID プロバイダの <acronym>URL</acronym> にリダイレクトします。
  74. </para>
  75. </listitem>
  76. <listitem>
  77. <para>
  78. OpenID プロバイダはユーザエージェントが認証済みかどうかを確認し、
  79. 必要に応じて認証処理を行います。
  80. </para>
  81. </listitem>
  82. <listitem>
  83. <para>
  84. エンドユーザは所定のパスワードを入力します。
  85. </para>
  86. </listitem>
  87. <listitem>
  88. <para>
  89. OpenID プロバイダは、指定されたコンシューマでその
  90. ID が許可されているかどうかを調べ、必要に応じてユーザに問い合わせます。
  91. </para>
  92. </listitem>
  93. <listitem>
  94. <para>
  95. エンドユーザは、その ID を渡してもよいかどうかを指定します。
  96. </para>
  97. </listitem>
  98. <listitem>
  99. <para>
  100. OpenID プロバイダはユーザエージェントを
  101. OpenID コンシューマにリダイレクトします。その際のリクエストには
  102. "認証に通った" あるいは "失敗した" といった情報が含まれます。
  103. </para>
  104. </listitem>
  105. <listitem>
  106. <para>
  107. OpenID コンシューマはプロバイダから受け取った情報を検証します。
  108. この検証には、ステップ 3 で取得した "共用する秘密"
  109. を用いるか、あるいは OpenID プロバイダにさらに直接リクエストを行います。
  110. </para>
  111. </listitem>
  112. </orderedlist>
  113. </sect2>
  114. <sect2 id="zend.openid.introduction.structure">
  115. <title>Zend_OpenId の構造</title>
  116. <para>
  117. <classname>Zend_OpenId</classname> は 2 つのサブパッケージで構成されています。
  118. まず最初が <classname>Zend_OpenId_Consumer</classname> で、これは
  119. OpenID 対応のサイトを開発するためのものです。もうひとつは
  120. <classname>Zend_OpenId_Provider</classname> で、これは OpenID
  121. サーバを開発するためのものです。これらはお互いに完全に独立しており、
  122. それぞれ個別に使用できます。
  123. </para>
  124. <para>
  125. これらのサブパッケージの唯一の共通部分は、
  126. <classname>Zend_OpenId_Extension_Sreg</classname> が実装している
  127. OpenID Simple Registration Extension と
  128. <classname>Zend_OpenId</classname> クラスのユーティリティ関数群です。
  129. </para>
  130. <note>
  131. <para>
  132. <classname>Zend_OpenId</classname> は、<ulink url="http://php.net/gmp">GMP
  133. 拡張モジュール</ulink> が使用可能な場合はそれを使用します。
  134. <classname>Zend_OpenId</classname> を使う場合は、
  135. GMP 拡張モジュールを有効にしておくとよりよいパフォーマンスが得られるでしょう。
  136. </para>
  137. </note>
  138. </sect2>
  139. <sect2 id="zend.openid.introduction.standards">
  140. <title>サポートする OpenID 標準規格</title>
  141. <para>
  142. <classname>Zend_OpenId</classname> コンポーネントは、
  143. 次の標準規格に対応しています。
  144. </para>
  145. <itemizedlist>
  146. <listitem>
  147. <para>
  148. OpenID Authentication protocol version 1.1
  149. </para>
  150. </listitem>
  151. <listitem>
  152. <para>
  153. OpenID Authentication protocol version 2.0 draft 11
  154. </para>
  155. </listitem>
  156. <listitem>
  157. <para>
  158. OpenID Simple Registration Extension version 1.0
  159. </para>
  160. </listitem>
  161. <listitem>
  162. <para>
  163. OpenID Simple Registration Extension version 1.1 draft 1
  164. </para>
  165. </listitem>
  166. </itemizedlist>
  167. </sect2>
  168. </sect1>
  169. <!--
  170. vim:se ts=4 sw=4 et:
  171. -->