8割解けるCTF「WEST-SEC」

セキュリティ初心者の方でも楽しめるゲーム形式のセキュリティイベント。CTFや勉強会の依頼があればご相談ください。

HENNGE社のIDaaS

1. IDaaSとは

1.1 概要

IDaaS(Identity as a Service)は、SaaSやIaaSと同じように、ID管理をサービスとして提供します。
具体的には、ユーザ認証機能を持ち、また、SaaSサービスとのSAMLによる連携機能を持ち、シングルサインオンを実現します。

1.2 なぜIDaaSが必要か

これまで、多くの企業ではActive Directoryなどを使ってID管理をしてきました。
場合によってはSSOも実現してきたことでしょう。

Q.なぜ、IDaaSが必要なのでしょうか。

A.理由は単純で、Microsoft365などのクラウドサービスの利用が
拡大する中、オンプレの認証システムでは、クラウドを含めた認証ができない。

Q.ADFSを利用して、クラウドの認証基盤と連携すればいいのではないか?

★ADFSの仕組みを図で書く。
連携する場合、クラウド側はIDaaSは不要?(→たぶん不要で、ADFSがIDPになって、ADが認証サーバ、クラウドサービスがSPとしてSAMLが動作する)
ADFSのシーケンスの流れだが、ユーザ情報はAD側が持つ。ユーザアカウントだけは、SP側にも作成される(★本当?)

1.3 クラウドの認証基盤であるIDaaSを使うメリット

❶SSOそのもののメリット
・システム管理者にとって、システムごとユーザ管理やアクセス制御などを行う必要がなく、一元的にセキュリティ対策が行える
・利用者にとって、一つのIDとパスワードだけ覚えればいいので、運用が楽

❷構築、運用が楽
 物理的なサーバを建て、物理的なファシリティーを安定的に確保し、冗長化して信頼性、セキュリティを保って運用するのはけっこう大変です。

❸セキュリティリスクの低減
 オンプレで構築するActive Directoryには、重大な脆弱性が日々報告されています。リアルタイムにパッチを当てたりするのは大変。また、そもそも、Active Directoryは攻撃に弱いので、オンプレミスのActive Directoryは廃止するべき、という考え方もある。
その考えで廃止してAzureAD(EntraID)に移行した事例は以下

・SOMPO HDがオンプレミスのADを停止、ランサムウエア攻撃への耐性を高める
https://xtech.nikkei.com/atcl/nxt/column/18/00001/07735/

❹利用者認証の強化
 パスワードによる認証しか対応していないサービスであっても、多要素認証などの認証を追加で強化できる。

1.4 IDaaSを使うデメリット

導入というか、既存の運用からIDaaSへの移行は簡単ではなく、しっかりとした移行計画が必要。
以下は、オンプレのADをAzureADに移行する場合。ただ、HENNGEのIDaaSを使う場合、ADを撤廃することはなく、共存になるだろう。
https://west-sec.com/entry/azure#15-%E3%82%AA%E3%83%B3%E3%83%97%E3%83%AC%E3%81%AEAD%E3%81%8B%E3%82%89AzureAD%E3%81%B8%E3%81%AE%E7%A7%BB%E8%A1%8C

1.5 他社サービスとの比較

❶EntraID(旧AzureAD)との比較

Q.EntraIDなら無料で利用できるのではないの?

A.以下がEntraIDの料金プランで、無料で利用できるものもあります。ですが、企業向けになると有料プランを選択することになります。
https://www.microsoft.com/ja-jp/security/business/microsoft-entra-pricing

プラン Free P1 P2 Entra Suite
料金 無料 899円/ユーザ・月 1349円/ユーザ・月 1799円/ユーザ・月
機能 ★要確認 条件付きアクセスなど    
その他   Microsoft 365 E3、Microsoft 365 Business Premium に含まれる Microsoft 365 E5 に含まれる  

・HENNGEの場合、Basicプラン(300円/ユーザ・月)、Pro(500円/ユーザ・月)であり、価格が安い。
また、操作性は非常に高いと思われる。
・条件付きアクセスに関しては、EntraIDの方が優れていると思われる。具体的には、IPアドレスや証明書以外に、デバイスの種類(★具体的には?)、ブラウザの種類も条件に加えることができる。HENNGEの場合、M365のように外部と資産管理ソフトの連携して、条件付きアクセスを強化することもできない。
https://zenn.dev/takuyaot/books/45d4f4494a63ce/viewer/b4511a
・HENNGEの場合、Intuneと連携した端末の制御ができない。あくまでも認証機能のみ。

2 HENNGE ONE

2.1概要

HENNGE社のIDaaSサービスは、HENNGE ONEの「Identity Edition」です。
https://hennge.com/jp/service/one/identity/
上記サイトより以下の画像を引用

機能としては、たとえば以下の機能を持ちます。
・シングルサインオン
・アクセス制御
・Active Directory連携
・ID管理機能API
・アクセスログ

2.2 HENNGE Oneが連携する外部サービス

