ソーシャル エンタープライズに向けた Active Directory の見直し (第 2 部)


このポストは、6 月 19 日に投稿された Reimagining Active Directory for the Social Enterprise (Part 2) の翻訳です。

ID 管理システムの大きな利点は、数多くのユーザー、デバイス、およびアプリケーションを一つに統合できること、さらに、これらの接続すべてをアプリケーションや管理者が把握し管理できることにあります。そのため、大抵の場合は、ディレクトリを介して接続される "対象" が多ければ多いほど、ID 管理システムの利用価値も高くなります。接続するアプリケーションが多いほど、ディレクトリのユーザーにはより多くのメリットがあり、ディレクトリに接続するユーザーが多いほど、アプリケーションをディレクトリに接続するメリットが高まります。

それでは、この方程式にクラウドを加えるとどうなるでしょう。Active Directory などの ID 管理ソリューションは組織内での接続対象の管理に成果を上げてきましたが、クラウドでは、組織の範囲を超えて接続を行います。クラウドが先駆けとなって、組織が利用できるアプリケーションの数が飛躍的に増え、さらに、これらのアプリケーションを利用してやりとりできるユーザーやデバイスの数も大幅に増えています。ユビキタスな接続とは、ユーザーや組織が場所を問わずにあらゆるアプリケーションを利用できることを意味します。そして、あらゆるアプリケーションがあらゆるユーザー (組織内のユーザー、パートナー、またはお客様) から利用される可能性があるのです。組織がディレクトリへ接続することにより得られる "有効市場" の規模は膨大です。

このような広がりは、ID 管理システムの潜在価値を大きく変革します。ただし、この潜在価値を利用するには、組織は接続先の大半の対象物が自分の直接の管理下にはないという環境で機能しなければなりません。そこでは、アプリケーションはクラウドで実行され、組織のデータセンター内ではなく、ソフトウェア ベンダー、クラウド プラットフォーム プロバイダー、またはその他のサード パーティによって管理されます。ユーザーは組織によって管理されるのではなく、各 ID 発行元の認証に基づいて取り扱われる顧客でありパートナーとなります。さらに、組織からの支給品以外の携帯電話、タブレット、およびその他のコンシューマー指向のデバイスを利用する大多数のユーザーをサポートする必要があります。

そのため、この機会を利用して、自分の ID 管理やアプリケーションを外部の増大するアプリケーションやユーザーと接続しようと考える組織は、組織のディレクトリへの接続を簡単にしたり、接続を作成する新たな方法を導入したり、外部接続を安全に処理できる新たな種類のワークフロー、ポリシー、およびガバナンスを構築したりする必要があります。

私たちは、組織がこのような新しい世界と "接続" できるようにするために Active Directory の見直しを行ってきました。ここでいくつかの点について見てみましょう。

Windows Azure Active Directory 開発者プレビュー

Windows Azure の春のリリースの一環として、6 月 7 日、Windows Azure Active Directory の開発者プレビューが発表されました。開発者プレビューでは Windows Azure Active Directory サービス (この記事の第 1 部で説明しています) に対して 2 つの大きな機能追加が行われています。1 つめの機能は、利用の簡単な REST インターフェイスを用いて、ディレクトリ内の情報に接続したり、情報を使用したりできるというものです。2 つめの機能は、開発者が Windows Azure Active Directory の組織向けシングル サインオン (SSO) 機能に接続できるというものであり、この SSO 機能は、Microsoft Office 365、Windows Intune、およびその他のマイクロソフト製品で現在使われているものと同じです。

近日中に公開予定の開発者プレビューは、Windows Azure Active Directory の既存の機能をベースに構築されています。これらの機能には、Google や Facebook といったコンシューマー向けのインターネット ID 発行者との統合サポートや、クラウドや企業にまたがる展開での同期テクノロジを使用した Active Directory のサポートが含まれています。

