Oktaのプランについて
OktaにはSingle Sign-on(SSO)プランを基本とし、オプションでMulti-factor Authentication(MFA)、Adaptive MFA、Universal Directory、Lifecycle Management(LCM)を付けることで、プッシュ通知、生体認証、デバイストラスト、Active DirectoryやLDAPとの同期、アプリケーションへのプロビジョニングなどができるようになります。
SSOプランのみでMicrosoft 365と連携するとなると
PowerShellから手動でWS-Federationを設定する
SSOプランのみ(LCMプランなし)の場合はWS-Federationは利用できますが、PowerShellコマンドで実装する必要があります。「View Setup Instructions」を開くとテナントに合わせたPowerShellコマンドが記載されているため、そのままコマンドを実行します。
WS-Federationは、XMLベースのプロトコルを使用して、ユーザーがOktaを介して外部アプリケーションにSSOできるようにします。SAMLとの違いは、以下を参考にしてください。
新規ユーザーはPowerShellからImmutable IDの設定をする
OktaとSaaSをSAMLを用いてSSO連携する場合、基本的にはSaaS側のユーザ名やメールアドレスを属性に設定することで連携ができますが、Microsoft 365で用いるWS-FederationプロトコルではImmutable IDという属性も必要となります。
LCMライセンスによってプロビジョニング機能が利用可能な場合、OktaからMicrosoft 365へ新規ユーザ作成もしくはMicrosoft 365側の既存ユーザへImmutable IDは自動で付与させることが可能ですが、ライセンスをお持ちでない場合は本機能を利用できません。加えて、フェデレーションの設定をしている場合、Entra IDではフェデレーション対象ドメインを利用して新規ユーザーを作成することも不可出来なくなるという制約があります。
そのため、LCMライセンスをお持ちでないケースでは以下の手順でご対応いただく必要がございます。
- フェデレーションを解除
- Microsoft 365ユーザー作成後にImmutable IDをPowerShellから付与
- フェデレーションを再設定
- Okta管理画面からMicrosoft 365アプリにユーザーを割り当て
- 手順 2. で設定したImmutable IDを手動で紐づける
Immutable IDの確認と作成
この操作を行うには、グローバル管理者権限、ユーザー管理者権限、またはハイブリッドID管理者権限が必要です。
Immutable IDがあるユーザーを確認する
PowerShellでユーザーのImmutable IDを一括で確認する
Get-MgUser -ALL -Select UserPrincipalName,OnPremisesImmutableId | fl UserPrincipalName,OnPremisesImmutableId
Immutable IDが設定されていない場合ユーザーの場合、空白になります。
PowerShellで特定のユーザーのImmutable IDを確認する
Get-MgUser -UserId "{ユーザーID}" -Select OnPremisesImmutableId | fl OnPremisesImmutableId
Entra 管理センターからImmutable IDを確認する
Entra 管理センター > ユーザー > 概要 > プロパティ の オンプレミスの不変 ID を参照ください。
Immutable IDがないユーザーにImmutable IDを付与する
ユーザーの情報を変数に格納します。
$user = Get-MgUser -UserId "{ユーザーID}"
Immutable IDはAzure AD Connectの既定の構成を参考に作成します。
$immutableId = [System.Convert]::ToBase64String(([GUID]$user.Id).ToByteArray())
付与したImmutable IDを控えてOkta管理画面に進みます。
Update-MgUser -UserId $user.Id -OnPremisesImmutableId $immutableId
Okta管理画面でImmutable IDを設定
先ほど控えていたImmutable IDを設定してアサインで完了です。
Entra 管理センターで新規ユーザーを作成する
フェデレーションの設定をしている場合、フェデレーション対象ドメインを利用してEntra ID環境へ直接的に新規ユーザーを作成することができません。ユーザー作成のたびにフェデレーションドメインの解除も必要です。
この操作するには、グローバル管理者権限か、ドメイン管理者権限が必要です。
まず、ドメインの状況を確認します。Federatedになっています。
Get-MgDomain
FederatedをManagedに戻します。
Update-MgDomain -DomainId "{ドメイン}" -BodyParameter @{AuthenticationType="Managed"}
これでユーザーが新規作成できるようになりました。作成後はOkta管理画面よりドメインをFederatedに戻しましょう。
おわりに
OktaとMicrosoft 365の連携は、WS-Federationでポチポチできますが、LCMがない場合は気をつける点が多いためまとめてみました。
SSOライセンスだけではユーザーのライフサイクル管理ができず、手動での管理が必要になるため、運用負担が非常に多くなります。Immutable IDの手動付与は初めて行ったのですが、入退社フローで毎回やるとなると運用負担がとても重いと感じました。LCMオプションを追加することで、ユーザーのプロビジョニングやデプロビジョニングが自動化され、セキュリティと効率が向上しますので、LCMをまだご利用いただいてなかったら是非ご検討ください。
この記事は以下を参考にしました。