第2回 IDaaSの実装をAzure ADで理解する(前編):企業のID管理/シングルサインオンの新しい選択肢「IDaaS」の活用
IDaaS(Identity as a Service)はどのように利用できるのか? 実際のサービスの1つ「Microsoft Azure Active Directory(Azure AD)」を例に挙げて、オンプレミスと比較しながら具体的に解説する。
前回は「クラウド」「モバイル」「グループ&グローバル」という3つのキーワードから、企業を取り巻く環境の変化と企業の情報システムが直面している課題について分析し、企業資産を守るための新たなセキュリティ境界としてアイデンティティが注目を集めていることについて解説した。
また、境界線を効率的に管理するための手法として、ID管理/シングルサインオンをサービスとして提供する「IDaaS(Identity as a Service)」について、構成要素と特徴を以下のように分類し、その概要を解説した。
構成要素 | 特徴 | 解説 | |
---|---|---|---|
認証 | クラウドサービスとのID連携 | 接続検証済みのアプリケーションを選んで利用することで早期の立ち上げが可能 | |
ID連携プロトコルへの対応 | OpenID Connectなどの最新プロトコルへ早期に対応しており新規サービスとの接続が可能 | ||
強固な認証方式への対応 | 多要素認証、リスクベース認証などオンプレミスでは対応が難しい方式に対応しており、セキュリティが強固 | ||
ID管理 | クラウドサービスのID管理 | 接続検証済みのアプリケーションとのID自動同期が可能であり、個別にコネクタ開発が不要 | |
監査 | 認証ログ | 機械学習と組み合わせた不正アクセス検知などオンプレミスでは実装が困難な機能が実装できる | |
IDaaSの構成要素と特徴 「構成要素」や「特徴」のリンクをクリックすると、詳細な解説にジャンプする。 |
今回と次回で、これらの特徴についてマイクロソフトのIDaaSである「Azure Active Directory」を具体例として、どのように実装され、利用できるのかを確認していく。
Microsoft Azure Active Directoryとは
Microsoft Azure Active Directory(以下、Azure AD)とはマイクロソフトが提供するIDaaSである。
従来マイクロソフトは、オンプレミス向けにWindows Server Active Directory(以下、ADまたはオンプレミスAD)を提供してきた。しかし、Office 365をはじめとする各種アプリケーションのクラウド化に対応する形でID基盤の拡張が必要となってきた。そこで2012年5月、マイクロソフトはActive Directoryを「再創造」するという発表をした*1。
- ソーシャルエンタープライズのためのActive Directoryの再創造[日本語訳](マイクロソフト佐藤直生氏のブログ)
- Reimagining Active Directory for the Social Enterprise[英語原文](Microsoft Azure Blog)
*1 この時点では「Windows Azure Active Directory」という名称であったが、これがマイクロソフトのIDaaS提供に関する初めての公式の宣言であった。
この宣言の中でマイクロソフトは次のように述べている。
- これまでオンプレミスで提供してきた企業資産を管理するための機能を、Azure ADとしてクラウド化する
- Azure ADをオンプレミスADと連携する
- 以上により、インターネットスケールの高可用性を備えたハイブリッドID基盤としてActive Directoryを再創造(再定義)し、企業資産の多様化への対応を可能にする
マイクロソフトが定義している「企業資産を管理するための機能」を、従来のADおよびAzure ADにマッピングすると下表のようになる。
機能 | オンプレミスADの機能 | Azure ADの機能 |
---|---|---|
幅広いアプリケーションとリソースにわたるシングルサインオン(SSO)とアクセス制御 | ・統合Windows認証 ・ID連携プロトコル対応(SAML/ws-federation/OAuth) ※Active Directory Federation Services(AD FS)*2 |
・ID連携プロトコル対応(SAML/ws-federation/OAuth/OpenID Connect) |
アプリケーション間の情報共有(例えば、人/グループ/報告系統/役割/連絡先情報/プリンター位置/サービスアドレス) | ・LDAPv3によるディレクトリデータの提供 | ・Graph API(RESTful API)によるディレクトリデータの提供 |
文書の暗号化とアクセス制御を可能にする情報保護 | ・Active Directory Rights Management Services(AD RMS)による情報保護 | ・Azure AD Rights Management Services(Azure AD RMS)による情報保護 |
コンピューター/プリンター/ファイル/アプリケーション/その他のリソースの検出 | ・共有オブジェクトのディレクトリ上での管理とエクスプローラーやLDAPv3での検出 | ・共有オブジェクトのディレクトリ上での管理とGraph APIでの検出 ・アクセスパネルによる割り当て済みアプリケーションの検出 |
ユーザー/グループ/役割の管理/パスワードのリセット/暗号化キー/証明書/アクセスポリシー/デバイス設定の構成と配布のためのツール | ・グループポリシーによる管理 ・Microsoft Identity Manager(MIM)*3によるユーザー/グループ/証明書などの管理 |
・管理ポータルやセルフサービスポータルでのユーザー/グループなどの管理 ・Device Registration Service(DRS)によるデバイス登録 |
Active Directoryが提供する企業資産を管理するための機能とAzure ADでの対応 細かい機能の解説は後述する。 *2 次期Windows ServerのAD FSからはOpenID Connectについても対応予定。 *3 2015年8月にリリースされた、Forefront Identity Manager 2010 R2の後継製品。 |
従来のADは統合Windows認証(Kerberos)やLDAPをベースとした、企業内ネットワークを意識したプロトコルで構成されている。それに比べてAzure ADは、特にWebをベースとしたテクノロジを採用しており、インターネットスケールで展開された企業資産を管理することを強く意識していることが分かる。
Azure ADが提供する機能
ではAzure ADの提供が宣言されてから3年あまりが経過した2015年9月時点で、実際に提供されている機能について見てみよう。
下記のスクリーンショットがAzure管理ポータルから見たAzure ADの構成である。「ディレクトリ」「ACCESS CONTROL名前空間」「多要素認証プロバイダー」「RIGHTS MANAGEMENT」の4つの機能が並んでいる。
Azure ADの管理画面
これはAzure管理ポータルをWebブラウザーで開いたところ。この画面でAzure ADの作成や管理ができる。
(1)Azure ADの管理メニュー。機能として「ディレクトリ」「ACCESS CONTROL名前空間」「多要素認証プロバイダー」「RIGHTS MANAGEMENT」が表示されている。
以下にそれぞれの機能を簡単に解説する。
■ディレクトリ
Azure ADのメイン機能。ユーザーやグループなどのID管理機能、SAML/ws-federation/OpenID Connectに対応した各種アプリケーションへの認証機能の提供、オンプレミスのADをはじめとした各種ディレクトリ/認証基盤との統合(ID連携、ID同期)、利用状況のレポーティング機能などを持つ。
■ACCESS CONTROL名前空間
旧AppFabric Access Control Service。GoogleやFacebook、MicrosoftアカウントといったコンシューマーIDサービスを使って、ws-federationに対応した各種アプリケーションの認証を行うためのハブとして動作する*4。
*4 2015年9月16日、Azure ADの新たなサービス「Azure AD B2C」のプレビュー版が公開された。このサービスでもコンシューマーIDサービスとの連携が可能だ。今後、本機能とAzure AD B2Cがどのように併存していくのかを見極めていく必要がある。
- Azure AD B2C and B2B are now in Public Preview![英語](Active Directory Teamのブログ)
■多要素認証プロバイダー
ディレクトリの持つID/パスワードによる認証機能に追加して、モバイルアプリケーションやSMS、電話メッセージによる追加要素を使った認証機能を提供する。
■RIGHTS MANAGEMENT
Officeドキュメントをはじめとした各種コンテンツに対する情報保護機能を提供する。
IDaaSの構成要素とAzure ADによる実現
それでは、先に挙げたIDaaSの構成要素ごとにAzure ADがどのように上記の機能を提供しているのかを見て行こう。
認証
●クラウドサービスとのID連携
IDaaSを使うことによる一番のメリットは、既存のクラウドサービスとのID連携(シングルサインオン)を個別に検証・設定する必要がないことだ。このことにより、SaaSの採用に関する意思決定から業務への適用開始までのリードタイムを大幅に短縮することが可能となるのは、前回述べた通りである。
Azure ADが連携する対象のアプリケーションの定義は、管理画面で対象のディレクトリを選択してから[アプリケーション]メニューで実施する。ここでは手動で個々のアプリケーションとのID連携を構成できる一方で、すでに連携が検証済みのクラウドサービスをギャラリーから選択する形ですぐに利用を開始できるようにもなっている。2015年9月時点で2500近いアプリケーションとの連携がプリセットされている。
ディレクトリ内の[アプリケーション]メニューより各種アプリケーションとのID連携を構成する
これはAzure管理ポータルで、作成済みのAzure AD(ディレクトリ)の管理画面を開いたところ。
(1)例として選択した既存のディレクトリ。
(2)[アプリケーション]メニューから、ID連携をするアプリケーションを追加・管理できる。
(3)ID連携を済ませたアプリケーション一覧。
Azure ADでID連携が検証済みのアプリケーションを一覧から選択する
アプリケーションを追加する際は、自分で個別に設定する他に、検証済みのアプリケーション一覧から選択することも可能だ。このギャラリーには、BoxやGoogle Apps、salesforce.com、ServiceNowなど日本国内でもしばしば利用されるサービスが並ぶ。
(4)2500近い検証済みアプリケーションがラインアップされている。
このギャラリーに掲載されているアプリケーションであれば、手間なく簡単にAzure ADとのID連携を実現できる。
Azureでは上記の管理ポータルの他に、Azure ADのユーザー向けアプリケーションポータル「アクセスパネル」も提供されている。これを利用すると、割り当て済みのアプリケーションへのアクセスを一元化できる。業務に関連するアプリケーションをAzure AD上に登録しておけば、全ての業務を本ポータル経由で実行できるようになるため生産性の向上が見込める。
Azure ADとID連携しない既存アプリケーションについても、Azure ADに登録しておくとアクセスパネルに表示できるようになるため、特にモバイル環境などにおいては利用者からのアクセスを容易にすることができる。
また、Office365やDynamics CRMといったマイクロソフトのSaaSアプリケーションは、Azure ADをID基盤として利用している。これらもアクセスパネルから利用できる。
PC向けの「アクセスパネル」
Azure ADのユーザーは、ここからシングルサインオンで登録済みの各アプリケーションへ一元的にアクセスできる。Webブラウザーからはhttps://myapps.microsoft.com/よりアクセスする。スマートフォン/タブレット端末にはネイティブアプリケーションも用意されている。
・iOS用の「My Apps」(iTunes App Store)
・Android OS用 の「My Apps」(Google Playストア)
Google AppsとのID連携の設定の詳細およびアクセスパネルからのアクセスについては、筆者が制作したビデオやブログ記事で解説しているので参考にしていただきたい。
■Channel 9で公開している筆者の解説ビデオ
- Azure AD アプリケーション連携(1) 〜 アプリ連携の概要(Channel 9)
- Azure AD アプリケーション連携(2) 〜 Google Apps との連携(Channel 9)
- Azure AD アプリケーション連携(3) 〜 Google への ID配信(Channel 9)
- Azure AD アプリケーション連携(4) 〜 ASP.NET アプリとの ID 連携(Channel 9)
- Azure AD アプリケーション連携(5) 〜 グループベースのユーザー割り当て(Channel 9)
- Azure AD アプリケーション連携(6) 〜 ユーザーの動的な割り当て(Channel 9)
■筆者ブログ「IdM実験室」の関連記事
●ID連携プロトコルへの対応
Azure ADでは、上記のようにギャラリーから既存のアプリケーションとの連携をするのが主流になる。その一方で、組織内で開発したカスタムアプリケーションとの柔軟な連携を行うためには、標準的なID連携プロトコルへの対応が必要となる。
Azure ADの場合、従来のエンタープライズで使われてきたSAMLやws-federationといったプロトコルに加えてOpenID Connectにも対応しており、特にコンシューマー向けに開発されてきたアプリケーションとも連携が可能になっている。
Azure ADのアプリケーション向けのエンドポイントURI一覧
これはAzure AD管理画面の[アプリケーション]メニューから確認できる。プロトコルごとに固有の連携用URIが列挙されている。
(1)ws-federation: 主にOffice365などマイクロソフトのアプリケーションで利用されているws-federation用エンドポイント。
(2)SAML: 主にGoogle Appsやsalesforce.comなどエンタープライズ向けSaaSで利用されているSAML用エンドポイント。
(3)OAuth 2.0: 現状コンシューマー向けで主流となりつつあるOpenID Connect用エンドポイント(OpenID ConnectはOAuth2.0をベースとして構成されているID連携プロトコルなので、OAuthのエンドポイントを利用する)。
こうしたID連携プロトコルを利用するクライアントの開発を支援するべく、マイクロソフトは各種ライブラリやツールも提供している。例えばVisual Studioを使ったASP.NETアプリケーション開発では、Azure ADやAD FSを使ったシングルサインオンを実装するのに一切コーディングの必要がない。
また同様に、OWIN(Open Web Interface for .NET)を使った認証ミドルウェアや.NET以外の言語に対応した認証ライブラリについても積極的に開発の支援をしている。これらはGitHub上でオープンソースとして公開されている。
- 公開されている.NET用のOpenID Connectクライアントライブラリ[英語](GitHub)
同じく詳細は筆者ブログや、筆者が各種セミナーで利用したスライドをSlideShare上に公開しているので、参照していただきたい。
次回は、引き続きAzure ADを例にIDaaSでの認証やID管理、監査について解説する。
Copyright© Digital Advantage Corp. All Rights Reserved.