このトピックはまだ評価されていません このトピックを評価する

委任認証用 PHP サンプルの実行

このトピックでは、PHP プログラミング言語で提供されるサンプルのインストール、実行、および拡張の方法を説明します。

重要:
PHP のサンプルは、ポリシー URL および戻り先 URL パラメータの既定値を使用するよう事前構成されています。これらのパラメータを更新してから、サンプルを使用します。これらのパラメータの更新方法の詳細については、このトピックの後半にある「サンプルの構成」を参照してください。

サンプルをインストールするときは、Web サーバーの適切な場所にサンプル ファイルを格納します。この説明は、Web サーバーに直接アクセスでき、そのサーバーからサイトを開発および参照することを前提としています。

重要:
これらのサンプルを実行するには、PHP バージョン 5.2 以降がインストールされていなければなりません。

サンプルをインストールするには

  1. openSUSE 10.3 Linux プラットフォームで、YaST ツールを使用して、apache2、apache2-mod_PHP5、php5-mhash、php5-mcrypt、php5-openssl、php5-dba、php5-hash、および php5-dom のパッケージがインストールされていることを確認します。これらのパッケージの一部は、Novell updates page (http://www.novell.com/linux/download/updates/102_i386.html) で入手する必要がある場合があります。
  2. su コマンドを実行し、スーパーユーザーとしてサインインします。
  3. /etc/apache2/ ディレクトリに移動し、テキスト エディタを使用して default-server.conf ファイルを開きます。
  4. <Directory "/srv/www/htdocs"> セクション ("/srv/www/htdocs" は http://<YourServerHostName>/ のドキュメント ルートです) を見つけ、AllowOverride None の行を AllowOverride All に変更します。この変更により、Delegated Authentication PHP パッケージに含まれる .htaccess ファイルが有効になります。サーバー上で .htaccess のオーバーライドを有効にしたくない場合、このファイルを検査して直接 Apache の構成に変更を加えることができます。
  5. default-server.conf ファイルを保存し、次のコマンドを実行して Apache を再起動します。/etc/init.d/apache2 restart
  6. /srv/www/htdocs ディレクトリに移動し、tar -zxvf <path>/delauth-php-1.0.tar.gz を実行して PHP パッケージを解凍します。<path> には、ダウンロードした delauth-php-1.0.tar.gz ファイルへのパスが入ります。
  7. delauth-php-1.0 ディレクトリの名前を "delauth" に変更し、http://<YourServerHostName>/delauth/sample1/ が最初のサンプルの URL エントリ ポイントに、http://<YourServerHostName>/delauth/sample2/ が 2 番目のサンプルのエントリ ポイントになるようにします。

PHP のサンプルがインストールされます。PHP のライブラリは WindowsLiveLogon.php という名前で、両方のサンプルが共有する関数が格納されています。

重要:
サンプルには DelAuth-Sample1.xml という名前のファイルと DelAuth-Sample2.xml という名前のファイルが含まれています。これらのファイルには重要な機密情報が含まれているため、これらのファイルが入っているフォルダはインターネットからアクセスできないようにしてください。

サンプルを実行する前に、いくつかの構成を変更する必要があります。次の手順は、サンプルに含まれる構成ファイルの更新方法を説明しています。

サンプルを構成するには

重要:
サンプルを実行する前に Microsoft にアプリケーションを登録します。それにより、サンプルが Windows Live ID 対応のサービスにアクセスできるようになります。
  1. アプリケーションを登録し、アプリケーション ID を取得します。アプリケーション登録の詳細については、「委任認証用アプリケーション ID の取得」を参照してください。
    注意:
    両方のサンプルの構成プロセスを完了するには、登録時に提供されるシークレット キーと、登録後に Windows Live ID から提供されるアプリケーション ID の両方が必要になります。
  2. テキスト エディタを使用して、サンプル ファイルの DelAuth-Sample1.xml および DelAuth-Sample2.xml を開きます。これらのファイルは C:\Inetpub\wwwroot\delauth\sampleX にあります。X はサンプル番号です。
  3. appID 要素に、アプリケーションの登録時に受け取ったアプリケーション ID を指定します。次の例は、指定後の要素を示しています。
    <appid>0016000080000709</appid>
    
  4. secret 要素に、アプリケーションの登録時に作成したシークレット キーを指定します。次の例は、指定後の要素を示しています。
    <secret>S!tr0ngPa55worD</secret>
    
  5. returnurl 要素に、サンプルの戻り先 URL を指定します。最初のサンプルの値は次のように設定します。
    <returnurl>http://<YourServerHostName>/delauth/sample1/delauth-handler.php</returnurl>
    
    2 番目のサンプルの値は次のように設定します。
    <returnurl>http://<YourServerHostName>/delauth/sample2/wlauth-handler.php</returnurl>
    
  6. policyurl 要素に、サンプルのプライバシー ポリシーの URL を指定します。サンプルの値は次のように設定します。
    <policyurl>http://<YourServerHostName>/delauth/sample1/policy.html</policyurl>
    
    2 番目のサンプルの値は次のように設定します。
    <policyurl>http://<YourServerHostName>/delauth/sample2/policy.html</policyurl>
    
  7. サンプル構成ファイルを保存し、閉じます。

サンプルをインストールしたら、サンプルを実行して、Windows Live ID の委任認証がどのように動作するかのデモンストレーションを見ることができます。

最初のサンプルでは、(PHP ライブラリに入っている) GetConsentUrl、ProcessConsent、および ProcessConsentToken の各関数を使用して、Windows Live ID 承認サービスの承認トークンを要求、処理、解析する方法を示します。

最初のサンプルを実行するには

  1. http://<YourServerHostName>/delauth/sample1/ に移動します。
  2. [ここをクリック] をクリックします。Windows Live ID 承認サービスの承認要求の URL にリダイレクトされます。
  3. Windows Live ID 対応のサービスにまだサインインしていない場合は、[サインイン] をクリックします。Windows Live ID のサインイン ページにリダイレクトされます。
  4. 有効な Windows Live ID およびパスワードを入力してサインインします。サインインすると、Windows Live ID 承認サービスは承認トークンの取得を試行し、ユーザーをサンプル アプリケーションのハンドラ ページにリダイレクトします。
  5. サンプル アプリケーションのハンドラ ページは、ユーザーをサンプル アプリケーションの既定ページにリダイレクトします。
  6. 承認トークンの取得に成功すると、サンプル アプリケーションの既定ページは承認トークンを処理し、Cookie に保存して、承認トークンに格納されているさまざまな要素と承認トークン全体を表示します。
  7. サンプル アプリケーションの既定ページの [ここをクリックします] をクリックして、承認トークンを削除します。承認アプリケーションのハンドラ ページにリダイレクトされ、そこで Cookie の期限が切れます。

2 番目のサンプルは、Web 認証と委任認証の機能を組み合わせて、Windows Live ID ユーザーをサインインさせ、Windows Live ID 承認サービスの承認トークンを要求、処理、解析し、ユーザーをサインアウトさせる方法を示します。

注意:
このサンプルでは、多数の PHP ライブラリ関数および Web 認証を目的とする処理手法が使用されています。これらの関数および手法の詳細については、「Windows Live ID Web Authentication SDK」の「Web 認証の使用」を参照してください。

2 番目のサンプルを実行するには

  1. http://<YourServerHostName>/delauth/sample2/ に移動します。
  2. ページ上の最初のリンクのテキストが [サインイン] の場合は、[サインイン] をクリックします。Windows Live ID のサインイン ページにリダイレクトされます。
  3. 有効な Windows Live ID およびパスワードを入力してサインインします。サンプル アプリケーションの既定ページにリダイレクトされます。[サインイン] のリンクは [サインアウト] に変わり、ユーザー ID がサンプル アプリケーションの既定ページに表示されます。
  4. [ここをクリック] をクリックします。Windows Live ID 承認サービスの承認要求の URL にリダイレクトされます。Windows Live ID 承認サービスは、承認トークンの取得を試行し、ユーザーをサンプル アプリケーションのハンドラ ページにリダイレクトします。
  5. サンプル アプリケーションのハンドラ ページは、ユーザーをサンプル アプリケーションの既定ページにリダイレクトします。
  6. 承認トークンの取得に成功すると、サンプル アプリケーションの既定ページに、承認トークンに格納されているさまざまな要素と承認トークン全体が表示されます。
  7. [サインアウト] をクリックします。サインアウトが完了します。

次に、サイトのニーズを満たすために、サンプル コードを拡張する方法を探ってみましょう。

最初のサンプルでは、ハードコードされた単一の許可へのアクセスを要求します。この許可をニーズに合わせて変更したり、ハードコードされた許可をテキスト ボックスに置き換えて、リソース プロバイダが定義するさまざまなオファーおよびアクションへのアクセスをテストすることもできます(利用可能なリソース プロバイダの詳細については、Windows Live Dev Web サイトの Resource Provider Directory を参照してください)。2 番目のサンプルは最初のサンプルを元に作成され、Web サイト上での Web 認証と委任認証の統合をより完全に近い形で示しています。

どちらのサンプルも、あるリソース プロバイダに対する単一のオファー/アクションの送信が中心となっています。これらのサンプルを拡張して、複数のオファー/アクションを処理することができます。これを行うには、それぞれのオファー/アクションをコンマで区切ります。このようなオファー/アクションを送信する承認要求の作成方法の詳細については、「承認の要求」を参照してください。

PHP ライブラリに目を通し、他にどのような機能が使用できるかを確認します。PHP ライブラリには、Web サイトで Web 認証と委任認証の統合を容易にする関数がいくつかあります。必要に応じてライブラリを拡張し、サイトの要件に合わせることができます。

最後になりましたが、Windows Live ID Development Forum に参加すると、自分の発見を共有したり、他のユーザーから学ぶことができます。

この情報は役に立ちましたか。
(残り 1500 文字)