| 2011年11月28日 Tech Fielders セミナー 「Windows Phone に認証機能を実装する」で使用した資料、ソースコードは以下からどうぞ。当日の収録動画もあります。 |
前回の続きです。
【WP for ITPro】Windows Phone から直接 Active Directory 認証を行うには ~その1
今回は、Windows Phone から AD FS を介して AD DS に認証を受けるためのアプリケーションを開発するための手順について解説します。
1. 必要な環境について
これから紹介する仕組みを実装するには、少なくとも以下の環境が必要です。ちょっと面倒ですが頑張ってください。
- Widnows Server 2008 R2 または 2008
- Active Directory Domain Service
- Active Directory Federation Service - Windows 7(仮想環境はダメ!)
- Windows Phone SDK(2008/2008 r2 にはインストールできません)
※ Visual Studio 2010 Express for Windows Phone も含まれています
※ 仮想環境だと Windows Phone Emulator が動きません!かならず物理環境を用意してください。
- Identity Developer Training Kit 2010 April
2.Windows Server の準備
必要な環境を構築しましょう。いちから作るのは大変ですが、それもまた楽し!
今回は、ドメインコントローラーと同じサーバーに AD FS をインストールするものとします。
- Windows Server 2008 または 2008 R2 をインストールする
Windows Server 2008 R2 SP1 評価版 のダウンロード - Active Directory をインストールする
「ファイル名を指定して実行」から「dcpromo」と入力して実行するとウィザードが起動します。インストール方法がよく分からない方は WebCast : Active Directory 入門編 を参照してください。2008年に収録したビデオですが、問題ありません。 - Active Directory Federation Service(AD FS)をセットアップする
AD FS は、こちらからダウンロードしてください。
いろいろ考慮しだすと先に進まないと思うので、ひとまずサクッとインストールして最小限の構成をするための手順書を作りました。
【IDM】Windows Phone アプリ開発者のための AD FS 2.0 セットアップ手順書 - サーバー証明書を p7b 形式で保存しておく
AD FS のエンドポイント(認証を要求するURL)は SOAP で実装されており、かつ SSL が要求されます。Windows Phone の場合、サーバー証明書は自動的にインストールされないため、Windows Phone からSOAPにアクセスすると「エンドポイントがリスンしてない!」というエラーが返されてしまいます。
この現象を回避するには、事前に Windows Phone 側にサーバー証明書をインストールしておく必要があるため、それに先立ってWindows Phone からネットワーク的に見える場所に証明書を準備しておく必要があります。
証明書の準備とインストール方法については以下の記事をご覧ください。
【WP for ITPro】Windows Phone とルート証明書の関係、自己署名証明書のインストール方法
3. Windows 7(開発環境)の準備
Windows 7 は開発環境であり、Windows Phone Emulator の動作検証端末でもあります。既に書いた通り、仮想環境上では Windows Phone エミュレーターが正常に動作しませんので、かならず物理環境にインストールしてください。
- Active Directory ドメインに参加
参加しなくても大丈夫なような気がするのですが....私の環境では参加しているので念のために記しておきます。 - Windows Phone SDK 7.1
何は無くとも、Windows Phone アプリの開発を行うための SDK をインストールします。SDK には Visual Studio 2010 Express for Windows Phone も含まれているので、別途ダウントードする必要はありません。SDK は以下からダウンロードしてインストールしてください。
ダウンロード詳細 Windows Phone SDK 7.1 - Windows Identity Developer Training Kit 2010 April
Windows Phone には AD FS にアクセスするためのライブラリが用意されていません。自分で作ることもできなくはないでしょうが、面倒なので既存のライブラリを流用したいでしょう。そこで使えるのが、デスクトップ Silverlight 用に用意されている SL.IdentityModel というライブラリです。
このライブラリは、Windows Identity Developer Training Kit 2010 April という非常にマニアックな(笑)トレーニングキットに含まれています。結構でかいファイルですが、これもダウンロードしてインストールしておきましょう。残念ながら英語版しかありません。でもライブラリなので、そんなの関係ねぇです(← あ、いいこと思いついた!これにちょっとした振りとか付ければギャグにできるかも!)。
Download: Identity Developer Training Kit - Microsoft Download Center - Download Details
4.サンプルプロジェクトを用意する
以上が全てインストールされたら準備完了です。
Visual Studio が起動出来たら、以下のサンプルプロジェクトを読み込んで実行してみてください。もちろん、サーバー名とかユーザーIDは変えてください。詳しくは次回の投稿で解説します。