既存の機能と新しい機能を併せて活用することにより、開発者は他のディレクトリ統合アプリケーションとの接続を提供するアプリケーションを簡単に作成できるようになります。ユーザーはサードパーティやマイクロソフトのアプリケーションにまたがって SSO を実行し、また、組織の連絡先やグループ、役割といった情報はこれらのアプリケーションにまたがって共有されます。管理者の立場で見るならば、Windows Azure Active Directory は、ID とポリシーのライフ サイクル管理をアプリケーションにまたがって行うための基盤を提供するものと言えるでしょう。

それでは、新しい機能について詳しく見てみましょう。

アプリケーションをディレクトリ内の情報に接続

Windows Azure Active Directory 開発者プレビューでは、REST/HTTP インターフェイスを使用してアプリケーションを簡単にディレクトリに接続できる機能が追加されています。

許可されたアプリケーションは、次のような URL を使用して、Windows Azure Active Directory 内の情報を操作することができます。

https://directory.windows.net/contoso.com/Users(‘Ed@Contoso.com’)

このような URL を使用すると、ディレクトリ内のオブジェクトに直接アクセスすることができます。たとえば、この URL に対して HTTP GET を実行すると、次の JSON レスポンスが返されます (読みやすいように一部省略しています)。

{ “d”:  {
   "Manager": { "uri":
    "https://directory.windows.net/contoso.com/Users('User...')/Manager" },
  "MemberOf": { "uri":
     "https://directory.windows.net/contoso.com/Users('User...')/MemberOf" },
  "ObjectId": "90ef7131-9d01-4177-b5c6-fa2eb873ef19",
  "ObjectReference": "User_90ef7131-9d01-4177-b5c6-fa2eb873ef19",
  "ObjectType": "User",
  "AccountEnabled": true,
  "DisplayName": "Ed Blanton",
  "GivenName": "Ed",
  "Surname": "Blanton",
  "UserPrincipalName": "Ed@contoso.com",
  "Mail": "Ed@contoso.com",
  "JobTitle": "Vice President",
  "Department": "Operations",
  "TelephoneNumber": "4258828080",
  "Mobile": "2069417891",
  "StreetAddress": "One Main Street",
  "PhysicalDeliveryOfficeName": "Building 2",
  "City": "Redmond",
  "State": "WA",
  "Country": "US",
  "PostalCode": "98007" } }

このようなインターネット対応のインターフェイスが使用できるので、開発者はどのようなプラットフォーム上で構築作業を行うかにかかわらず、アプリケーションを Windows Azure Active Directory と簡単に統合できます。標準の HTTP リクエストを実行することで、開発者はディレクトリ内のあらゆる "対象" (ユーザーなど) にアクセスでき、"対象" 同士の関係にアクセスできます。前述の例に続き、さらにユーザーのグループにも簡単にアクセスすることができる例を紹介しましょう。ここでは次の URL を使用します。

https://directory.windows.net/contoso.com/Users(‘Ed@Contoso.com’)/MemberOf

この URL に対して HTTP GET を実行すると、Ed に関するグループのリストを示す次のような JSON レスポンスが返されます (読みやすいように一部省略しています)。


