【WP for ITPro】Windows Phone から直接 Active Directory 認証を行うには ~その1

2011年11月28日 Tech Fielders セミナー 「Windows Phone に認証機能を実装する」で使用した資料、ソースコードは以下からどうぞ。当日の収録動画もあります。 2011/11/28 セミナー資料 Windows Phone アプリケーションに認証機能を実装する

Windows Phone に業務アプリケーションをインストールして使用する場合、業務アプリケーショにはなんらかの「認証」の仕組みが実装されている必要があります。もちろん、社内にはきちんと管理された認証基盤が設置されているという前提です。例えば Active Directory ですね。

ここで業務サービスの構成について簡単にまとめておきます。考慮しなければならないのは大きく分けて以下の2点です。

  • 業務サービスの場所
    • オンプレミス
    • クラウド
  • 業務サービスにアクセスする Windows Phone アプリケーションが何か?
    • Internet Explorer Mobile 9
    • Silverlight アプリケーション

業務サービスの場所については言わずもがなですね。社内認証基盤との通信経路が確保されているかどうかが重要な課題になります。オンプレミスの業務サービスであれば通信経路の心配は必要ありませんが、クラウドに存在する場合には何らかの方策を検討する必要があります。

そこで使えるのが、IT Pro の皆さんにはおなじみ「Windows Azure Connect」です。Windows Azure Connect を使用することで、Windows Azure 上のインスタンスは社内 Active Directory ドメインと通信することができるようになります。必要であれば、AD ドメインに参加することだって可能です。

image
※ Windows Azure Connect の使い方は IT Pro (IT 担当者) のための Windows Azure Platform 運用管理ガイド 1.0 へ!

業務サービス側が社内 AD での認証を行ってくれれば、Windows Phone アプリケーション側には認証に関するロジックを実装する必要はありません。せいぜい、ユーザーIDとパスワードを入力するためのダイアログボックス程度です。Windows Phone 側のアプリケーションが IE9 であれば、それさえも必要なく、認証が必要になると以下のようなポップアップが表示されます。

image

では、Windows Phone から直接 Active Directory で認証したい場合はどうしましょう?

image

あまり大きな声では言えませんが、現時点で Windows Phone は System.DirectoryServce をサポートしておらず、Active Directory ドメインに参加したり、Active Directory ドメインに直接認証を依頼することが事実上困難な状況です。

では、全く道が無いかといえばそうでもなく、Windows Phone アプリケーションと Active Directory の間に「認証代行サービス」的な仲介役を設置すれば何とかなります。つまり、認証代行サービスがユーザーIDとパスワードを受け取り、裏で AD認証を行い、結果を Windows Phone アプリに返してくれる...といったものです。

image

いま「えぇ、作るのぉ~」とげんなりした方、安心してください。Active Directory Federation Service という強い味方がいるじゃないですか!すなわち、以下のようなイメージです。

image

AD FS は、何もパッシブな WEB SSO だけで使用するものではありません。WS-Trust というプロトコルを使用して、アクティブな認証をすることだってできるのです。

次回は Windows Phone アプリから AD FS にアクセスするための環境構築について解説します。

つづき 【WP for ITPro】Windows Phone から直接 Active Directory 認証を行うには ~その2