第1回 クラウド・サービス連携の基本と最新トレンドクラウド・サービスと社内システムとのID連携 最新トレンド(2/2 ページ)

» 2012年09月12日 00時00分 公開
[富士榮 尚寛(Microsoft MVP - Forefront Identity Manager)伊藤忠テクノソリューションズ株式会社]
前のページへ 1|2       

アイデンティティ連携に関する標準仕様の最新事情

 クラウド・サービスの利用やデバイス、アプリケーションの多様化が進行する環境下で、このようなアイデンティティ連携のメリットを享受するには、各仕様やプロトコルの標準化が大きな命題となる。そこで、実際にアイデンティティ連携に関する標準化およびその実装はどのように進んでいるのかを紹介する。特に、先に挙げたクラウド上のアイデンティティ情報を管理する上で一番の要となる属性連携(プロビジョニング)の標準化について詳しく紹介する。最後に実装例として、マイクロソフトが提供する次世代のアイデンティティ・サービスに触れる。

●キーワードは軽量化と汎用性

 Webサービスの世界におけるシステム連携のトレンドと同様に、ここ数年のアイデンティティ連携プロトコルのトレンドは「軽量化」と「汎用性の追求」というキーワードに集約される。

 まず軽量化については、例えば以前からあるプロトコルのSAMLやWS-FederationはSOAP/XMLベースだったが、OpenIDの最新仕様であるOpenID Connectでは「REST/JSON」を採用している。同様にSPMLがSOAP/XMLだったのに対して、SCIMはREST/JSONを採用している。やはりREST/JSON におけるRequest/Responseのシンプルさ、データ自体の可読性の高さなどが採用の大きな理由だと考えられる。例えば、SAML Assertionの中の属性表現とSCIMにおける属性表現を比べると、どちらがシンプルかは一目瞭然であろう。

saml:AttributeStatement>
 <saml:Subject>
  <saml:NameIdentifier Format=”urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress”>
   bar@hoge.com
  </saml:NameIdentifier>
 </saml:Subject>
 <saml:Attribute AttributeName=”familyName” AttributeNameSpace=http://xxx.xxx.xxx>
  <saml:AttributeValue>
   foo
  </saml:AttributeValue>
 </saml:Attribute>
</saml:AttributeStatement>

SAML Assertionの中のユーザー属性情報の例(一部抜粋。XML形式)

{
 “schemas”:[“urn:scim:schemas:core:1.0”],
 “id”:”0000”,
 “externalId”:”0000”,
 “userName”:bar@hoge.com,
 “name”:{
  “familyName”,”foo”
 }
}

SCIMでのユーザー属性情報の例(JSON形式)

 汎用性の追求については、端的にいうとサービスやアプリケーションの単位ではなくAPIの単位で考えることにより、アプリケーションやデバイスの種類に依存しにくい形でのシステム連携を実現する。例えば、Webサービスのようにほかのシステムの機能をマッシュアップしてシステムを構成するような場合、各機能を提供するAPIの単位での認証や認可をサポートする必要がある。

システム間で連携するには、API単位での認証・認可が必要となる システム間で連携するには、API単位での認証・認可が必要となる
API単位で認証・認可ができると、アプリケーションやデバイスの種類に依存しにくい形でシステム間の連携を実現しやすくなる。

 また、同時にアイデンティティ管理機能を提供するシステムも上図の機能提供元システム群における構成要素の1つとして扱われる。それにより、認証や認可、属性の提供などアイデンティティ管理システムの各種機能についても、標準APIとして提供される形となる。

●プロビジョニングの標準化の動向

 クラウド上のアイデンティティ情報を統制・管理することを考えると、属性の連携(いわゆるプロビジョニング)は非常に重要な課題である。これまでも仕様の標準化の試みは行われてきたが、認証や認可に比べて普及が遅れていた。これは実際に連携する対象となるシステムのインターフェイスの標準化など、アイデンティティ管理システムの範疇を超える部分へ与える影響が大きいため当然のことではあったが、軽量化や汎用化の努力から実装が進むことが期待できる。また、汎用APIをアイデンティティ・プロバイダが提供することにより、これまでのプッシュ型のプロビジョニングからプル型の属性取得という方法についても実装が始まっていたり、初回ログイン時にアカウント作成を行うジャストインタイム・プロビジョニングという考え方も登場している。

方式 タイミング プロトコル/API例 実装例
プッシュ プロビジョニング 事前 独自API、SCIM Google Provisioning API
ジャストインタイム・プロビジョニング 必要時(ログイン時) 独自API、SAML 2.0 Binding for SCIM Salesforce.com Just in Time Provisioning for SAML
プル 属性クエリ 都度 LDAP、Graph API Windows Azure Active Directory Graph API
プロビジョニングの標準化の動き
プル型の属性取得やジャストインタイム・プロビジョニングという新たな概念も、標準化と実装が進んでいる。

●マイクロソフトの実装 - Windows Azure Active Directory

 2012年6月に開催されたマイクロソフトの技術カンファレンス「TechEd North America 2012」において、同社はクラウド・アイデンティティに関して重大な発表を行った。「Windows Azure Active Directory(WAAD)」である。2012年8月時点でプレビュー公開中の本サービスは、同社がクラウド上で提供するアイデンティティ・サービスであり、

  • Access Control
  • Directory
  • Graph
  • Authentication Library

という4つの要素で構成される。

Windows Azure Active Directoryの全体像 Windows Azure Active Directoryの全体像

構成要素 機能
Access Control クレームベースのフェデレーション・サービス(旧AppFabric Access Control)
Directory マルチテナントに対応したクラウドベースのアイデンティティ・ストアと認証サーバ。執筆時点でDynamics Online、Office365、Windows Intuneからのみ利用可能
Graph Directory用のRESTful API。Directory上のエントリの管理(追加・変更・削除)を行うことが可能
Authentication Library アプリケーションに実装するためのWAAD認証用ライブラリ。SAML 2.0、OAuth 2.0、OpenID Connectなどに対応
Windows Azure Active Directoryの構成要素

 マイクロソフトがWAADで目指すものはクラウド上のセントラル・ディレクトリでもアイデンティティ連携のハブでもなく「組織、人、アプリケーションが協調できる姿」である、とマイクロソフトのアイデンティティのビジョンに多大なる影響を与えているKim Cameron氏は語っている(同氏のブログ)。今後WAADはほかのクラウド・サービスやオンプレミスとのアイデンティティ連携を行うための重要な基盤になると思われる。

 本稿の冒頭でクラウド上のアイデンティティを管理する必要性について述べたが、WAADにおけるGraphのようにオンプレミスからの管理機能とAccess Controlのようなオンプレミスとのフェデレーション機能を持ち、かつ多くのアプリケーションから利用できるアイデンティティ基盤は今後ますます重要になってくる。ITプロフェッショナルや企業IT管理者はクラウド上のアイデンティティ情報を管理するとはどのようなことなのか、実際に体感し理解を深めておくことが重要である。


 次回からは実際にOffice365、Google Apps、Salesforce.comを例に具体的な実装方法について解説し、クラウド上のアイデンティティの管理・利用を実感できるようにしていく。


「クラウド・サービスと社内システムとのID連携 最新トレンド」のインデックス

クラウド・サービスと社内システムとのID連携 最新トレンド

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。