条件付きアクセスの設定

皆さんこんにちは。国井です。

以前、ADFSからAzure ADへの移行の話をしましたが、そのときに発行承認規則のクレームルールと条件付きアクセスはアーキテクチャが大きく異なるという話をしました。
そのため、ADFSのパラメーターシートを用意しても条件付きアクセスで何を設定すればよいのか?という課題があったかと思います。

そこで、今日は条件付きアクセスの設定例をいくつか紹介し、クレームルール時代にやっていたことをどうやって実現するか考えてみたいと思います。

その1:特定のグループにのみアクセス許可を与える

ADFS時代には発行承認規則から設定していたルールですが、条件付きアクセスでは超簡単!というか条件付きアクセスを使う必要はありません。
エンタープライズアプリケーションに登録されたアプリに対するアクセス許可設定(エンタープライズアプリケーション内の[ユーザー/グループ]から設定)を使います。

image

その2:特定の属性値を持つユーザーにのみアクセス許可を与える

部署が営業部だったら..」みたいな設定もADFS時代には発行承認規則からクレームルールを使って設定していたルールですが、この設定、条件付きアクセスには該当する項目がありません。そのため、少し工夫してグループのメンバーシップで解決しましょう。
Azure ADにはグループの設定に「動的ユーザー」というのがあり、これを利用すると特定の属性値を持つユーザーだけをグループのメンバーにできます。ですので、動的ユーザーでメンバーを定義しておき、その1で紹介した方法でグループに対してアクセス許可を与えればその2の条件が設定できるでしょう。
ちなみに下の図はEU加盟国に所属する国のユーザーという条件を設定しています。

image

その3:特定のOSを利用するユーザーにのみアクセス許可を与える

クレームルールではHTTPヘッダーのUser-Agentを参照し、その値をベースにアクセス制御することができましたが、同様のことは条件付きアクセスでも可能です。
条件付きアクセスポリシーの[条件]-[デバイスプラットフォーム]からOSを選択します。ちなみに条件付きアクセスでは単純に許可するルールは作れません(MFAを有効などの追加条件が入ったときだけ許可するルールは作れる)。そのため、拒否するルールを作る前提でここの部分の設定をしなければなりません。
それを踏まえてiOSを利用する場合のみアクセス許可を与えるという設定をする場合、[対象]にiOSを選択するのでなく、[対象外]にiOSを選択しておきます。
そうすると、iOS以外のOSは拒否する = iOSを許可するというルールが出来上がります。

image

その4:特定のOSバージョンを利用するユーザーにのみアクセス許可を与える

条件付きアクセスでは、OS種類を条件に設定できてもOSバージョンは条件に入れられません。ですので、Intuneと組み合わせて設定します。
まず、条件付きアクセスでは条件を設定せず、[アクセス権の付与]-[デバイスは準拠しているとしてマーク済みである必要があります]だけ設定しておきます。そうすると、Intuneの条件に合致した場合にアクセス許可を与えることになります(この文章、わかりにくいから変えてほしいんですよね。。)。

image

一方、Intune側では[デバイスのポリシー準拠]-[ポリシー]から新しいポリシーを作り、

image

[プラットフォーム]からOS種類を選択し、OS種類にあったポリシーを定義します。
OSバージョンを設定する場合なら[設定]-[デバイスのプロパティ]-[最小OSバージョン]または[最大OSバージョン]を使います。
バージョン番号はcmd.exeを実行した時に表示されるバージョンの記述方式
(Windows 10 1809なら10.0.17763.253 )のように入力します。

image

その5:特定の場所からアクセスするユーザーにのみアクセス許可を与える

オフィスの中からアクセスしたときだけアクセス許可を与える」のような設定を行いたい場合、ADFSサーバーでは発行承認規則で会社から外に出ていくときのIPアドレスで制御したり、Webアプリケーションプロキシを経由した/しないでアクセス制御していましたが、
条件付きアクセスでは[条件]-[場所]を使って会社から外に出ていくときのIPアドレスベースでアクセス許可を与えます。

image

[場所]で定義するIPアドレスはあらかじめ条件付きアクセスの[名前付きの場所]から定義します。場所の定義はIPアドレス/サブネットまたは国または地域で定義できます。
ただし、IPアドレスの指定はグローバルIPのみであり、プライベートIPを指定できない点がADFSのクレームルールとの違いです。

image

その6:ブラウザー種類に基づいてアクセス許可を与える

現時点では無理です。
クレームルールでは、User-Agentに含まれる文字列に基づいてアクセス許可を設定できるので「Firefoxのみ許可する」とかできたんですけどね。
ちなみに条件付きアクセスでは[条件]-[クライアントアプリ]からブラウザーorブラウザー以外の定義は可能です。

その7:事前に登録されたデバイスからアクセスした場合のみアクセス許可を与える

ADFSの場合、ADFSのデバイス登録サービスを通じてActive Directoryにデバイスを登録し、登録されたデバイスからアクセスしたときだけアクセスを許可という方法でこの条件を設定していました。
それに対して、Azure ADの場合、思いつく限りでは次の2つの方法があります。

■Active DirectoryのGPOからAzure ADにデバイスを登録するように設定し、Azure ADに登録されたデバイスからのみアクセス許可を与える
このやり方は別のブログ記事で紹介しているので、そちらを参考にしてください。
■Microsoft Intuneに登録しているデバイスからのみアクセス許可を与える
このやり方はその4の方法です。ポリシーを作っておいて、なんのルールも設定しなければ、Intuneに登録しているデバイス全部がアクセス許可を与えられることになります。

なお、ADFSのときにはコンピューターのSIDを指定して、特定のコンピューターからアクセスした場合のみアクセスを許可という設定が可能でしたが、Azure ADではそれはできません。

その8:社外からアクセスするときだけ多要素認証を要求する

社外からVPNで接続するときもそうであったように、社外からアクセスするときは追加のセキュリティを実装したいというニーズはあると思います。そのときに多要素認証を実装したいということであれば、
■[条件]-[場所]を使って「場所=会社から外に出ていくときのIPアドレス」を設定
■アクセス制御設定を使って、[アクセス権の付与]と[多要素認証を要求する]を設定

image

以上のように設定すれば、要件に合ったアクセス制御が可能になります。

■ ■ ■

いかがでしたでしょうか?
思いつく限りで書いてみましたが
こんなルールを作りたいとか
ADFS時代にはこんなことをしていたけどAzure ADではどう?
とかあれば、いつでもご意見などお寄せください。