Zend Framework の紹介

 Learning Zend Framework

appendix

 Zend Framework リファレンス


  • 第36章 Zend_Gdata
  • 第37章 Zend_Http
  • 第38章 Zend_InfoCard
  • 第39章 Zend_Json
  • 第40章 Zend_Layout
  • 第41章 Zend_Ldap
  • 第42章 Zend_Loader
  • 第43章 Zend_Locale
  • 第44章 Zend_Log
  • 第45章 Zend_Mail
  • 第46章 Zend_Markup
  • 第47章 Zend_Measure
  • 第48章 Zend_Memory
  • 第49章 Zend_Mime
  • 第50章 Zend_Navigation
  • 第51章 Zend_Oauth
  • 第52章 Zend_OpenId
  • 第53章 Zend_Paginator
  • 第54章 Zend_Pdf
  • 第55章 Zend_ProgressBar
  • 第56章 Zend_Queue
  • 第57章 Zend_Reflection
  • 第58章 Zend_Registry
  • 第59章 Zend_Rest

  • 第60章 Zend_Search_Lucene
  • 第61章 Zend_Serializer
  • 第62章 Zend_Server
  • 第63章 Zend_Service
  • 第64章 Zend_Session
  • 第65章 Zend_Soap
  • 第66章 Zend_Tag
  • 第67章 Zend_Test
  • 第68章 Zend_Text
  • 第69章 Zend_TimeSync
  • 第70章 Zend_Tool
  • 第71章 Zend_Tool_Framework
  • 第72章 Zend_Tool_Project
  • 第73章 Zend_Translate
  • 第74章 Zend_Uri
  • 第75章 Zend_Validate
  • 第76章 Zend_Version
  • 第77章 Zend_View
  • 第78章 Zend_Wildfire
  • 第79章 Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 70.6% Update 2010-11-28 - Revision 23415

    第52章 Zend_OpenId

    52.1. 導入

    Zend_OpenId は、OpenID 対応のサイトや ID プロバイダを作成するためのシンプルな API を提供する Zend Framework のコンポーネントです。

    52.1.1. OpenID とは?

    OpenID は、ユーザ中心のデジタル識別子用のプロトコル群のことです。 これらのプロトコルによって、ID プロバイダを使用したオンライン ID を作成します。この ID は、OpenID がサポートする場所ならどこでも使用可能です。 OpenID 対応のサイトでは、 ユーザ名やパスワードといった旧来の認証情報を覚えておく必要がなくなるわけです。 すべての OpenID 対応サイトで単一の OpenID による ID を使用できます。 この ID は、通常は URL となります。 これはそのユーザの個人ページの URL かもしれませんし、 blog などの他の情報を含むリソースの URL かもしれません。 ユーザ名やパスワードの組み合わせをたくさん覚える必要はもうありません。 ひとつの ID ですべてのインターネットサービスが使用できるのです。 OpenID はオープンで、中央管理されておらずフリーなユーザ中心のソリューションです。 各自がどの OpenID プロバイダを使用するかを選択できますし、 独自の ID サーバを作成することもできます。 OpenID 対応のサイトや ID プロバイダを作成する際に、 どこかの許可を得る必要はありません。

    OpenID についての詳細な情報は OpenID の公式サイト を参照ください。

    52.1.2. 動作原理は?

    Zend_OpenId コンポーネントの主要な目的は、 次の図のような OpenID 認証プロトコルを実装することです。

    1. 認証処理はエンドユーザ側から始まります。 まず OpenID 識別子をユーザエージェント経由で OpenID コンシューマに渡します。

    2. OpenID コンシューマはユーザから受け取った識別子を正規化し、 その内容を確認します。確認した結果として得られるのは、 識別子、OpenID プロバイダ URL そして OpenID プロトコルのバージョンです。

    3. OpenID コンシューマは、Diffie-Hellman キーを使用してプロバイダとのオプションの関連を確立します。 その結果、両者が共通の "共用する秘密" を保持することになり、 これを用いてその後のメッセージの署名や検証を行います。

    4. OpenID コンシューマは、ユーザエージェントを OpenID 認証リクエストとともに OpenID プロバイダの URL にリダイレクトします。

    5. OpenID プロバイダはユーザエージェントが認証済みかどうかを確認し、 必要に応じて認証処理を行います。

    6. エンドユーザは所定のパスワードを入力します。

    7. OpenID プロバイダは、指定されたコンシューマでその ID が許可されているかどうかを調べ、必要に応じてユーザに問い合わせます。

    8. エンドユーザは、その ID を渡してもよいかどうかを指定します。

    9. OpenID プロバイダはユーザエージェントを OpenID コンシューマにリダイレクトします。その際のリクエストには "認証に通った" あるいは "失敗した" といった情報が含まれます。

    10. OpenID コンシューマはプロバイダから受け取った情報を検証します。 この検証には、ステップ 3 で取得した "共用する秘密" を用いるか、あるいは OpenID プロバイダにさらに直接リクエストを行います。

    52.1.3. Zend_OpenId の構造

    Zend_OpenId は 2 つのサブパッケージで構成されています。 まず最初が Zend_OpenId_Consumer で、これは OpenID 対応のサイトを開発するためのものです。もうひとつは Zend_OpenId_Provider で、これは OpenID サーバを開発するためのものです。これらはお互いに完全に独立しており、 それぞれ個別に使用できます。

    これらのサブパッケージの唯一の共通部分は、 Zend_OpenId_Extension_Sreg が実装している OpenID Simple Registration Extension と Zend_OpenId クラスのユーティリティ関数群です。

    [注意] 注意

    Zend_OpenId は、GMP 拡張モジュール が使用可能な場合はそれを使用します。 Zend_OpenId を使う場合は、 GMP 拡張モジュールを有効にしておくとよりよいパフォーマンスが得られるでしょう。

    52.1.4. サポートする OpenID 標準規格

    Zend_OpenId コンポーネントは、 次の標準規格に対応しています。

    • OpenID Authentication protocol version 1.1

    • OpenID Authentication protocol version 2.0 draft 11

    • OpenID Simple Registration Extension version 1.0

    • OpenID Simple Registration Extension version 1.1 draft 1

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...