クラウド・サービスの利用やデバイス、アプリケーションの多様化が進行する環境下で、このようなアイデンティティ連携のメリットを享受するには、各仕様やプロトコルの標準化が大きな命題となる。そこで、実際にアイデンティティ連携に関する標準化およびその実装はどのように進んでいるのかを紹介する。特に、先に挙げたクラウド上のアイデンティティ情報を管理する上で一番の要となる属性連携(プロビジョニング)の標準化について詳しく紹介する。最後に実装例として、マイクロソフトが提供する次世代のアイデンティティ・サービスに触れる。
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>
{
“schemas”:[“urn:scim:schemas:core:1.0”],
“id”:”0000”,
“externalId”:”0000”,
“userName”:bar@hoge.com,
“name”:{
“familyName”,”foo”
}
}
汎用性の追求については、端的にいうとサービスやアプリケーションの単位ではなくAPIの単位で考えることにより、アプリケーションやデバイスの種類に依存しにくい形でのシステム連携を実現する。例えば、Webサービスのようにほかのシステムの機能をマッシュアップしてシステムを構成するような場合、各機能を提供する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 | |
プロビジョニングの標準化の動き プル型の属性取得やジャストインタイム・プロビジョニングという新たな概念も、標準化と実装が進んでいる。 |
2012年6月に開催されたマイクロソフトの技術カンファレンス「TechEd North America 2012」において、同社はクラウド・アイデンティティに関して重大な発表を行った。「Windows Azure Active Directory(WAAD)」である。2012年8月時点でプレビュー公開中の本サービスは、同社がクラウド上で提供するアイデンティティ・サービスであり、
という4つの要素で構成される。
構成要素 | 機能 |
---|---|
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を例に具体的な実装方法について解説し、クラウド上のアイデンティティの管理・利用を実感できるようにしていく。
Copyright© Digital Advantage Corp. All Rights Reserved.