【Entra ID】段階的ロールアウト(一部ユーザだけフェデレーションを解除する方法)

# 1.はじめに

本記事は、Entra IDにおける段階的ロールアウト（Staged Rollout）に関する内容です。

よくある利用シーンは、ADFSによるフェデレーションを止める場合に、一部ユーザだけ先行して、Entra IDによるマネージド認証に変えたいという場合です。
ただ、今回はOktaによるフェデレーション環境で、一部ユーザだけ、Entra IDによる認証に変えてみました。

# 2.段階的ロールアウト

### 2-1.段階的ロールアウトとは
段階的ロールアウトとは、フェデレーション ドメインに属しているユーザーの一部のみをマネージド 認証に変更できる機能です。

フェデレーション環境を止める場合は、そのドメイン中の全ユーザの認証先が切り替わることから、非常にリスクのある作業となります。そのリスクを減らすために、事前に一部ユーザだけ、先行して認証を切り替えることができます。

### 2-2.設定方法
設定自体は非常に簡単で、「ハイブリッド管理 > Microsoft Entra Connect」で、「Connect 同期 > マネージドユーザーサインインの段階的ロールアウトを有効にする」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/e01fd608-b394-c3ba-2473-d2de3f1b89b6.png)
<br>

次に、段階的ロールアウトの対象となるグループを設定するだけとなります。
※動的グループはサポート外となるため、静的なユーザグループにしておく必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/2ab09eb2-d7b8-f07c-b42e-ec0b1c85a0e6.png)

### 2-3.前提条件

「2-2.設定方法」からわかるように、設定だけであれば、対象となるグループを割り当てることくらいです。

ただ、前提条件が多々あり、特に大切な点が、Microsoft Entra Connectを利用していることであり、Entra Connectを利用して、ADからEntra IDに同期されたユーザのみを対象にしています。
逆に、Entra IDやIDaaSにしか存在しないユーザの場合は、段階的ロールアウトを適用することはできません。

>・サポートされるシナリオ
>Microsoft Entra Connect を使用して Microsoft Entra ID にプロビジョニングされたユーザー。 「クラウドのみ」のユーザーには適用されません。

https://learn.microsoft.com/ja-jp/entra/identity/hybrid/connect/how-to-connect-staged-rollout#supported-scenarios

他にもサポートされないシナリオがありますので、注意をする必要があります。
特に、初回登録のユーザ数は、200名以下にしておき、静的グループを利用するという点も忘れずに考慮しておく必要があります。

>・サポートされないシナリオ
>入れ子になったグループはサポートされていません。
>段階的なロールアウトでは、動的グループはサポートされていません。
>段階的なロールアウトでセキュリティ グループを初めて追加するときは、UX タイムアウトを回避するために 200 ユーザーに制限されます。グループを追加した後は、必要に応じて、さらに多くのユーザーをそこに直接追加できます。

https://learn.microsoft.com/ja-jp/entra/identity/hybrid/connect/how-to-connect-staged-rollout#unsupported-scenarios

# 3.テスト

Microsoft Entra Connectが必須ということから、メインの利用シーンは、ADFSによるフェデレーションからEntra IDによるマネージド認証に切り替える場面が多いかもしれません。
ただ、今回はその他IDaaSでフェデレーションをしている場合や、Entra Connect クラウド同期でも適用できるか確認してみます。

### 3-1.Entra Connect クラウド同期で利用できるか

結論は、Entra Connect クラウド同期でも、段階的ロールアウト可能でした。
なお、フェデレーションには、Oktaを利用しています。

段階的ロールアウトの設定画面が、Entra Connect Connect同期のところにありますが、問題ないようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/b231c652-a058-7ec0-2ed5-df2358e3ff58.png)


以下に確認した手順を記載します。

### 3-2.動作確認手順
Entra Connect クラウド同期の作成方法とOktaによるフェデレーションに関しては、以下記事をもとに実施しています。

https://qiita.com/mokonacl/items/2b5d141728707762ae3f

https://qiita.com/mokonacl/items/0e108e3adc48b5dd012d

今回、段階的ロールアウトを利用するためには、フェデレーションで利用している環境にあるユーザが、AD側にも必要となります。

そのため、IDの同期をさせていく必要があり、以下図のように、

* AD ⇒ Entra Connect クラウド同期 ⇒ Entra ID ⇒ API統合 ⇒ Okta

ID同期をさせました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/f28eb582-dba5-11e0-c05e-f95bc762f49f.png)

<br>

02のユーザのみ、段階的ロールアウト用のグループにアサインしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/4f6c1f5f-28b5-db0a-9d2d-9de464440ec7.png)
<br>

### 3-3.通常のフェデレーションドメインのユーザの場合
01のユーザで、M365にアクセスしてみますと、Oktaにリダイレクトされ、Oktaによる認証後にアクセス完了しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/b328eae2-3d6e-52d6-3684-5713cc462ee5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/0c492dee-7c6d-4045-54ed-c38e5ee40f24.png)
<br>

### 3-4.段階的ロールアウトを適用したユーザの場合

次は、02のユーザで、M365にアクセスしてみます。
今度はOktaにリダイレクトされることなく、Entra IDによるマネージド認証のみでアクセス完了することができました。
そのため、Entra Connect クラウド同期を利用しても、Oktaのフェデレーションを段階的ロールアウトできるようです。ただ、IDの同期パターンは他にもいろいろ考えられるため、注意が必要ですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/f1cca7d8-a692-259f-7814-8f7aaee50711.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/4e555aa0-101f-953e-2b89-11e45ecd727b.png)
<br>

### 3-5.NGパターン：クラウドにしかないユーザの場合

Microsoft Learnに書いてあるNGパターンも確認してみます。

Okta上で、ユーザを作成し、Entra IDにそのユーザをプロビジョニングします。このユーザは、AD上には存在していないユーザとなります。

まず最初に、フェデレーションによる動作確認を実施し、Oktaにリダイレクトされ、認証後、M365にアクセスできることを確認しました。
画面遷移は、「3-3.通常のフェデレーションドメインのユーザの場合」と同じです。

次に、段階的ロールアウト用のグループに、そのユーザを追加します。

そして、M365にアクセスしてみます。
するとユーザ情報を入力した後は、Entra IDのマネージド認証のように、パスワード入力画面に遷移しました。パスワードを入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/99ab319d-1f9f-0a76-1859-0cd326ec1373.png)
<br>

間違えて同じ画像を貼ったわけではありませんが、再び、Microsoftの認証画面が表示されました。
再び、ユーザをパスワードを入力しても、またMicrosoftの認証画面が表示されます。
このように、Entra Connectによる同期をしていないと、段階的ロールアウトは利用できないようです。仕様通りの動作ですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256868/5c804c72-fabb-754c-6afe-a3fb19cf4953.png)
<br>

# 4.終わりに

Goodbye ADFSの定番機能の段階的ロールアウトに関して、実施してみました。
条件さえ満たすことができれば、簡単に利用でき、リスクも低減できる機能です。
ただ、ADFSではなく、IDaaSのフェデレーションをEntra IDによるマネージド認証にするため、段階的ロールアウトを適用する場合は、Entra Connectを考慮しておく必要があります。