AWS インフラ・クラウド

【入門】SSOのためのAzureADとオンプレADのディレクトリ連携方法

投稿日:2021年6月20日 更新日:

今回は、AzureADとオンプレAD(以降単純にADと呼びます)のディレクトリ連携方法を紹介します。

IDaaSに限らず、インフラ基盤をいきなりクラウドに移行するのってどうしても抵抗があるかと思います。
そんなときに、ADを残しつつAzureADをSSOの認証基盤として活用するハイブリッド構成を提案します。

この構成によって、オンプレの基盤を残しつつ、AzureADを使うことができます。
もちろん、少し制約があったりわざわざ用意するサーバーがあったりするのですが、その部分もきちんと紹介します。

なお、ADとAzureADのドメイン参加については今回は触れず、また別の記事にて紹介します。
(今回は、ドメインコントローラーとしてのADとAzureADの連携に限ります)

そもそもAzureADってなに?という方は、【入門】AzureADの基礎知識とよくある誤解を先に見てみてください。

AADCを用意する

AzureADとADの連携方法は3通りあるのですが、いずれの方法だとしても、AADC(Azure Active Directory Connector)が必要になります。

AADCを使った全体像は、以下の通りになります。

「ディレクトリ同期」より引用

AADCはその名の通り、オンプレのADとAzureADのディレクトリを連携するためのコネクタとなるものです。
AADCはWindowsのアプリケーションで、Windowsサーバーにインストールすることで動かすことができます。

AADCはAzureADに関連するサービスではありますが、クラウドサービスではありません。
AADCは、オンプレ側で用意する必要があります。

AADCは、AzureCloud上からダウンロードができますので、インストーラをダウロードしてセットアップすることで使用できます。

AADCに関する注意点としては、オンプレ側に設置するということはオンプレ側で冗長化の構成を取る必要があるということです。
AADCに障害が発生した場合は、ADとAzureADの連携ができなくなってしまいます。

では、このAADCがあることも前提として、3つの方法を紹介します。

ADFS方式

「Azure AD とのフェデレーションとは」より引用

ADFS方式は、オンプレ内にADFSサーバーを用意し、DMZにADFSプロキシーサーバーを用意し、そこを中継して認証を行う仕組みです。

AzureADはレガシープロトコルに非対応で、ADはレガシープロトコルのみの対応となりますので、ADFSを間に中継することで互いにやりとりができるようになります。

オンプレ環境内からのユースケースでは、AzureADからADFSにリダイレクトし、認証後に発行されるトークンをAzureADに送ることで認証します。
外部環境からのユースケースでは、AzureADからADFSプロキシサーバーを通じてADFSにリダイレクトし、認証後に発行されるトークンをAzureADに送ることで認証をします。

メリット

パスワードをAD側で持つので、パスワードをクラウドに置きたくないという要件がある場合に対応できます。

デメリット

やはりなんといってもADFSサーバーを用意・管理するコストです。
また、DMZを用意したり制限付きとはいえインバウンド通信を許可したりとセキュリティ的な部分でも良いとはいえないでしょう。

パスワードハッシュの同期(PHA)

「Azure AD とのパスワード ハッシュ同期とは」より引用

パスワードハッシュの同期は、パスワードをハッシュ化してHTTPS通信で一定時間毎に連携する方式です。

ハッシュ化のアルゴリズムについては、ADの時に使われていた「MD4」よりも高いレベルで行われているとのことです。
また、同期間隔は2分間隔と定められており、変更することはできません。
(ちなみに、ディレクトリ同期はデフォルトで30分間隔ですし、変更も可能です)

オンプレ環境・外部環境それぞれのユースケースでは、ID/PWを送ることで認証ができます。
(なぜならば、両方ともパスワードの情報を持っているからです。)

注意点としては、AzureADとAD間で認証情報が連携されないので、AzureADの認証だけではADにサインインすることができません。
AzureADにサインインするだけで、オンプレでも認証される設定をする必要があります。

その設定は、シームレスSSO機能としてAADCに用意されています。
AzureADのシームレスSSO機能を有効にし、AADCで共有キーの共有する設定をすることで、この問題が解決します。

「Azure Active Directory シームレス シングル サインオン」より引用

メリット

新たに用意するサーバーがAADCだけなので、コストが低い。
また、AzureAD側はMicrosoft、AD側は自分たちでと何かあった時に責任を分けやすい。

デメリット

ハッシュ化されているとはいえ、パスワードがクラウド上に保存されます。
また、障害によって通信できなくなるとパスワードの同期ができなくなります。

パススルー認証

「Azure Active Directory パススルー認証によるユーザー サインイン」より引用

パススルー認証は、オンプレ側に用意したパススルー認証エージェントが定期的にAzureADの確認を行い、AzureADの認証情報をオンプレ側に連携をする方式です。

パススルー認証エージェントとは、AzureADの認証情報を定期的に取得するエージェントです。
AADCにて設定をすることができます。

