WINGSプロジェクト 安東 沙織 [著] 山田 祥寛 [監修] 2014/03/28 00:00
このエントリーをはてなブックマークに追加

サンプルファイル 4457.19 KB
1 2 3 4 5 6 7 8 →

 本稿では、Office 365、Dynamics CRM OnlineなどMicrosoft社のクラウドサービスの認証基盤としても利用されているWindows Azure Active Directoryを簡単なサンプルを交えて、紹介していきます。

Windows Azureスタートアップキャンペーン実施中!

 Windows Azureのアカウントをまだ開設していない方を対象に、本稿を読んでWindows Azureをお試しいただくだけで、先着で「大手ECサイトのギフト券がもれなく当たるキャンペーン」を実施しています! 詳しくは下記のキャンペーンページをご参照ください(※キャンペーンへの参加を希望される方は、必ず先に同ページをよくご確認ください)。

 

対象読者

  • Windows Azureに興味がある方
  • Windows Azure Active Directoryに興味がある方

必要な環境

  • Windows Azureサブスクリプション
  • Microsoft Visual Studio 2013
  • .NET Framework 4.5以上

Windows Azure Active Directoryとは

 Windows Azure Active Directory(以下、WA AD)は、認証と認可を提供するサービスです。Active Directoryというと、従来のWindows Server Active Directoryを連想される方が多いと思いますが、WA ADは、従来のActive Directoryにおけるドメインサービス、その中でもアイデンティティ管理の部分に特化した機能と言ってよいでしょう。また、ユーザ情報へのアクセスやユーザ認証に利用されていたプロトコルであるLDAPやKerberosなどに代わり、WA ADではREST APIやSAML-P、WS-Federationなどのプロトコルを採用しています。

 こう書くと全く異なるもののように聞こえるかもしれませんが、既存のADとWA ADのディレクトリサービスを同期させて(*1)、グループやユーザ情報をクラウド側に保持することなども可能です。

*1

 現時点では、オンプレミスのADからWA ADへの一方向の同期のみが機能として提供されています。

 それでは、それぞれの機能について、紹介していきます。WA ADは、大きくは2つのサービスから構成されています。

  • アクセスコントロールサービス
  • ディレクトリサービス

 アクセスコントロールサービスは、ADをはじめ、GoogleやFacebookなどのユーザ情報を所持/提供する機構(Identity Provider)と、提供されたユーザ情報を利用するアプリケーションやサービス(Relying Party)を仲介する機能です。

 図1の通り、Identity Providerごとのプロトコルの差分を吸収し、統一のプロトコルでアプリケーションにユーザ情報を提供します。そのため、アプリケーション側では、連携したいIdentity Providerごとに個別設定を行う必要がありません。また、新たなIdentity Providerと連携する場合にも、アクセスコントロールサービスが対応していれば、すぐに利用可能となります。

図1:アクセスコントロールサービス
図1:アクセスコントロールサービス

 2つめのディレクトリサービスとは、ユーザ情報を保持/提供する機能と認証サーバの役割を持っています。ユーザ情報を保持/提供しているという意味では、アクセスコントロールの紹介の中で記載した、GoogleやFacebookなどと同様にIdentity Providerとして考えられます。

 また、ディレクトリサービスでは多要素認証に対応しています。通常のID/パスワード認証方法に加えて、ワンタイムパスワードなどのモバイルアプリケーション/電話/テキストメッセージなどにより、セキュリティ強化を実現しています。

図2:ディレクトリサービス
図2:ディレクトリサービス

 ディレクトリサービスの操作には、Windows Azure Active Directory Graph(以下、Graph)およびWindows Azure Active Directory Authentication Library(以下、ADAL)が用意されています。

 Graphは、Windows Server Active Directoryに対して、ADSIやADO.NETを利用してプログラムからユーザ情報の操作していたのと同様に、REST APIのエンドポイントを利用して、ユーザやグループ情報に対して、プログラムから生成・読み込み・変更・削除(CRUD操作)操作を行う際に利用します。

 一方、ADALは、オンプレミスまはたクラウドのActive Directoryに対して、簡易かつ安全に認証やアクセストークンを取得するためのライブラリです。現時点では、.NET Framework/Windowsストアアプリ/Node.js用のライブラリが用意されています。

 それでは、WA ADの機能を用いたサンプルアプリケーションを作成してみましょう。


こちらの関連記事もおすすめです

プロフィール
WINGSプロジェクト 安東 沙織 アンドウ サオリ

WINGSプロジェクトについて>
有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2012年2月時点での登録メンバは37名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。


プロフィール
山田 祥寛 ヤマダ ヨシヒロ

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。
主な著書に「入門シリーズ(サーバサイドAjax/XMLDB/PEAR/Smarty)」「独習シリーズ(ASP.NET/PHP)」「10日でおぼえる入門教室シリーズ(ASP.NET/PHP/Jakarta/JSP&サーブレット/XML)」「Pocket詳解辞典シリーズ(ASP.NET/PHP/Perl&CGI)」「今日からつかえるシリーズ(PHP/JSP&サーブレット/XML/ASP)」「書き込み式 SQLのドリル」他、著書多数


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト