バイセル Tech Blog

バイセル Tech Blogは株式会社BuySell Technologiesのエンジニア達が知見・発見を共有する技術ブログです。

ヘッダー画像

ゼロトラストに向けての下地作り、Azure AD Connectの構築

はじめに

こちらはバイセルテクノロジーズ Advent Calendar 2022の 18日目の記事です。

昨日は飯島さんによる「OSS コミットのすすめ - TypeScript ESLintを事例に」という記事でした。  

こんにちは。テクノロジー戦略本部情報システム部の天野です。

今期情報システム部ではゼロトラストアーキテクチャに向けて、いくつかのシステム導入を行いました。

そこで今回の記事ではバイセルの情報システム部の取り込みについて知ってもらえればと思います。

 

そもそもゼロトラストアーキテクチャに移行する背景

そもそもゼロトラストアーキテクチャに移行する背景について軽く箇条書きで触れたいと思います。

ここではゼロトラストアーキテクチャ自体について詳しく説明はしません。

詳しく知りたい方は経済産業省が出しているデジタルプラットフォーム構築事業報告書やクラウドネイティブさんが出している動画を参考にしてみてください。

ゼロトラストアーキテクチャに関する正式な文書としてはNIST SP800-207があるようです。

  • 現行の閉域網かつUTM機器によるネットワーク観点でのセキュリティ(境界型防御)というものはかなり難しくなってきている
    • 守りたいデータが社内ネットワーク(オンプレ)にある場合だったら有効なセキュリティ手法であったがすでに守りたいデータというものは社外(SaaS)にあることが多く、社外に対してどうやって認証・認可を行っていくか考えなければいけない
    • 攻撃者の攻撃手法の変化に対応するため(APT攻撃などネットワークでの防御が難しい攻撃手法)、セキュリティの境界を端末まで下げる必要性が出てきた
  • ユーザーの利便性とセキュリティを追求したIT基盤を構築したい
    • ユーザーに場所と時間に縛られない働き方を提供したい

今期取り組んだこと

今期情報システム部としてゼロトラストアーキテクチャに向けて具体的に取り組んだことは下記になります。

  • Azure AD Connectの構築
  • MDM製品の導入
    • Windows端末:Intune
    • Mac端末:Jamf
  • EDR製品の導入
  • SIEM製品の導入

すべてのことを詳しく書くと1記事に収まらないので今回はAzure AD Connectについて詳しく書きます。

Azure AD Connectの構築

今期「Azure AD Connect」の構築を行いました。

といわれてもそもそも「Azure ADとはなんぞや?」と思われる方もいるかもしれませんので軽くそこから触れていきたいと思います。

Azure ADとは?

Azure AD (Azure Active Directory)は、IDaaS(Identity as a Service)と呼ばれるクラウドベースの ID およびアクセス管理サービスになります。

Azure Active Directory とは - Microsoft Entra | Microsoft Learn

従来、企業の認証・認可の中心といえば「Active Directory」が主役でした。認証方法はケルベロス認証。一度Active Directoryで認証を行っていればイントラネットのシステムに関してはSSOが可能であり非常に便利なシステムです。いまでも使っている会社さんは多いと思います。

ただ、クラウドサービスの台頭によって状況が変化していきます。

Active Directoryはあくまでイントラネットのシステムに関してのみの認証であり、クラウドサービスに対しては認証をかけることができません。

なのでユーザーとしては利用するクラウドを切り替えるごとにIDとパスワードを打ち込む必要があり利便性が低下しました。また、管理者としてはユーザーのIDとパスワードの管理が一元的にできなくなることやサービスごとにアクセス制限を考えないといけないなど様々な問題が発生してきます。

そこで登場してきたのがIDaaS(Identity as a Service)になります。

IDaaSはクラウドサービスに対して認証・認可を行います。

認証方法はSAMLOIDCなどです。

IDaaSを導入することによってクラウドサービスに対して認証・認可をActive Directoryのように行うことができユーザーの利便性アップやセキュリティの向上が期待できます。

ちなみにIDaaSの製品には下記のようなものがあります。

  • Azure AD
  • Okta
  • Onelogin
  • Ping Identity
  • Auth0
  • Cloud Identity(Google)

SaaSの利用が当たり前になってきている今IDaaSの導入は利便性・セキュリティの観点からほぼほぼ必須の状況になってきています。
※BetterCloud社の「The 2021 state of SaaSOps Report」によると70%の企業で平均79のSaaSが利用されており、先進的な15%の企業では平均212ものSaaSが利用されているそうです。

IDaaSはゼロトラストアーキテクチャのコアとなるシステムでありここから手を付け始める会社さんが多いと思います。

Azure AD Connectとは?

ここまででIDaaSの重要性が分かっていただけたと思います。

さてここからAzure AD Connectについて軽く触れていきます。

まず前提条件として弊社の状況を箇条書きします。

  • 現状IDaaSはOneloginを利用している
    • ただし、もろもろの理由がありAzure ADへの移行を検討している
  • Active Directoryが社内ネットワークに存在しており、現役で活躍している

来期Azure ADを導入するとなるとAzure AD とActive Directoryという二つのディレクトリサービスを持つことになります。

ここで考えなければいけないことが発生します。それはディレクトリ間での連携になります。

ディレクトリ間での連携がない場合、管理者は二つのディレクトリを管理しなければいけなくなります。具体的に例を挙げると、Azure ADでAというユーザーを作成した場合、都度都度Active DirectoryにもAというユーザーを作成する必要があります。また、PCにログインするパスワード(認証はActive Directory)とSaaSにログインするパスワード(認証はAzure AD)が異なる事象が発生するため、ユーザー視点でも問題が発生します。