オンプレ環境・外部環境それぞれのユースケースでは、ID/PWを送ることで認証ができます。
外部環境からの場合では、内部的には実際の認証はオンプレで行っています。

また、パスワード同期方式と同じく、シームレスSSOと共有キーの共有設定をしないと、AzureADとADのそれぞれで認証をしないとならなくなるので、注意しましょう。

メリット

オンプレ側ではインバウンドの通信を許可しないので、セキュリティレベルが高い。
また、パスワードはオンプレ側で持っているので、クラウドにパスワードを置きたくない要件に対応できます。

デメリット

特にありません。

まとめ

というわけで、ADFS方式・パスワードハッシュの同期・パススルー認証を紹介しました。
単純なメリット・デメリットを比較すると、パススルー認証を行うのが最も良いと思います。

ですが、現在の構成からどのようなステップでクラウド移行するのか、どのようなセキュリティポリシーで運用するのかなどによっても選ぶ選択肢は変わるとも思います。
ぜひ、ご自身の環境・目的に沿った選択をしてください。

ここまで読んでいただき、ありがとうございました!

AzureADを学習するのにおすすめの書籍

AzureADをしっかりと学びたい方、使いこなせるようになりたい方向けに、おすすめの参考書籍を紹介します。
実際に僕も購入した書籍で、非常に優良な書籍であることは間違いありません。

ひと目でわかるAzure Active Directory 第3版

1つ目は「ひと目でわかるAzure Active Directory 第3版」です。

本書ではAzure ADの基本から、オンプレミスのActive Directoryとの違い、導入、構成、Office 365をはじめとする他のクラウドサービスへのシングルサインオン(SSO)、ユーザーとグループの管理、多要素認証、Windows 10のAzure AD参加、条件付きアクセスポリシー、オンプレミスのActive Directoryとの統合などについて、豊富な画面と詳細な手順でわかりやすく解説します。本書を読めば、基本的な知識の理解から、ひととおりの導入、初期構成、運用管理ができるようになります。

AzureADの入門書とも言える書籍で、AzureADとは何か・何ができて何ができないのか・こういったユースケースではどうしたら良いかを理解することができます。
図やスクリーンショットが逐一貼り付けられているので、操作に迷うこともないでしょう。

脱オンプレミス!クラウド時代の認証基盤 Azure Active Directory 完全解説 IDaaSに対応するためのシステム設計とは

2つ目は、「脱オンプレミス!クラウド時代の認証基盤 Azure Active Directory 完全解説 IDaaSに対応するためのシステム設計とは」です。

Webアプリケーション向けに、Azure Active DirectoryによるID管理の仕組みと、その方法を解説します。原著者は米国マイクロソフト本社でAzure Active Directoryのプロダクトマネージャーを務めるVittorio Bertocci氏。日本語版の監訳は、日本マイクロソフトのインフラ系エバンジェリストである安納順一氏と、Microsoft MVPで、アイデンティティ分野で数多くの解説記事を執筆する富士榮尚寛氏が担当。米国と日本のスペシャリストたちがガッチリとタッグを組んだ1冊です。クラウド時代の企業システムを担う開発者、システムアーキテクト、インフラエンジニアにぜひお勧めします。

AzureADのことはもちろん、認証認可やID管理にまつわる技術的なことを網羅的に学習することができる一冊です。
より技術的に深い部分まで理解したいという方におすすめの書籍です。

-AWS, インフラ・クラウド
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

オンプレとAWSの違いって?【AWS入門】

こんにちは、yassanです。今回は「オンプレとAWSの違いって?【AWS入門】」についてお話しします。 最近、AWSやクラウドってどこかしこで聞きますよね。クラウドに馴染みのない方からしたら「なんか …

【SSO】SAML認証の技術仕様解説【認証認可】

今回は、SAML認証の紹介をします。 SAML認証のフローがわかっても、実際に技術的にどういう構造になっていて、具体的にどのような仕組みになっているのかわからない…という方も多いと思います …

【入門】AzureADの基礎知識とよくある誤解【SSO】

SaaSアプリの盛り上がりやテレワークの増加から、IDaaSの需要が高まっています。各パブリッククラウドは、これらに対応するようなサービスを展開しています。今回は、MicrosoftのAzureクラウ …

【SSO】OIDCとSAMLの違い【認証認可】

こんにちは、yassanです。OpenIDConnectとSAMLの違いをまとめてみました。 各認証フローについては理解している前提での話になります。ご了承ください。また、もし間違ってるところがあった …

【Linux】内部コマンドと外部コマンドの違い【シェル】

Linuxコマンドの中には、内部コマンドと外部コマンドがあります。シェルスクリプトを書くときなどに知っておいた方が良い知識かなと思うので、紹介します。 内部/外部コマンドとは? Linuxの内部コマン …

yassanさんのプロフィール写真

yassan
インフラエンジニア。
独学でインフラ・クラウドについて学んでいます。
大阪 / 20代後半 / 決闘者 / FE / AWS-SAA

twitter: @yassan10787859