🔗

Microsoft Entra External ID (ゲスト アカウント) を Okta と連携させてみる

2024/02/10に公開

始めに

本記事は Microsoft Entra ID と Okta の連携ですが、External ID での連携のシナリオになります。Microsoft 365 (Exchange Onlineとか)の認証を Okta に連携させるという方式ではありません。Microsoft Entra ID のゲスト招待(B2B コラボレーション)した外部ユーザーの認証をその会社が使っている Entra ID 以外の IdP(今回の例ではOkta) に連携させるという方式です。

想定しているユースケース例は以下です。

  • Microsoft Entra ID をメインで利用している会社が、Okta メインで利用している会社を買収した。メイン利用の Entra ID につながっているアプリに、買収先の Okta のユーザーも使わせたいが、アカウントを別途発行するのは避けたい。
  • グループ会社共通で利用するアプリを親会社が Entra ID で公開したが、子会社側では Okta を使っている。Entra ID のアカウントを各子会社に新規作成して提供するという事はやりたくない。

設定方法

Okta 側の設定

まずは Okta 側から連携用のアプリケーションの作成を行います。
[Applications] から [Create App Integration] をクリックし、新規アプリケーションの作成を開始します。作成するアプリは SAML2.0 で作成します。

[General Settings]では好きなアプリの名前を付けましょう。(今回は Entra ID B2B ID Provider としています。)また、アプリ カタログにアイコンを出す必要はないので、[Do not display application icon to users]にチェックをつけています。

次に、[Configura SAML] で、以下の値を設定します。
General

Attribute Value
Single sign-on URL https://login.microsoftonline.com/login.srf
Audience URI (SP Entity ID) https://login.microsoftonline.com/<tenant ID>/
Name ID format Persistent

Attribute Statements (optional)

Name Name format value
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress URI Reference user.email

Okta のアプリの設定はこちらで完了です。
設定完了後に追加されたアプリの[Sign On]のページから Metadata URL を確認します。

こちらの URL にアクセスし、Metadataファイルとして XML で保存します。(画面を右クリックし、[名前を付けて保存]で保存できます。)

Entra ID 側の設定

Entra ID ポータル サイトの External Identities を開き、[すべての ID プロバイダー]をクリックします。
画面上部に表示される[新しい SAML/WS-Fed IdP]をクリックします。

SAML の設定画面が出てきますので、必要な値を入力します。

設定名
表示名 任意の名前(今回は Okta を設定)
ID プロバイダー プロトコル SAML
フェデレーション IdP のドメイン名 フェデレーションさせるメール ドメイン(Okta のドメイン)
メタデータを設定し住方法を選択します メタデータ ファイルの解析
メタデータ ファイル 上述の方法で保存した Metadata XML ファイルを選択
発行者 URI メタデータ ファイルを参照することで自動入力されます。
パッシブ認証エンドポイント メタデータ ファイルを参照することで自動入力されます。
証明書 メタデータ ファイルを参照することで自動入力されます。
メタデータ URL 任意で Okta で発行された Metadata の URL の値を入力

設定を保存し、処理が正しく完了になれば事前の設定は完了です。

動作確認

ゲスト ユーザーの作成(招待)

まずは、Okta で管理されているユーザーのメールで Entra ID のゲストユーザーをEntra ID ポータル サイトの外部ユーザーの招待などから作成(招待)をします。

初回サインイン

招待後のユーザーはまずは引換えが必要なので https://myapps.microsoft.com/?tenantid=<tenant ID> などにアクセスします。
招待の引換えについては以下の公開情報なども参考にして下さい。
https://learn.microsoft.com/ja-jp/entra/external-id/direct-federation#sign-in-endpoints

対象の URL にアクセスし、上記で設定した Okta 管理のアカウントのメールアドレスを入力し次へをクリックします。

Okta のログイン画面に遷移しました。上のバナーで連携したテナントの情報や、作成したアプリ名の[Entra ID B2B ID Provider] できちんと連携できている事が確認できますね。

サインインを押すと初回のアクセスなので、アクセス許可の要求が出てきます。承諾をクリックすると、ゲストの招待の引換えが正しく行われ、MyApps のページにアクセスができます。

上記の画面では特にアプリが表示されておりませんが、ゲストユーザーに利用させたいアプリを割り当てて、そのまま使用させたいアプリを使わすということができます。

まとめ

Entra ID のゲスト ユーザーの認証を別の IdP に委任する構成を作成しました。ユーザーの招待や、引換えについてはどのようにするか検討が必要ですが、Entra ID ではない IdP を利用している企業との連携も簡単に実現できる事がわかったかと思います。ですので、組織内で利用しているアプリは Entra ID にすべて連携させ、SSO や条件付きアクセスなどのアクセス制御、外部ユーザーとのコラボレーションとセキュアに効率化していきましょう。

Microsoft (有志)

Discussion