A10 ThunderとMicrosoft Entra IDを使用してSAML認証を実現する方法
はじめまして、クレスコ・デジタルテクノロジーズのS・Kです。
FortiGateやA10等のセキュリティ機器やSW、RTの設計、構築を担当しております。
■あわせて読まれている資料:
対応事例やセキュリティサービス一覧を掲載!
→セキュリティテクノロジーサービス
目次[非表示]
A10 Thunderシリーズについて
A10 Thunderシリーズは、A10ネットワークス社が開発しているロードバランサーアプライアンスです。
物理アプライアンスだけでなく、Vthunderという仮想アプライアンスも提供されています。
ロードバランサーとしての利用が一般的ですが、LBO(ローカルブレイクアウト)やDDoS対策など、多様な用途に対応しています。
今回はその中でも、Microsoft Entra IDと連携し、SAML認証を実施する方法について解説します。
※本記事は、一般的な情報提供を目的として作成されており、特定の状況に適用されることを保証するものではありません。本記事の情報は、公開日現在のものであり、予告なく変更されることがあります。記事内の情報は、利用者の責任において使用されるものとします。本記事の情報を利用することにより生じたいかなる損害についても、筆者および関連組織は一切の責任を負いません。
Microsoft Entra IDについて
Microsoft Entra IDとは、マイクロソフト社が提供するセキュリティ製品群 「Microsoft Entra」の製品の一つで、データに接続するクラウド ID およびアクセスの管理をおこなうサービスです。
多要素認証や条件付きアクセス・SAML認証によるSSOといった機能を用いて、第三者による不正アクセスや情報窃取といった被害を防ぎます。
SAML認証について
SAMLとは、Security Assertion Markup Language の略で異なるドメイン間でSSO認証を実装する仕組みです。
例えば、Microsoft Entra ID( Azure AD )で認証をうけたユーザーがDropboxやSalesforceへSSOする場合には、SAML認証が使われていることが多いです。
利用するクラウドサービスやWebアプリケーションがSAMLに対応していれば、SSOを容易に実現可能です。
<関連用語>
- Service Provider ( SP )
⇒クライアントが受けたいサービスの提供者、DropboxやSalesforce、今回はA10
Thunderが該当します。 Identify Provider (IDP)
⇒クライアントを認証するサービスです。Microsoft Entra ID (Azure AD)やOkta、
OneLogin等が該当します。アサーション
⇒IDPがクライアントへ発行した認証情報です。これをSPへ提示してSSOできるか判断
します。
A10 ThunderでSAML認証を実装する場合、リバースプロキシタイプでの実装となります。
※A10 Thunderで代理応答を受け付け、サーバーの代わりにA10 Thunder がSPとして動作します。
初回認証時の流れは以下になります。
- クライアントからSPへアクセスする
- SPがクライアントをIDPへリダイレクトさせる
- クライアントからIDPへアクセスする(リダイレクト)
- 認証が成功するとIDPがクライアントにアサーションを発行し、SPへリダイレクトさせる
- クライアントがSPにアサーションを提示し、サービスを受けられる
A10 ThunderシリーズでSAML認証をするとできること
一般的に、SAML認証を行うためにはアプリケーションがSAML認証に対応している必要があります。
オンプレミスで作成したアプリケーション等は、SAML認証に対応していない場合があるため、
A10 ThunderをSPとして導入することで、SAML認証によるSSOを実現することができます。
また、A10 Thunderを導入する事により、アプリケーションに対しての負荷分散も実装できます。
実装方法
実装に関してはA10 ThunderとMicrosoft Entra IDで設定値を一致させる必要があります。
以下の設定値が異なる場合は正常にSAML認証が動作しません。
識別子 (エンティティ ID)・・・①
応答 URL (Assertion Consumer Service URL)・・・②
- Microsoft Entra ID側の設定箇所
「エンタープライズアプリケーション」>「シングルサインオンの設定」>「基本的なSAML構成」 - A10 Thunder側の設定箇所
「AAM」>「AuthClients」>「SAML Service Providers」
以下はA10 Thunderでの実装方法です。
1.リアルサーバー(アプリケーション)を定義
SSOを実装したいアプリケーションのIPアドレスとポート番号を指定します。
2.サービスグループを定義
通常のロードバランサー同様に負荷分散の設定も定義します。
分散先サーバーが1台の場合でもサービスグループの設定は必要になります。
3.AAM SPの設定を定義
Service Providerの設定を定義します。
4.AAM IDP メタデータを定義
Microsoft Entra IDからエクスポートしたメタデータを定義します。
5.AAM Templateを定義
IDPの設定を定義します。
6.AAA Policyを定義
項5で設定したSP/IDPの設定をAAAPolicyとして定義します。
7.サーバー証明書を定義
A10 ThunderがSSLオフロードをする際に使用するサーバー証明書を定義します。
8.バーチャルサーバーを定義
クライアントがアクセスするIPアドレス、ポート番号を定義し、
作成した各種policy、templateを定義します。
※今回はaaa policy、template client-ssl を定義します。
以上が設定の説明です。
動作確認
以下が動作確認環境です。
【動作確認】
1.クライアントPCから「https://test.co.jp:443」へアクセス
2.A10 ThunderがMicrosoft Entra IDへリダイレクトを実施
3.アサーションを受けたらアプリケーションへ転送されます。
これにてSAML認証でのSSOが可能です。
動作確認は以上です。
まとめ
今回はA10 ThunderシリーズとMicrosoft Entra IDを連携させたSAML認証の実装例をご紹介しました。セキュリティの観点から、限られたユーザーのみがオンプレミスで作成したアプリケーションへアクセスできるようにしたい場合に、非常に有効なソリューションだと思います。
管理者にとっては、ユーザーの管理がMicrosoft Entra IDへ一元化でき、ユーザーにとっては、アプリケーション毎にパスワードを変える必要がないため、非常に多くのメリットを得ることができます。
A10 ThunderシリーズはSAML認証以外にもLBO(ローカルブレイクアウト)やDDoS対策など、多様な用途に対応しています。
この記事をお読みいただき、A10 Thunderについて少しでも興味を持っていただけたら幸いです。
最後までお読みいただき、ありがとうございました。
■サービス資料一覧はこちら↓
引用元
https://learn.microsoft.com/ja-jp/entra/architecture/auth-saml
https://www.a10networks.co.jp/download/files/SB_A10_AAM.pdf?20240520132718