2012年7月13日金曜日

[WAAD]Graph API で Office365 アカウントを管理する


Windows Azure Active Directory(WAAD)は Office365 などで利用されるマイクロソフトのオンライン・ディレクトリ・サービスです。
ということは Office365 のユーザ情報は WAAD 内にストアされており、Graph API で管理することが出来る、ということになります。

早速、Office365 のユーザの情報を Graph API で取得してみたいと思います。

まず当然ですが Office365 上にユーザを作っておきます。


このユーザ情報を Graph API を試すためのツールである Graph Expolorer を使って取得してみます。

このツールの Resource の値に
  - https://directory.windows.net/sub02adfs.onmicrosoft.com/Users
という形で対象ドメインと取得リソースを指定すれば値が取得できるはずです。



早速、GET をクリックしてみると、、、当然認証が走ります。

この中の Principal Id とか Symmetric Key とは何を指しているのかが、よくわかりません。

このあたりのドキュメントを読むと Graph API を使うには Service Princial を作成するという作業が必要の様です。
 - How-to Procedure: Authenticate To Windows Azure AD Graph Using Windows Azure AD Access Control
   http://msdn.microsoft.com/en-us/library/hh974468

具体的には Office365 の Powershell コマンドレットを使って Service Principal Id を取得するスクリプトを実行する必要があります。
※事前に Microsoft Online Servies サインインアシスタントも必要


ただ、面倒なので既に用意されているスクリプトを使いましょう。
 - PowerShell authorization script
   http://iddemo.blob.core.windows.net/files/CreateServicePrincipal.ps1

上記は直リンクですが、CodePlex で公開されているサンプルアプリケーションの中にもスクリプトが含まれていますので、そちらを利用しても良いでしょう。

 - サンプルアプリケーション
   http://code.msdn.microsoft.com/Sample-App-for-accessing-d71122ff

この中の「C#\PowerShell Scripts」の中に、CreateServicePrincipal.ps1 が上記からダウンロードできるスクリプトと同じものです。


このスクリプトを実行すると Service PrincipalName の指定するように要求されるので、任意の名前を入力します。

Windows Azure Active Directory 内でのユニーク性のチェックが行われ、問題なければマイクロソフト・オンライン・サービスの認証が走り、4つの値が払い出されます。

・Company ID
・AppPrincipal ID
・App Principal Secret
・Audience URI

この値の中の、AppPrincipal ID が先ほどの Graph Explorer の Principal Id、App Principal Secret が Symmetric Key に対応しているので、先ほどのログイン画面でその値を入力しログオンするとユーザの情報が表示されます。
※他の値については SSO を行う際に使うものなのでそのうち紹介したいと思います。


さきほど Office365 上に作ったユーザも確認できます。


今回は単に一覧を表示するだけでしたが、当然追加・変更・削除も出来るので、今後は Office365 へのプロビジョニングを DirSync に頼らなくても出来る様になってくると思います。
TechEd North America のセッションを見ていると既に FIM 2010 用の Graph API Management Agent を開発している会社もあるようなので、より柔軟にオンライン・アカウントを管理出来る様になってくると思います。


0 件のコメント: