委任認証用 PHP サンプルの実行
このトピックでは、PHP プログラミング言語で提供されるサンプルのインストール、実行、および拡張の方法を説明します。
重要: |
|---|
| PHP のサンプルは、ポリシー URL および戻り先 URL パラメータの既定値を使用するよう事前構成されています。これらのパラメータを更新してから、サンプルを使用します。これらのパラメータの更新方法の詳細については、このトピックの後半にある「サンプルの構成」を参照してください。 |
サンプルをインストールするときは、Web サーバーの適切な場所にサンプル ファイルを格納します。この説明は、Web サーバーに直接アクセスでき、そのサーバーからサイトを開発および参照することを前提としています。
重要: |
|---|
| これらのサンプルを実行するには、PHP バージョン 5.2 以降がインストールされていなければなりません。 |
サンプルをインストールするには
-
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) で入手する必要がある場合があります。
- su コマンドを実行し、スーパーユーザーとしてサインインします。
-
/etc/apache2/ ディレクトリに移動し、テキスト エディタを使用して default-server.conf ファイルを開きます。
-
<Directory "/srv/www/htdocs"> セクション ("/srv/www/htdocs" は http://<YourServerHostName>/ のドキュメント ルートです) を見つけ、
AllowOverride Noneの行をAllowOverride Allに変更します。この変更により、Delegated Authentication PHP パッケージに含まれる .htaccess ファイルが有効になります。サーバー上で .htaccess のオーバーライドを有効にしたくない場合、このファイルを検査して直接 Apache の構成に変更を加えることができます。
-
default-server.conf ファイルを保存し、次のコマンドを実行して Apache を再起動します。/etc/init.d/apache2 restart
-
/srv/www/htdocs ディレクトリに移動し、tar -zxvf <path>/delauth-php-1.0.tar.gz を実行して PHP パッケージを解凍します。<path> には、ダウンロードした delauth-php-1.0.tar.gz ファイルへのパスが入ります。
-
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 対応のサービスにアクセスできるようになります。 |
-
アプリケーションを登録し、アプリケーション ID を取得します。アプリケーション登録の詳細については、「委任認証用アプリケーション ID の取得」を参照してください。
注意: 両方のサンプルの構成プロセスを完了するには、登録時に提供されるシークレット キーと、登録後に Windows Live ID から提供されるアプリケーション ID の両方が必要になります。 -
テキスト エディタを使用して、サンプル ファイルの DelAuth-Sample1.xml および DelAuth-Sample2.xml を開きます。これらのファイルは C:\Inetpub\wwwroot\delauth\sampleX にあります。X はサンプル番号です。
- appID 要素に、アプリケーションの登録時に受け取ったアプリケーション ID を指定します。次の例は、指定後の要素を示しています。
<appid>0016000080000709</appid>
- secret 要素に、アプリケーションの登録時に作成したシークレット キーを指定します。次の例は、指定後の要素を示しています。
<secret>S!tr0ngPa55worD</secret>
- returnurl 要素に、サンプルの戻り先 URL を指定します。最初のサンプルの値は次のように設定します。
2 番目のサンプルの値は次のように設定します。<returnurl>http://<YourServerHostName>/delauth/sample1/delauth-handler.php</returnurl>
<returnurl>http://<YourServerHostName>/delauth/sample2/wlauth-handler.php</returnurl>
- policyurl 要素に、サンプルのプライバシー ポリシーの URL を指定します。サンプルの値は次のように設定します。
2 番目のサンプルの値は次のように設定します。<policyurl>http://<YourServerHostName>/delauth/sample1/policy.html</policyurl>
<policyurl>http://<YourServerHostName>/delauth/sample2/policy.html</policyurl>
-
サンプル構成ファイルを保存し、閉じます。
サンプルをインストールしたら、サンプルを実行して、Windows Live ID の委任認証がどのように動作するかのデモンストレーションを見ることができます。
最初のサンプルでは、(PHP ライブラリに入っている) GetConsentUrl、ProcessConsent、および ProcessConsentToken の各関数を使用して、Windows Live ID 承認サービスの承認トークンを要求、処理、解析する方法を示します。
最初のサンプルを実行するには
-
http://<YourServerHostName>/delauth/sample1/ に移動します。
-
[ここをクリック] をクリックします。Windows Live ID 承認サービスの承認要求の URL にリダイレクトされます。
-
Windows Live ID 対応のサービスにまだサインインしていない場合は、[サインイン] をクリックします。Windows Live ID のサインイン ページにリダイレクトされます。
-
有効な Windows Live ID およびパスワードを入力してサインインします。サインインすると、Windows Live ID 承認サービスは承認トークンの取得を試行し、ユーザーをサンプル アプリケーションのハンドラ ページにリダイレクトします。
-
サンプル アプリケーションのハンドラ ページは、ユーザーをサンプル アプリケーションの既定ページにリダイレクトします。
-
承認トークンの取得に成功すると、サンプル アプリケーションの既定ページは承認トークンを処理し、Cookie に保存して、承認トークンに格納されているさまざまな要素と承認トークン全体を表示します。
-
サンプル アプリケーションの既定ページの [ここをクリックします] をクリックして、承認トークンを削除します。承認アプリケーションのハンドラ ページにリダイレクトされ、そこで Cookie の期限が切れます。
2 番目のサンプルは、Web 認証と委任認証の機能を組み合わせて、Windows Live ID ユーザーをサインインさせ、Windows Live ID 承認サービスの承認トークンを要求、処理、解析し、ユーザーをサインアウトさせる方法を示します。
注意: |
|---|
| このサンプルでは、多数の PHP ライブラリ関数および Web 認証を目的とする処理手法が使用されています。これらの関数および手法の詳細については、「Windows Live ID Web Authentication SDK」の「Web 認証の使用」を参照してください。 |
2 番目のサンプルを実行するには
-
http://<YourServerHostName>/delauth/sample2/ に移動します。
-
ページ上の最初のリンクのテキストが [サインイン] の場合は、[サインイン] をクリックします。Windows Live ID のサインイン ページにリダイレクトされます。
-
有効な Windows Live ID およびパスワードを入力してサインインします。サンプル アプリケーションの既定ページにリダイレクトされます。[サインイン] のリンクは [サインアウト] に変わり、ユーザー ID がサンプル アプリケーションの既定ページに表示されます。
-
[ここをクリック] をクリックします。Windows Live ID 承認サービスの承認要求の URL にリダイレクトされます。Windows Live ID 承認サービスは、承認トークンの取得を試行し、ユーザーをサンプル アプリケーションのハンドラ ページにリダイレクトします。
-
サンプル アプリケーションのハンドラ ページは、ユーザーをサンプル アプリケーションの既定ページにリダイレクトします。
-
承認トークンの取得に成功すると、サンプル アプリケーションの既定ページに、承認トークンに格納されているさまざまな要素と承認トークン全体が表示されます。
-
[サインアウト] をクリックします。サインアウトが完了します。
次に、サイトのニーズを満たすために、サンプル コードを拡張する方法を探ってみましょう。
最初のサンプルでは、ハードコードされた単一の許可へのアクセスを要求します。この許可をニーズに合わせて変更したり、ハードコードされた許可をテキスト ボックスに置き換えて、リソース プロバイダが定義するさまざまなオファーおよびアクションへのアクセスをテストすることもできます(利用可能なリソース プロバイダの詳細については、Windows Live Dev Web サイトの Resource Provider Directory を参照してください)。2 番目のサンプルは最初のサンプルを元に作成され、Web サイト上での Web 認証と委任認証の統合をより完全に近い形で示しています。
どちらのサンプルも、あるリソース プロバイダに対する単一のオファー/アクションの送信が中心となっています。これらのサンプルを拡張して、複数のオファー/アクションを処理することができます。これを行うには、それぞれのオファー/アクションをコンマで区切ります。このようなオファー/アクションを送信する承認要求の作成方法の詳細については、「承認の要求」を参照してください。
PHP ライブラリに目を通し、他にどのような機能が使用できるかを確認します。PHP ライブラリには、Web サイトで Web 認証と委任認証の統合を容易にする関数がいくつかあります。必要に応じてライブラリを拡張し、サイトの要件に合わせることができます。
最後になりましたが、Windows Live ID Development Forum に参加すると、自分の発見を共有したり、他のユーザーから学ぶことができます。