"results": [
  { "__metadata": { … }
    "ObjectId": "30a041bf-e43f-42d6-bec4-a24ce33d5d42",
    "ObjectReference": "Group_30a041bf-e43f-42d6-bec4-a24ce33d5d42",
    "ObjectType": "Group",
    "DisplayName": "Vice Presidents",
    "Mail": null
  },
  { "__metadata": { … }
    "ObjectId": "451758b1-a66e-4d74-b6ce-03c7ec2fee7e",
    "ObjectReference": "Group_451758b1-a66e-4d74-b6ce-03c7ec2fee7e",
    "ObjectType": "Group",
    "DisplayName": "All Users",
    "Mail": null
  },
 …

ディレクトリのインターフェイスは標準の REST セマンティクスを用いて構築されているので、ディレクトリを扱うための特別なプロトコルやライブラリは必要ありません。標準の REST インターフェイスを使用して、エンティティ (ノード) やエンティティ間の関係 (アーク) を含むグラフを操作するというアプローチ (グラフ インターフェイスとも呼ばれます) は、インターネットではきわめて一般的です。たとえば、Facebook 上の情報の多くはこの方法で利用することが可能です。

先週、北米で開催された Microsoft TechEd 2012 では、Edward Wu がディレクトリ グラフ インターフェイス (英語) に関する講演を行いました。彼は、ディレクトリを使用するアプリケーションが高度さを増す中で、この URL ベースのシンプルな直接アクセスを使用してアプリケーションを構築しながら、Open Data Protocol (OData) (英語) バージョン 3 によって提供される高度なフィルタリングおよびメタデータ操作を活用する方法について述べています。

さらに、彼は、今回のプレビュー版にいくつかの重要な機能が含まれていない点にも言及しています。開発者にとって、書き込み機能や、ディレクトリ内での情報変更を通知する機能、プロビジョニング作業のサポート機能といったものが必要なことは私たちも承知しており、REST セマンティクスを使用してこれらの機能を提供する最良の方法について開発者と議論を重ねているところです。

新しいディレクトリ グラフ インターフェイスを使用すれば、Windows Azure Active Directory やグラフ インターフェイスと動作するその他のクラウド ソリューションと統合するアプリケーションの作成が簡単にできるようになります。たとえば、BuiltSteady (英語) では、Windows Azure Active Directory と Facebook の両方で利用できるグラフ インターフェイスを使用して、業務からユーザー エクスペリエンスまでを含むタスク管理をインテリジェントに支援するよう、アプリケーションの機能を強化しています。

ユーザーをディレクトリに接続

ここまでは、REST/HTTP などの Web テクノロジを利用すると、アプリケーションをいかに簡単にディレクトリに接続できるようになるかについて説明してきました。クラウドを利用すれば、新しいユーザーをディレクトリに接続するのも簡単です。開発者プレビューで追加された主な機能の 2 つめは、Office 365 や他のマイクロソフト アプリケーションが使用しているものと同じディレクトリやユーザー情報にアプリケーションを接続できるようにする機能です。

この新しい機能をわかりやすく捉えるためには、次のように考えてみるとよいでしょう。クラウドベースのアプリケーションを構築するアプリケーション開発者は、ディレクトリが出現する以前と同様の多対多のジレンマに直面しています。当時、ID 管理を行うためには、原則として各アプリケーションが固有のカスタムシステムを提供する必要がありました。ただし、今日直面しているのは、多様な ID 発行者とアプリケーションをいかに統合するかという問題です。この状況を次の図に示してみます。

共有ディレクトリを利用し、さらに、ディレクトリがこれらの ID 発行者を直接サポートすることによって、開発者や管理者はこの複雑な状況を 1 対 1 の統合された図式でシンプルに捉えることができるようになります。これを次の図に示します。

このような統合を可能にする共有ディレクトリを採用することは、開発者、管理者、およびユーザーにとって多くのメリットがあります。たとえば、ある顧客企業との接続を目的としてアプリケーションを一度、共有ディレクトリと統合したとします。その場合、Windows Azure Active Directory を使用している他の組織と接続するために追加の統合作業をする必要は、ほとんどの場合、一切ありません。これまで新しい顧客がアプリケーションを導入するたびに、顧客のディレクトリに合わせたカスタム統合を必要としていた ISV (独立系ソフトウェア ベンダー) にとって、これは大きなチャンスです。Facebook、Google、あるいはマイクロソフト アカウント サービスが追加導入されても、一度統合されていれば、10 億あるいはそれ以上の ID が使用できるようになります。これにより適応力が飛躍的に向上することは明らかです。

Windows Azure Active Directory が外部の ID プロバイダーと接続する際に用いる主なテクノロジの 1 つは、ID フェデレーションです。Windows Azure Active Directory は、コンシューマー指向とエンタープライズ指向の両方の ID プロバイダーを含む、さまざまな種類の ID プロバイダーをサポートしています。

Windows Azure Active Directory では、コンシューマー ID に接続するために、Facebook のほか、Yahoo! や Google などの OpenID ベースの ID プロバイダーやマイクロソフト アカウント サービスとの統合を既に行っています。これについては、Chris Jones と Steven Sinofsky が Building Windows 8 ブログの最近の記事で述べています。その中で Chris は、"Microsoft アカウント" を "Microsoft の製品とサービスをお使いいただく個人ユーザー向けの ID サービス" であると説明しています。

Windows Azure Active Directory 開発者プレビューでは、Office 365 や他のマイクロソフト アプリケーションで SSO を実行できます。これについては、Stuart Kwan が先週開催された TechEd の Windows Azure Active Directory の概要 (英語) の中で述べています。彼の説明にもあるとおり、私たちは現在、アプリケーションとディレクトリとの間で SSO を可能にするために WS フェデレーションをサポートしています。同時に、SAML/P、OAuth 2、および OpenID Connect プロトコルを戦略的に重要なものとして捉え、これらのプロトコルのサポートにも力を入れていく予定です。アプリケーションとの統合は標準プロトコルで実現されるので、この SSO 機能は、あらゆるテクノロジ スタック上で実行されるあらゆるアプリケーションで利用できます。Stuart の講演に加えて、Vittorio Bertocci も、Windows Identity Foundation を使用してアプリケーションを開発者プレビューに接続する方法について示唆に富んだプレゼンテーション (英語) を行っています。

Windows Azure Active Directory はコンシューマー指向とエンタープライズ指向の両方の ID プロバイダーを統合するので、開発者は、顧客やパートナーによる情報へのアクセスを管理するといった新しい数多くのシナリオを、組織内部の ID 管理で従来使用していたものと同じ Active Directory ベースのアプローチによっていずれも簡単にサポートできます。たとえば、製薬業界に携わる開発者からは、Windows Azure Active Directory を使用して、医師が治験を行う際に個人の ID (たとえば、Facebook や Google の ID) を利用できるようにしたいとの声も耳にしています。

SaaS アプリケーションをディレクトリに接続

上に示した図をご覧になると、ユーザーとアプリケーションの関係には複数のディレクトリが含まれることがおわかりいただけると思います。フェデレーションを利用してディレクトリを相互接続できれば、きわめて強力な機能となります。それではここで、ソフトウェア開発者がこの機能を利用してマルチテナントの SaaS (サービスとしてのソフトウェア) アプリケーションを構築する方法について考えてみましょう。

例として、ある ISV がカスタマー リレーションシップ マネジメント (CRM) ソリューションを構築する場合を想定します。前述したように、この ISV はアプリケーション構築に Windows Azure Active Directory を利用できます。Windows Azure Active Directory Access Control を利用することで、Facebook、Google、マイクロソフトなどの多様な ID プロバイダーや、独自のディレクトリを実行する企業顧客にまたがって、ユーザー、ルール、およびその他の情報を共通の一貫したビューで表示することができます。

この ISV の顧客は多彩なディレクトリ ソリューションを利用できます。たとえば、Windows Server Active Directory のディレクトリで Active Directory Federation Services のフェデレーションを利用することもできます。あるいは、Ping Identity の PingFederate を利用してアプリケーションと接続することもできます。

また、ユーザー管理の手段として、あるいは既存のディレクトリ展開への接続の手段として Windows Azure Active Directory を選択する顧客がいることも考えられます。ID 管理ソリューションの一環として Windows Azure Active Directory を使用している組織では、今回の開発者プレビューを利用して、ISV のアプリケーションに権限を許可することができます。これにより、前述した SSO と REST によるディレクトリ アクセスの両方が可能になります。

さらにこのケースの場合、ISV はアプリケーション構築のため、また顧客は組織にクラウドベースの ID 管理ソリューションを提供するために、双方が Windows Azure Active Directory を同時に利用できるという点にも注目すべきでしょう。

Vittorio Bertocci は、TechEd で行ったプレゼンテーション (英語) の中で、Windows Azure Active Directory をそれぞれが使用する複数の顧客に対して接続を行うことができる SaaS アプリケーションの構築方法について述べています。特に、顧客の Windows Azure Active Directory 展開にアプリケーションを動的に接続するには、Windows Identity Foundation の拡張性をどのように利用すればよいかについて説明しています。

開発の可能性

Windows Azure Active Directory を利用する組織が急増し、ディレクトリを介して接続できる関連ユーザーの数が膨大な数へと増えつつある今、開発の可能性は大きな広がりを見せています。

アプリケーションを Windows Azure Active Directory と統合することで、ますます増える接続済みのアプリケーションや、大規模かつ増え続ける潜在的なユーザーと接続することが可能になります。ユーザーにとっては、この統合により SSO や共有コンテキストといった共通エクスペリエンスが実現され、しかもこれらの接続を設定したり維持したりする必要がありません。組織の管理者にとっては、運用コストの削減、ディレクトリを使用して役割を定義したり ID を無効にしたりするなどのアプリケーションの一貫した管理、およびリスクの軽減が可能になります。ソフトウェア開発者にとっては、これらの利点によって、ユーザーや管理者にとってより有効な関連性の高いアプリケーションが可能になります。

Windows Azure Active Directory の拡張機能を組み合わせて活用することで、新たなインターネット対応プロトコルによるディレクトリへのアクセスや、エンタープライズ指向およびコンシューマー指向の両方の ID との統合が可能になることにより、開発者は、これまで ID 管理が果たしてきた "ファイアウォールの内側" での役割を超える新たなシナリオに対処できるようになります。開発者がこの新しいメカニズムをどのように活用し、組織やユーザーに対する新たなエクスペリエンスと機能をいかに構築していくのか楽しみです。

Windows Azure Active Directory は業界標準プロトコルをサポートするので、これを使用したフェデレーションは、オンプレミス ディレクトリとの直接的な ID フェデレーションと何ら変わりはありません。アプリケーションは標準プロトコルを介して Windows Azure Active Directory とやりとりするため、複数のプラットフォームをサポートできます。アプリケーションは Windows オペレーティング システム、Amazon Web サービス、Google App Engine、iOS、および Android で実行することができ、開発者は使用するプログラミング言語やランタイムを数多くの選択肢の中から選択できます。

開発者と話していると、アプリケーションをさまざまな顧客のディレクトリと統合し、連携を維持することは、彼らにとって大きな課題の一つであることがわかります。Windows Azure Active Directory を使用すれば、顧客と開発者双方にとって、アプリケーションとディレクトリの連携という課題を、多対多の問題から一対一の統合へと変革することができます。Windows Azure Active Directory は一貫性のある可用性に優れた統合を実現し、1 顧客との統合では解決することのできなかった一般的な問題点や不具合の多くを削減または解消することができます。その結果、あらゆる点で作業やテストが大幅に削減され、より高い確率でスムーズな展開が可能になります。

今日の状況と今後の展望

この記事の第 1 部では、マイクロソフトがクラウド サービスとしての観点で Active Directory をどのように見直しているかについて説明しました。クラウドのアーキテクチャとスケールに応じたコストによって、あらゆる規模の組織が、利用の簡単な低価格で可用性に優れた ID 管理を利用できるようになります。ID 管理がサービスとして利用しやすくなればなるほど、より多くの組織がそれを活用できるようになります。

この第 2 部では、ユーザーやデバイス、アプリケーションを接続するための新しい方法を可能にするために、私たちが Active Directory をどのように見直しているかについて説明しました。Windows Azure Active Directory 開発者プレビューでは、次世代のアプリケーション、モバイル デバイス、コンシューマー ID、およびソーシャル ネットワークとの統合を可能にする新しい機能が提供されます。

サービス型 ID 管理によって幅広い導入と接続性の向上が同時に実現すれば、開発者や組織は既存の課題や今後の課題に対処できるようになります。ID 業界にとって、これはまさに待望の瞬間といえるでしょう。私たちは自らがなすべきことをなし、他の方々とも協力しながら、新しい世界を形作っていければと考えています。

開発者プレビューの公開については Alex Simon のブログ記事で発表される予定です。どうぞお楽しみに。

- John Shewchuk、マイクロソフト技術者

Comments (0)

Skip to main content