以下に記載されています。かなりたくさんあります。
https://support.hdeone.com/hc/ja/articles/23952460315673-HENNGE-One%E3%81%8C%E9%80%A3%E6%90%BA%E3%81%99%E3%82%8B%E5%A4%96%E9%83%A8%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9

2.3 ユーザの管理について

・IDaaS側でユーザとパスワードを持つ
・SP側でもユーザ情報は持つが、パスワード情報は持たない(★あってる?)。
・IDaaS側でユーザのグループは管理できない。SP側でグループや属性を管理する必要がある。
・動作として、ユーザがログインするには、SPのURLにアクセスすると、IDPにリダイレクトされる。そこでIDとPASSを入れる
・7. なぜユーザ以外のUPN(会議室や備品)をonmicroにする必要があるのか? ★よくわからない。
- 人間ではないユーザはM365上に存在する場合、HENNGEとのID同期の際にM365側でユーザ情報が消えてしまう。
(HENNGE推奨のID同期では、ID情報をHENNGEの側に合わせるため)

2.4 システム構成

(1)HENNGEを使った基本構成

・ローカルのアプリケーションは、ローカルのADサーバ等で認証をする。
・クラウドのアプリケーションに関しては、HENNGEのIDaaSを使ってSSOで認証をする。
・HENNGEでは、ユーザ情報として、たとえば、user1@hng.west.comのようなUserPrincipalName (UPN)で管理する。(★あってる?なぜドメイン名を付与する?)。SPが複数あり、たとえばSP1、SP2とあって、どちらも同じユーザ名を使いたい場合、どちらもuser1@hng.west.comでログイン可能?(★あってる?)

(2)ローカルADサーバとの連携

多くの企業はローカルのADサーバが統合認証基盤ですが、HENNGEを使った場合、そのADサーバとの連携をどうするのでしょうか。
・基本的には、ローカルの認証とクラウドの認証は、別物と考えた方がいいでしょう。なので、連携せずに、別々に運用する。つまりユーザアカウントの管理も別々(2重管理)
・だから、HENNGEを使って、ローカルのADを撤廃することはできない。
・ユーザ情報の一元化を目的として、連携は可能。その場合、HENNGEがIdP+認証サーバとして機能する。連携のためにHENNGE Directory Sync Toolというエージェントのインストールが必要↓。実際にどういう動きをするのかは要確認★
support.hdeone.com

(3)EntraID(AzureAD)との連携

・M365のサービスを使う場合、EntraIDは必須になる。なので、HENNGEとEntraIDで認証連携をする。
・M365からすると、認証サーバ(というかIdP)はEntraIDになり、EntraIDからHENNGEに認証連携をする。
・シーケンスとしては、以下の2つがあると思う。
 1)ユーザを登録したとき
 2)ユーザがSPであるM365にアクセスがあったとき

3.実際の設定

3.1 ログイン

・以下、ログイン画面です。管理者は、ユーザー名とパスワードを入れてログインします。

・メニュー画面は以下です。

・一般ユーザがHENNGEにログインすることは可能。その場合、できることは自分のパスワード変更くらい?★要確認

3.2 ユーザー管理

ユーザーの管理として、ユーザを追加、変更、削除をします。

(1)ユーザの管理について

・たとえば、サービスAのユーザIDとサービスBのユーザIDも、どちらもuser3を使いたい場合、どちらも同じくuser3を設定する。★このときの入れ方は?
・仮に、サービスAのIDがUPN、サービスBのIDが社員番号であった場合、HENNGEの機能(カスタム属性)で社員番号という項目を新たに設定する必要がある。

ユーザ名 user3
UPN user3@hng.west-sec.com
社員番号 1234567
(2)ユーザの追加

・ユーザー > ユーザー一覧、上の「+追加」を押す。

手順は、ここに記載があります。
・ユーザ情報を設定する。

以下、最後のところで、どのSPで利用するかのチェックを入れる。

3.3 認証強化

(1)証明書のログイン
 管理画面から証明書を発行し、PCに入れる
 PWなしで証明書だけでログインもできる。
 証明書の編集で、ログインタブを「個人」→「パスワードレス」に変更

・アクセスポリシーグループで、証明書が必要とかを選択できて、それをユーザに1人ずつ適用する。

(2)ワンタイムパスワード設定
 管理画面の右上から、設定

4.SAML連携

4.1 全体像

SPに対して、HENNGEがIdPおよび認証サーバとなって、SSOを実現します。
設定の流れは以下です。
・HENNGEにSPの設定を入れる
・SP側にIdPの設定を入れる
・HENNGE側にsalesforceのユーザ情報の登録
(・認証情報が同期される★あってる?)
・利用者がSPへアクセスすると、HENNGEに対して認証後、サービスを利用できる

4.2 SPの設定

SPの設定は、システム > サービスプロバイダ設定 、右上の「+サービスプロバイダの追加」を押す。
「サービスを手動で追加」を押して、以下の画面を設定する。

5.Microsoft製品との連携

5.1 全体像

・Microsoftとの連携は他のクラウドサービスとは違う。HENNGEのとSPの間にEntraIDが入り、EntraIDとはWS-Fed(★何?)で連携する。