SaaSアプリの盛り上がりやテレワークの増加から、IDaaSの需要が高まっています。
各パブリッククラウドは、これらに対応するようなサービスを展開しています。
今回は、MicrosoftのAzureクラウドのサービスである"AzureAD"に焦点を当てて解説します。
AzureADとは?
AzureADとは一言で言うならば、「Microsoftが提供するIDaaSサービス」です。
付随する機能が多すぎるので一言で表現すると、このような抽象的な表現になってしまいます。
一つ一つみていきましょう。
認証機能
AzureADは認証機能を持ちます。
Microsoftのサインイン画面を見たことある方も多いのではないでしょうか。
あの画面は、AzureADによって表示されています。
元々は、Microsoft365(旧Office365)と呼ばれるサブスクリプションでOfficeをSaaSとして使うサービスの認証用基盤として作られたみたいです。
なので、Microsoft365を既にお使いの方は、実は既にAzureADを利用していることになります。
(Microsoft365のライセンスの中に、AzureADが含まれているみたいです。)
このAzureADの認証機能と他のSaaSサービスやオンプレのサービスと組み合わせてSSO(Single Sign On)を実現することも可能です。
SSOの認証・認可先としては、Microsoft 365やAzureCloudはもちろん、他のSaaSアプリやオンプレのアプリにも設定可能です。
また、AzureADは多要素認証にも対応しているため、従来よりセキュアな運用が期待できます。
ID管理機能
AzureADはID管理の機能を持ちます。
既存のActiveDirectoryと大体同じ役割で、組織やユーザーの管理をおこないます。
名前の中にActiveDirectoryを含んでいるだけあって、これはイメージしやすいかと思います。
ただ、AzureADにはオンプレのADにはなかったテナントと呼ばれる概念の単位で組織を表現しています。
AzureADはID管理機能を持っていますが、オンプレのADとは異なる概念を持つことに注意してください。
また、Azure Information Protectionという機能があり、RMSで行っていたデータ保護機能も、AzureADには包括されます。
もちろん、それぞれのロール機能もあるのでユーザーの認可をコントロールすることが可能です。
ログ管理
これは有償ライセンスの話になってしまいますが、AzureADのログを管理することもできます。
AzureADのログとは、AzureADにサインインしたユーザーが、「いつ」「誰が」「どこから(IPアドレス)」「どこに(何のアプリに)」「何の操作をしたか」といった情報のことです。
もちろん、Azure Monitorと連携可能ですので、ログの分析なんかもできます。
【一旦まとめ】つまり、何ができるの?
AzureADをIDaaSとして、認証にまつわる多くの機能を一つに集約され、さまざまなサービスに活用することができます。
例えば、以下のような要件・ユースケースに対応することができます。
・SSO(Single Sign On)基盤を作成したい
・認証基盤のセキュリティレベルを高めたい
・オンプレからクラウドの認証基盤に移行したい
・リモートワークを安全に実施したい
また、オンプレの構成との違いという観点で表現すると、
AD(ドメインコントローラー)・ADFS・RMS・リバースプロキシなどのサーバー群が持っている機能は、全てAzureADでまかなうことができます。
よくある誤解
非常に便利で強力なAzureADなのですが、よくある誤解をまとめました。
AzureADとADは別物
結構いろんなところで言われているので、聞いたことあるかと思うのですが、AzureADとADは別物です。
ここでいうADとは、オンプレに構成されたActiveDirectoryのことです。
確かに、AzureADとADは組織のユーザー(とそのID)を管理・参加・認証する基盤という点では共通しています。
しかし、AzureADとADは、概念・プロトコル・設置場所などが異なります。
また、後述しますがAzureADだけではデバイスを管理することができません。
(デバイスの管理もする場合は、Intuneというサービスと連携します)
つまるところ、ADはオンプレという閉じられた環境の中で使われることを想定して作られたされた仕組みで、AzureADはパブリックな環境の中で使われることを想定して作られた仕組みなので、目的は似ていても随所で微妙に異なる点があるということです。
詳しいことは、また別の記事にしたいと思います。
AzureADはAzureCloud上に構築したADではない
AzureCloud上に構築したActiveDirectoryは、AzureADとは別物です。
段々ややこしくなってきますね。すいません。でも、ここは結構重要です。
AzureCloud上に構築したActiveDirectoryは、オンプレのActiveDirectoryと同じものとみなしてください。
AzureCloud上に構築したADと、オンプレのADは設置してある場所が違うだけで同じものということです。
AzureADは、AzureCloud上にあるものですが、ADではありません。
AzureADはAzureADと呼ぶ一つの固有のサービスです。
ちなみに、AzureADDomainServiceというAzureCloud上専用のActiveDirectoryもあります。
AADDSはAzureADからの一方向同期のみが有効です。
レガシープロトコルにしか対応できないAzureCloud上のリソースにAzureADを認証基盤として使う時を想定されて用意されたものです。
AzureAD ≠ AzureCloud上のAD ≠ AADDS です。
AzureADだけではデバイスの管理まではできない
ActiveDirectoryでは、組織やユーザー管理だけでなく、デバイスの管理までできたかと思います。
WindowsPCを開いてサインインするときにドメイン参加する...といったことは誰しも経験があるのではないでしょうか。
AzureADには、デバイスを管理する機能はありません。
デバイスを管理するのは、Intuneと呼ばれる別のAzure上のサービスがあります。
したがって、AzureADを利用した認証でデバイス管理まで行う場合は、AzureADとIntuneを組み合わせて利用することになります。
ちなみに、AzureADとIntuneを組み合わせて利用するには、Premium P1以上のライセンスが必要です。
基本的な仕様
ディレクトリの概念
AzureADはテナントという概念があります。
テナントは最も大きい単位で、テナントの中でユーザーやアプリを管理することになります。
テナント=組織と読み換えるとイメージしやすいかと思います。
テナントのドメインは、"xxx.onmicrosoft.com"で表現されます。
通常の(例えば個人利用する時とかの)ドメインは"xxx@outlook.com"みたいになっていると思います。
こちらのドメインとは別物ですので、ご注意ください。
認証プロトコル
AzureADが対応している認証プロトコルは、OAuth2.0 / OpenID Connect / SAML2.0 / WS-Federation です。
オンプレADで使われていた認証プロトコル(Kerberos / LDAP / NTLM)は、レガシープロトコルと表現されAzureADとは対応していません。
(レガシープロトコルを使ったアプリケーションへの同期は、AADDSを使います。)
基本的にはOAuthとOpenID Connectを使うことを推奨していますが、
SalesforceなどのSaaSとの連携でSAMLを使うことも問題ないと思います。
OAuthとOpenID Connectは、要件によって使うプロトコルが変わるくらいの認識で良いと思います。
大事なのは、これらの比較的新しいプロトコルにのみAzureADが対応しているという点です。
AzureADを学習するのにおすすめの書籍
最後におすすめの書籍兼参考にした書籍を2冊紹介します。
1つ目は「ひと目でわかるAzure Active Directory 第3版」です。
AzureADの入門書とも言える書籍で、AzureADとは何か・何ができて何ができないのか・こういったユースケースではどうしたら良いかが記載されています。
この本の良いところは、図が非常に多くてAzureADの概念的なことが理解しやすいところです。
また、手順も記載されているのですが、ほとんどがスクショ付きで丁寧に記載されており、実際に操作するときに迷うこともないと思います。
AzureADについてネットで調べて、何となくは理解できたけど、もう少し具体的な知識を身につけたいという方におすすめです。
2つ目は、「脱オンプレミス!クラウド時代の認証基盤 Azure Active Directory 完全解説 IDaaSに対応するためのシステム設計とは」です。
こちらもAzureADの書籍ではあるのですが、1冊目よりもかなり技術的にレベルが高い書籍となっており、認証基盤の歴史やプロトコルの話が盛り込まれています。
元々英語で書かれた本を日本語に訳した形式にはなりますので、そういった面で多少読みにくさはあります。
ですが、ネットで調べた断片的な知識を体型的に紐づけることには役に立つと思います。
AzureADだけでなく、IDaaS/認証基盤についての深い技術的知識を身につけたいという方におすすめです。
以上、ここまで読んでいただきありがとうございました!