つまり管理者としても、ユーザーとしてもディレクトリ間の連携ができていてほしいのです。2つのシステムのパスワードは一致していてほしいし、Active Directoryでユーザーを作成したらAzure ADにも自動でユーザーを作成してほしいのです。

そこで登場するのがAzure AD Connectになります。

Azure AD Connect および Connect Health とは - Microsoft Entra | Microsoft Learn

Azure AD Connectを構築することによってActive Directory⇔Azure AD間のディレクトリ連携が可能になります。

Azure AD Connectを構築する上での注意点やアドバイス

Azure AD Connectを構築する上での注意点やアドバイスを共有できればと思います。

Azure AD Connectの同期方法、冗長化

Azure AD Connectの同期方法は3通りあります。

「パスワード ハッシュの同期」「パススルー認証」「フェデレーション認証」

Azure AD ハイブリッド ID ソリューションでの認証 - Microsoft Entra | Microsoft Learn

自社の要件にあった認証方法を選ぶべきですが基本的には「パスワード ハッシュの同期」を選択すれば比較的簡単に構築が進むと思います。

ですが、以下の考慮事項があるため選択する際には注意が必要です。

現在、パスワード ハッシュ同期では、オンプレミスのアカウントの状態の変化はすぐには適用されません。 このような状況では、ユーザーは、Azure AD にユーザー アカウントの状態が同期されるまで、クラウド アプリにアクセスできます。 組織がこのような制限を回避する方法の 1 つは、管理者がオンプレミスのユーザー アカウントの状態を一括更新した後に、新しい同期サイクルを実行することです。 たとえば、アカウントを無効にします。

また、冗長構成(プライマリのAzure AD Connect サーバーが落ちたら勝手にセカンダリサーバーに自動で切り替わる)はできませんのでスタンバイ構成のステージング モードで展開を行う必要があります。

ステージング サーバーのすゝめ | Japan Azure Identity Support Blog

パスワードの同期、ディレクトリ同期について

ディレクトリ間の同期間隔には注意が必要です。

Azure AD Connect に関する FAQ | Japan Azure Identity Support Blog

ディレクトリの最小同期間隔は30分になります。これ以上短くすることはできませんので早く同期させたい場合は手動で同期させる必要があります。

パスワードの同期間隔は2分になります。

パスワード ハッシュ同期プロセスは 2 分間隔で実行されます。 このプロセスの頻度を変更することはできません。 パスワードを同期すると、既存のクラウド パスワードが上書きされます。

また、パスワードの有効期限や[次回ログオン時にパスワードの変更が必要] などの設定にも注意を払う必要があります。詳しくは下記のブログを参照してください。

よくわかるパスワード ポリシーとよくある質問 | Japan Azure Identity Support Blog

弊社はこのタイミングでパスワードの有効期限について話し合い、見直しなどを行いました。

利用場所ついて

これは国井さんのブログで言及されています。

Azure AD Connectから利用場所属性を設定 | 国井 傑のブログ

Azure AD Connectのデフォルト設定では利用場所の属性を同期することができません。

利用場所の設定がない場合ライセンスを割り当てることができないのです。

Azure ADユーザーにOffice 365などのライセンスを割り当てる場合、利用場所という属性を事前に設定することが必須になります。

なのでSynchronization Rules Editorというツールを使いデフォルトの利用場所を設定してあげる必要があります。

あいまい一致について

既存のAzure ADとActive Directoryのユーザーをどうやって同期させるのか考える必要があります。

※ほとんどの会社では実はAzure ADの運用が開始されている可能性はあります。というのもMicrosoft 365のユーザー管理にはAzure ADが使われているからです。なのでサブスクリプション型のオフィスアプリケーションを利用している会社さんはすでにAzure ADを利用しているのです。

Azure AD Connect:Azure AD が既にある場合 - Microsoft Entra | Microsoft Learn

ユーザーのマッチングには「あいまい一致」と「完全一致」と呼ばれる方法がありますがおそらくほとんどの会社で利用するのは「あいまい一致」になります。

「あいまい一致」の方法はいくつかあるので自社にあった方法を選択してください。

ソフトマッチによる Azure AD (Office 365) 上のユーザーをオンプレミス Active Directory ユーザーと紐付ける方法 | Japan Azure Identity Support Blog

弊社ではUPN値によるマッチングを行いました。ただ、既存のUPN サフィックスがAzure AD側のドメインと違うため全ユーザーのサフィックス変更が必要となりました笑。

ユーザー影響について

Azure AD Connectを構築したタイミングでAzure AD側の既存のユーザーパスワードがActive Directory側のユーザーパスワードに強制的に変更されます。

なのですでにオフィスアプリケーションを利用しているユーザーには周知が必要になります。

弊社では以下のように周知しました。

まとめ

Azure AD Connectは同期方法の多さや「あいまい一致」の種類の多さ、どれがベストプラクティスなのか分からずもドキュメントを読み漁りなんとか構築までこぎ着けたことをうれしく思います。

将来的にはActive Directoryを廃止するところまで視野に入れているので必要なくなるかもしれませんがそれまではしっかりと運用していきたいです。

また、Azure AD Connect自体はゼロトラストアーキテクチャに移行する本当に基礎の部分になるのでこれから情報システム部としてはやることは盛りだくさんです。

ユーザーの利便性とセキュリティを追求したIT基盤を構築できるよう頑張っていきます!

最後にBuySell Technologiesではエンジニアを募集しています。興味がある方はぜひご応募ください。

hrmos.co

明日の バイセルテクノロジーズ Advent Calendar 2022 は富澤さんによる「Next.jsのデプロイ速度改善した話」です。

そちらもぜひ併せて読んでみてください。