Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Windows Azure Active Directoryことはじめ

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/03/28 00:00

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

目次

対象読者

  • 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の機能を用いたサンプルアプリケーションを作成してみましょう。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 安東 沙織(アンドウ サオリ)

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

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Windows Azureを始めてみよう
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5