SaaS コラム

Okta SSOプランのみでMicrosoft 365と連携するには

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ライセンスをお持ちでないケースでは以下の手順でご対応いただく必要がございます。

  1. フェデレーションを解除
  2. Microsoft 365ユーザー作成後にImmutable IDをPowerShellから付与
  3. フェデレーションを再設定
  4. Okta管理画面からMicrosoft 365アプリにユーザーを割り当て
  5. 手順 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をまだご利用いただいてなかったら是非ご検討ください。

この記事は以下を参考にしました。

わかなだょ〜

Identityチームの吉澤和香奈です!
みんなに幸せをお届けする楽しいやつを目指しています!
趣味は飲酒、ゲーム、筋トレ(BIG3/パワーリフティング)、サッカー観戦(東京V、ときどきFC東京の味スタエンジョイ勢)、斧投げ(ほんもののマサカリ!)です!StrayKidsが好きです!