Microsoft Enterprise SSO プラグインを試してみる

本記事は [Microsoft Azure Tech Advent Calendar 2023](https://qiita.com/advent-calendar/2023/microsoft-azure-tech) 11 日の記事です。

# はじめに
上記のとおり 11 日に公開する予定だったのですが、今年は何を執筆しようかと悩んでいたらいつの間にか 1 週間時間が過ぎてしまいました…。遅くなってごめんなさい。

今年も一年間いろいろなことがあったのですが、昨年の記事の執筆が昨日のことのようで、気付いたらもう 12 月…あっという間の一年でした。
さて、今年も引き続き Azure AD 改め Microsoft Entra ID にどっぷり浸かってきました。自分の専門は Microsoft Entra ID の中でも Microsoft Entra ID と連携するアプリケーションなどの分野です。ただ、毎回同じようなネタを準備してもなーと思い、ちょこっと趣向を変えて Microsoft Enterprise SSO プラグインというものについて触ってみようかと思います。

Microsoft Enterpise SSO プラグインは、私が所属しているチーム メンバーは多分触っている人は多くいるのですが、私自身は触ったことがないです。せっかくの機会ですし…ということで、今回はこの機能をテーマに記事を執筆しました。

# Microsoft Enterprise SSO プラグラインとは
Microsoft Entra ID の条件付きアクセスでは、デバイスが Intune 登録されていることを条件とするなど、デバイス ベースの条件を構成することができます。
この「Intune に登録されていること」をデバイス側が証明するには、そのデバイスがデバイス登録されていることを示す情報を Microsoft Entra ID 側に提示する必要があります。

「デバイス登録されていることを示す情報を Microsoft Entra ID 側に提示する」には、通常 Microsoft Authenticator アプリケーションや Intune ポータル サイト アプリケーションが必要です。さらに、アプリケーション側の実装として、Microsoft Authenticator や Intune ポータル サイト アプリケーションが利用されるように変更する必要があります。このようにすることで、Microsoft Authenticator アプリケーションや Intune ポータル サイト アプリケーションがブローカーとして動作するようになります。

上記のとおり、デバイス ベースの条件付きアクセスの条件を満たすには、アプリケーション側の実装を変更する必要が従来ありましたが、今回のテーマである Microsoft Entrerpise SSO プラグインを導入することで、アプリケーション側の実装を変更することなくデバイスに関する情報を提示することができるようになります (というのが私の雑な理解です)。

何でもかんでもというわけにはおそらくいかないと思いますが、例えば、デバイス情報の提示をサポートしていないサードパーティー製のアプリケーションを利用している場合も、この Microsoft Enterprise SSO プラグインを導入することで、条件付きアクセスでの制御が可能になります。

なお、この機能は、[Apple デバイス向けの Microsoft Enterprise SSO 一般提供開始のお知らせ](https://jpazureid.github.io/blog/azure-active-directory/enterprise-sso-ga/) の記事でも紹介されているとおり、今年 2023 年 5 月に GA されました。

# やってみる
公式ドキュメントとして [Apple Devices 用の Microsoft Enterprise SSO プラグインをデプロイする](https://learn.microsoft.com/ja-jp/mem/intune/configuration/use-enterprise-sso-plug-in-ios-ipados-macos?pivots=all) が公開されています。
今回はこの記事をもとに確認を進めていきます。

## 現状の動作を確認してみる
まず、何はともあれひとまずは Microsoft Enterprise SSO プラグインがない世界を見てみましょう。
上記の資料に記載のとおり、Safari をプライベート モードで起動して portal.office.com などに接続してみます。
あ！その前に、Microsoft Entra ID 側で条件付きアクセスを構成するのをお忘れなく。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/dba08492-b878-7836-2966-5ccc4911582f.png)

準備も整ったので、Intune 登録している iOS デバイスの Safari から接続してみましょう。
なるほど、確かにサインイン ページが表示されて SSO される動作とはなりません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/7d27d88f-4d73-b50f-8e73-9b2379b42565.png)

また、この状態でサインインを進めると、条件付きアクセスで Intune 準拠を必須としているため、デバイス証明書の提示が要求されます。ここではキャンセルを選択したため、以下のようにエラーが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/ff7a8d7d-7a34-ec56-a44d-00484630733a.png)

## Microsoft Enterprise SSO プラグインを構成してみる
上述した資料に記載の内容にしたがって Microsoft Intune 管理センター上で作業を進めます。

まず初めに [デバイス] > [構成プロファイル] > [+ 作成] の "新しいポリシー" から以下を選択してプロファイルを新規に作成します。

  - プラットフォーム : iOS/iPadOS (今回は iOS で試しているのでこちら)
  - プロファイルの種類 : テンプレート
  - テンプレート名 : デバイス機能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/0cab7037-da4a-eda1-acf8-842621ab4a3d.png)


"2. 構成の設定" 画面では、今回はお試しということで Safari に設定したいため、[iPhoneおよびiPadのネイティブアプリのバンドルID](https://support.apple.com/ja-jp/guide/deployment/depece748c41/web) を参考に Safari のアプリ バンドル ID である com.apple.mobilesafari を設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/426610f7-91e7-b389-7e89-7a1a61b2dc14.png)

あとは、適用対象のグループなどを選択して完了します。

思った以上に設定はとっても簡単ですね。
ただ、設定対象のアプリケーションをサード パーティー製のアプリケーションとする場合、アプリ バンドル ID を調べるのが大変かもです。
アプリ バンドル ID を調べるには、そのアプリケーションの開発元に確認したほうが確実で貼りますが [iOS デバイスでのアプリ バンドル ID の確認](https://learn.microsoft.com/ja-jp/entra/identity-platform/apple-sso-plugin#find-app-bundle-identifiers-on-ios-devices) に記載の方法でも確認としてはできそうです。

## Microsoft Enterprise SSO プラグインの動作を確認する
しばらく待っていると設定がデバイス側に反映されると思いますが、ここではすぐに検証したいため、Intune ポータル サイト アプリケーションを起動して [デバイス] タブから "状態の確認" でデバイスの状態を更新しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/f8b4cd77-918f-0b76-c1c6-0defde5f0508.png)

正しく Microsoft Enterprise SSO プラグインの導入が完了すると、以下の項目に "Authenticator" という項目が追加されます。
これを目安に展開されたかどうかを確認すると良さそうですね。

    [設定] アプリケーション
     ┗ [一般]
       ┗ [VPN とデバイス管理] 
         ┗ "Management Profile"
           ┗ [詳細] 
             ┗ "シングルサインオン機能拡張"

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/961af83e-93b3-296b-b0d9-efe4f6e366aa.png)

上記を確認した後に、再度 Safari をプライベート モードで起動して動作検証してみます。
Microsoft Enterprise SSO プラグインの効果で、ユーザー名およびパスワードの入力はスキップされ、かつ、条件付きアクセスにもブロックされずにアプリケーションにアクセスができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2320657/b5df2538-a0a2-8c22-9153-7587d88fd621.png)

何か問題が起きたときに調査するとなるとなかなか難しそうですが、一方で、導入自体は上記のとおり比較的簡単だなという印象です。

今回の記事はここまでとなります。
もっと大規模な記事になるかと思いましたが、公開情報に記載されている手順通り進められ、また、中点なども特にありませんでした :-)
もしアプリケーション側の改修は無理だけど、でも、デバイス ベースの条件付きアクセスではブロックされないようにした…！などの状況の場合は、今回ご紹介した Microsoft Enterprise SSO プラグインを有効活用いただけるかもです。

ではまた今度…！ (一年後にならないように頑張ります… :-P