SaaS

Azure AD B2B で SSO・プロビジョニングする際の注意点

はじめに

こんにちは、すかんくです。今回も Azure AD B2B に関する内容となります。

Azure AD B2B で自社テナントへ招待したゲストユーザーを用いて、連携サービスへ [シングルサインオン・プロビジョニング] するための構成方法や注意点についてご紹介します。

ゲストユーザーの UPN について

説明の前に Azure AD B2B におけるゲストユーザーの種類と、それぞれの UPN について再確認しましょう。
下表は、ゲストアカウントの招待元 UPN と、招待先(自社テナント)で設定される UPN を記載しています。

SSO・プロビジョニングを構成する際、問題となるのは以下の点です。

UPN が onmicrosoft.com ドメインに置き換わる

ゲストユーザーが作成される際、UPN プレフィックスは以下となります。

  • <alias>_<domain>#EXT#@<your_domain>.onmicrosoft.com

ここで問題となるのが onmicrosoft.com ドメインが付与されることです。

これは Microsoft が所有するドメインですので、連携先サービスで利用することは出来ません。

つまり、他社 Azure AD から招待されたゲストユーザーを自社の連携サービスへプロビジョニングする場合、ゲストユーザーの UPN をそのまま利用することは不可ということになります。

どうする? – UPN マッピングで自社ドメインに変換

結論として、UPN をそのまま利用するのではなく、自社ドメインに変換した形で [シングルサインオン・プロビジョニング] を構成する必要があります。

表に直すと以下の通りです。

このようにベースとなる UPN を変換した上で、各サービスへ連携することを UPN マッピングと呼んだりします。
問題点と対処方法が明確になったところで、Azure AD での設定手順を追っていきましょう。

シングルサインオン

Azure ポータル へアクセス。
② [Azure Active Directory] > [エンタープライズ アプリケーション] > [対象サービス] をクリック。
③ [シングル サインオン] を選択し、[属性とクレーム] > [編集] をクリック。

④ [一意のユーザー識別子 (名前 ID) ] をクリック。

⑤ [名前識別子の形式] から、[指定なし] を選択。

⑥ 要求条件から、ユーザータイプ [自社ユーザー・他社 Azure AD ユーザー・外部ユーザー] 毎にクレーム条件を設定。

自社ユーザー

⑦ 以下の通り設定。

  • ユーザータイプ:メンバー
  • ソース:属性
  • 値:user.userprincipalname
他社 Azure AD ユーザー

⑧ 以下の通り設定し、[追加] をクリック。

  • ユーザータイプ:AAD ゲスト
  • ソース:変換
    • 変換:Extract()、一致の前
    • パラメータ 1 (入力):user.localuserprincipalname
      • localuserprincipalname を指定します。userprincipalname と間違えないようご注意ください
    • 値:#EXT#@<yourdomain>.onmicrosoft.com
      • <yourdomian>は自社のドメインに書き換えます
  • 値:user.userprincipalname
外部ユーザー(フェデレーション or メールベース OTP)

⑨ 以下の通り設定し、[追加] をクリック。

  • ユーザータイプ:AAD ゲスト
  • ソース:変換
    • 変換:Extract()、一致の前
    • パラメータ 1 (入力):user.userprincipalname
      • こちらは userprincipalname なのでご注意ください
    • 値:#EXT#@<yourdomain>.onmicrosoft.com
      • <yourdomian>は自社のドメインに書き換えます
  • 値:user.userprincipalname

⑩ 設定が完了したら、[保存] をクリック。

⑪ [属性とクレーム] 画面で、[+新しいクレームの追加] をクリック。
⑫ 以下の通り設定し、[保存] をクリック。

  • 名前:_upn
  • ソース:属性
  • ソース属性:user.userprincipalname

以上で設定は完了です。

プロビジョニング

Azure ポータル へアクセス。
② [Azure Active Directory] > [エンタープライズ アプリケーション] > [対象サービス] をクリック。
③ [プロビジョニング] > [プロビジョニングの編集] をクリック。

④ [マッピング] > [Provision Azure Active Directory Users] をクリック。

⑤ [属性マッピング] > [Azure Active Directory 属性] が “userPrincipalName” の行を選択。

⑥ 以下の通り設定し、[OK] をクリック。

  • マッピングの種類:式
  • 式:Replace([originalUserPrincipalName], “#EXT#@<your domain>.onmicrosoft.com”, , , “@<your primary domain>”, , )
    • <yourdomian><your primary domain>は自社のドメインに書き換えます

⑦ [新しいマッピングの追加] を選択し、以下の通り設定したら [OK] をクリック。

  • マッピングの種類:式
  • 式:IIF(Instr([originalUserPrincipalName], “#EXT#”, , )=”0″, “/”, “/guests”)
  • 対象の属性:

⑧ 設定内容に問題ないことを確認し、[保存] をクリック。

おわりに

以上で設定は完了です。
テスト用のゲストユーザーをご準備いただき、動作確認を実施してください。

今回は Azure AD B2B で自社テナントへ招待したゲストユーザーを用いて、連携サービスへ [シングルサインオン・プロビジョニング] するための構成方法や注意点についてご紹介しました。

是非参考にしてみてください。

【次回予告】 「Azure AD B2B ゲストユーザーの管理方法」についてご紹介します。 ゲスト招待やアプリケーションの割り当てといった、管理者作業を減らす方法・機能について解説する予定です。

※ 次回で Azure AD B2B シリーズは一旦終了予定です。

ではまた!

参考

すかんく

2022/1 入社、Identity チームのすかんくと申します。
ブログでは IdP 関連の機能紹介を中心に記載していこうと思います。
好きな漫画はアイシールド21・ハイキュー・ベイビーステップです。