くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【EntraID】セルフサービスサインアップ機能とは、の解説

はじめに

Webアプリケーションにおいて、セキュリティとユーザー管理は重要な要素です。
特に外部ユーザーを含む広範囲のユーザー層に対応する場合、効率的なユーザー登録システムが必要です。
セルフサービスサインアップ機能を使用すると、以下の要望を実現することができます。

・EntraIDに登録したユーザーだけWebアプリにアクセスできるようにしたい。
・外部ユーザーもユーザー登録すればWebアプリを利用できるようにしたい。
・外部ユーザーは自分でEntraIDにユーザー登録できるようにしたい。

こんな要望があるなら、セルフサービスサインアップ機能の利用も検討してはどうでしょうか。

セルフサービスサインアップ機能とは

セルフサービスサインアップ機能は、EntraIDの外部コラボレーション機能の一つです。
この機能をオンにすると、指定したWebアプリに初めてアクセスする際にユーザー自身でEntraIDにアカウント登録できるようになります。

サインアップにはMicrosoft 365、GoogleFacebookなどのアカウントが利用できます。
サインアップ時に入力してもらうユーザー情報はカスタマイズ可能で、入力された情報はEntraIDに登録されます。

※Webアプリに対してこの機能を利用する場合、外部テナントの設定が必要となります。
kurattyodiary.hatenablog.com

セルフサービスサインアップ機能の利点

1.ユーザー登録の自動化:
 外部ユーザーが自分で登録プロセスを完了できるため、管理者の負担が軽減されます。
2.セキュリティの向上:
 EntraIDの強力な認証機能により、登録ユーザーのセキュリティが確保されます。
3.ユーザー体験の向上:
 ユーザーは手間なくアカウントを作成し、すぐにアプリケーションを利用できます。
4.多様なアカウントオプション:
 Microsoft 365、Googleなどのアカウントでサインアップできるので利便性が向上します。
5・カスタマイズ可能な登録情報:
 サインアップ時に入力してもらう情報をカスタマイズでき、必要なデータを効率的に収集可能です。

セルフサービスサインアップ機能の使い方

セルフサービスサインアップ機能のイメージ

まずはセルフサービスサインアップ機能を使ったときのイメージを見てみましょう。
1.Webアプリにアクセス
 機能と関連付けたWebアプリにアクセスするとMicrosoftのサインイン画面が表示されます。


2.サインアップの開始
 外部テナントにアカウント登録していない場合、サインアップが必要です。
 サインアップ画面でメールアドレスを入力するとメールアドレス宛にアカウント確認コードが送信されます。

3.確認コードの入力
 コードを画面に入力したら、次はアカウント情報の入力です。
 ※パスワードは必須ですが、表示名などは管理者が独自で設定できます。


4.ユーザー登録の完了
 操作後EntraIDにユーザー情報が登録されてWebアプリにアクセスができるようになります。
 下図はユーザーが登録された状態の管理画面です。


設定の流れ

登録したWebアプリケーションにアクセスする際サインアップ / サインインを求めるための設定を行います。

サブスクリプションとリソースグループを作成する

1.管理者アカウントで Azure Portal に接続します。
2.サブスクリプションとリソースグループを作成してください。

外部テナントを作成する

3.下記記事の「外部テナントを作成する」の内容に従って外部テナントを作成します。 kurattyodiary.hatenablog.com

セルフサービスサインアップ機能をオンにする

Microsoft Entra管理センターで作業します。
4.[ID] > [概要] > [テナントの管理] をクリックし、作成した外部テナントにチェック
5.「スイッチ」をクリックして外部テナントにアクセスする


ここからは構築した外部テナントで作業します。
6.外部テナントで [External Identities] > [外部コラボレーションの設定] をクリック
7.赤枠内が「はい」になっていることを確認する


アプリケーションを登録する

8.[アプリケーション] > [アプリケーションの登録] > [新規登録] をクリック
9.下図の説明を参考に各項目を入力して「登録」をクリック
  選択肢の「Web」はおそらく「マルチページアプリケーション(MPA)」のこと。
  SPAとMPAについては下記記事をご覧ください。
  今さら聞けないSPA(シングルページアプリケーション)とは #初心者 - Qiita



APIのアクセス許可を付与する

アプリケーションは登録しただけでは使えません。
管理者によるアクセス許可の同意が必要です。

10.[アプリケーション] > [アプリケーションの登録] > [APIのアクセス許可] をクリック
11.必要なアクセス許可を追加します。
  セルフサービスサインアップを利用するには「User.Read」の権限があれば十分です。
12.「〇〇〇に管理者の同意を与えます」をクリック
13.同意を求められるので「はい」を選択します。


ユーザーフローを作成する

14.[External Identities] > [概要] > [ユーザーフロー] > [新しいユーザーフロー] をクリック
15.サインアップ・サインインする時のフローを作成します。
  ・ユーザー属性でサインアップ時の入力項目を選択します。
  ・IDプロバイダー(サインインの方法)は下記記事を参考に選択します。
   外部テナントでの認証方法と ID プロバイダー

16.「作成」をクリック
17.フロー一覧から作成したフローをクリック
18.[アプリケーション] > [アプリケーションの追加] をクリック


19.手順8以降で作成したアプリケーションを選択します。
  これでフローにアプリケーションを登録できます。

フローを実行する

20.[アプリケーション] > [ユーザーフローを実行します] をクリック
21.表示された画面の一番下「ユーザー フロー エンドポイントを実行」のURLをコピーします

コピーしたURLにアクセスするとサインイン画面に遷移します。
サインインに成功すると登録したアプリケーションの画面が表示されます。


まとめ

EntraIDのセルフサービスサインアップ機能を活用することで、外部ユーザーを含む広範なユーザー層に対して効率的かつ安全なアクセス管理を実現できます。
ユーザー登録の自動化により管理者の負担が軽減されてセキュリティとユーザー体験の向上が期待できます。
さらに、多様なアカウントオプションとカスタマイズ可能な登録情報により柔軟なユーザー管理が可能です。
ぜひ、この機能の導入を検討してみてください。

補足

ユーザー属性を作る

ユーザーフローを作成する際に「ユーザー属性」は既定の項目から選ぶことができますが、「ユーザー属性」はオリジナルの項目を作成することもできます。

1.[External Identities] > [概要] > [カスタムのユーザー属性] > [追加] をクリック


2.項目名の入力、データ型(文字列・Boolean・int)の選択、説明を入力します。
3.「作成」ボタンをクリック
  注意:オリジナルの項目名に日本語は使えません。英数字のみ利用できます。


サインイン画面をカスタマイズしたい

サインイン画面をカスタマイズすることができます。
1.外部テナントで [ユーザーエクスペリエンス] > [会社のブランド化] に遷移します。
2.[既定のサインイン] > [編集] をクリック
3.サインイン画面のカスタマイズを行います。

1つのフローに複数のアプリケーションを登録する

1つのフローに2つ以上のアプリケーションを登録することができます。
サインインしたときの遷移先URLを使い分けたいなどある場合に利用します。
1.新しいアプリケーションを登録します。
2.既存のフローを選択します。
3.選択したフローで [アプリケーション] > [アプリケーションの追加] をクリック
4.新規作成したアプリケーションを選択して「選択」ボタンをクリック
5.「ユーザーフローを実行します」をクリック
6.「アプリケーション」で新しいアプリケーションを選択します。
7.表示された画面の一番下「ユーザー フロー エンドポイントを実行」のURLをコピーします


参考

サインアップとサインイン ユーザー フローを作成する(Learn)

【Entra ID】外部テナントとはなにか

はじめに

こんにちは、くらっちです。
先日、Entra IDには2種類のテナントがあるということを知りました。
普段私たちが何気なく使っているEntra IDは従業員テナントと呼び、それとは別に外部テナントというものがあるそうです。
「外部テナントって何?」という疑問を解決すべく、調べた内容をまとめてみました。


目次


外部テナントとは

EntraIDは2種類のテナントが存在します。
 ・従業員テナント(Workforce Tenant)
 ・外部テナント(External Tenant)

従業員テナント(Workforce Tenant)

皆さんが想像するEntraIDは従業員テナントです。
これは、組織が Microsoft Azure、Microsoft Intune、Microsoft 365 などのサブスクリプションにサインアップしたときに自動的に作成される標準テナントです。
従業員テナントは、社員情報の管理、Teams・SharePoint・Power Platform・Outlookなどのビジネスアプリ、およびその他の組織リソースの管理を目的としています。
外部ユーザーとTeamsやSharePointなどMicrosoft365サービスで共同作業をしたい場合は従業員テナントを利用します。

外部テナント(External Tenant)

外部テナントは、外部ユーザーやビジネス顧客向けのWebアプリ提供で使用するテナントです。
Microsoft Entra の標準的なテナントモデルに従っていますが、従業員テナントとは別個であり切り離されています。
主な用途は、顧客向けに構築されたWebアプリを利用する際のアカウント管理を目的としています。外部ユーザーとの安全なコラボレーションを可能にします。
不特定多数の外部ユーザーにWebアプリを利用させたい場合は外部テナントを利用します。ただし、共同作業でTeamsを利用するなどの用途には使えません。


※Learnから引用

外部テナントにユーザーを追加する方法は2つあります。
 1.管理者が招待する方法
 2.セルフサービスサインアップ機能でユーザー自身にユーザー情報を登録してもらう方法

外部テナントで登録したユーザー情報は外部テナントでのみ管理されます。
Webアプリにログインできるユーザーは外部テナントで管理されているユーザーのみです。
逆に、従業員テナントで登録したユーザー情報は従業員テナントでのみ管理されます。

外部テナントに登録されているユーザーは従業員テナントで管理されているユーザーと連携されておらず同期を取ることもできません。
(テナント間同期機能も利用できません。)

外部テナントで多要素認証を利用する場合、利用できる認証は「ワンタイムパスコード」のみであり、条件付きアクセスポリシーの作成が必要なので注意して下さい。

外部テナントを作成する

以下、外部テナントを構築するまでの手順です。

サブスクリプションとリソースグループを作成する

1.管理者アカウントで Azure Portal に接続します。
2.サブスクリプションとリソースグループを作成してください。

外部テナントを作成する

3.管理者アカウントで Microsoft365管理センター にアクセスします。
 ※Azure PortalからEntraIDにアクセスした場合、外部テナントは作成できないので注意。
4.左メニューからEntraIDにアクセスします。
5.ID > 概要 > テナントの管理 をクリック

6.「+作成」をクリック
7.「外部」を選択して「続行」をクリック

8.「テナントを作る」で作成する外部テナントのテナント名、ドメイン名、場所を入力します。
  ※場所の選択肢に「日本」は含まれていないので注意。

9.「サブスクリプションの追加」をクリック
10.2で作成したサブスクリプションとリソースグループを選択します。
11.「確認および作成」をクリック
12.外部テナントが作成できたことを確認します。

参考

Microsoft Entra External ID における従業員と外部テナントの構成(Learn)
多要素認証 (MFA) をアプリに追加する(Learn)
ワークフォースと外部テナントでサポートされている機能

【SSO】AzureADとSalesforceのSSO連携手順 実践編

・はじめに

「SSO(シングルサインオン)って使ったことあるけど、自分で構築したことないな。」 と唐突に思い、試しに AzureAD と Salesforce を連携させました。
下記 Docs を参考にしつつ、MS の推奨に従って構築を行いました。

参考Docs ↓
Azure Active Directory シングル サインオン (SSO) と Salesforce の統合
Salesforce を構成し、自動ユーザー プロビジョニングに対応させる


この記事の手順を実施することで、AzureADに登録されているアカウント、パスワードでSalesforce にサインインできるようになります。

※この記事はQiita から移行して、最新の情報に更新しています。

・目次

  • Azure と Salesforce の SSO 連携の特徴
  • SSO構築の前提条件
  • 実施環境
  • シングルサインオン構成手順
     -- 【Salesforce】 必要情報の取得
     -- 【AzureAD】 アプリケーションの作成
     -- 【AzureAD】SSO SAML構成
     -- 【Salesforce】SSO SAML構成
     -- 【SalesforceSAML有効化
  • 自動ユーザープロビジョニングを有効にする手順
     -- 【Salesforce】 セキュリティトークンを取得する
     -- 【AzureAD】 自動ユーザープロビジョニングを構成する
  • AzureAD Salesforce プロビジョニング対象について
  • 参考URL

・Azure と Salesforce の SSO 連携の特徴

以下、Docs から抜粋。

 - Salesforce は、SP Initiated SSO をサポート。
 - Salesforce は、自動化された ユーザープロビジョニングとプロビジョニング解除 (推奨) をサポート。
 - Salesforce は、JIT ユーザープロビジョニングをサポート。

・SSO構築の前提条件

SSO 構築には最低限下記のサブスクリプションが必要です。
AzureAD : AzureAD サブスクリプション。 ※無料アカウントでもOK。
Salesforce : SSO が有効な Salesforceサブスクリプション。 ※ 無料の開発者環境 でもOK。

Salesforce.com の試用アカウントの場合は必要な API にアクセスできず、自動化されたユーザープロビジョニングを構成できません。
必ず無料の開発者アカウント、もしくは、有料アカウントを使用します。

・実施環境

本記事に記載の操作は、下記条件の環境で実施しました。

利用ブラウザ
 - Microsoft Chromium Edge ※InPrivateウィンドウは利用しないこと。

AzureAD :
 - Microsoft365 Business Basic ライセンスを保持する アカウント を使用
 - ユーザーは M365 グローバル管理者 権限 を保持していること
 - AzureAD Free 利用
 - ドメイン ⇒ 初期のまま(@aaaa.onmicrosoft.com)

Salesforce :
 - Salesforce の システム管理者 権限を保持していること
 - 無料の開発者 環境を利用
 - ドメイン ⇒ 初期のまま(bbbb-dev-ed.my.salesforce.com)

シングルサインオン構成手順

Salesforce】 必要情報の取得

1.Salesforce のシステム管理者アカウントで、Salesforce にログインする。
2.右上歯車マーク > 設定 をクリック。
3.左側メニューから「設定」>「会社の設定」>「私のドメイン」をクリック。
4.「現在の[私のドメイン]のURL」に表示されているドメインをメモしておく。

f:id:kurakurattyo:20211109223842p:plain

【AzureAD】 アプリケーションの作成

5.グローバル管理者権限を持つアカウントで Azure にログインする。
6.AzureAD を選択 > 左側メニューから「エンタープライズアプリケーション」をクリック。
7.「+ 新しいアプリケーション」をクリック。
8.「Salesforce」を検索ボックスに入力して検索結果から「Salesforce」を選択する。
9.アプリケーションの名前を決めて、「作成」ボタンをクリック。
10.アプリケーションが作成されたことを確認する。

【AzureAD】SSO SAML構成

11.作成したアプリケーションをクリック、左側メニューから「シングルサインオン」をクリック。
12.「SAML」をクリックする。

f:id:kurakurattyo:20211109223926p:plain


13.「基本的な SAML 構成」>「編集」をクリックする。
14.「識別子(エンティティID)」「応答URL」「サインオンURL」に Salesforce からコピーしたドメインを入力する。
※開発者環境の場合「https:// xxx-dev-ed.my.salesforce.com 」の形。
※入力値は全て同じでOK。

f:id:kurakurattyo:20211109224014p:plain


15.「保存」する。
16.「SAML名証明書」>「編集」をクリック。
17.「署名オプション」を「SAML 応答とアサーションへの署名」に変更して「保存」する。

f:id:kurakurattyo:20211109224757p:plain


18.「SAML名証明書」画面が閉じたら、「拡張機能のインストール」をクリック。
19.ブラウザ(Edge)にアドオンのインストールを行う。
  「Chrome ウェブストア」が表示されたら「他のストアからの拡張機能を許可する」をクリック。
20.「Chromeに追加」ボタンが表示されたら、クリック。
21.「Microsoft Edge に追加しますか?」メッセージが表示されたら「拡張機能の追加」をクリック。
アドオンが追加されると、Edgeに下図赤枠内のアイコンが表示されるようになります。

f:id:kurakurattyo:20211109224933p:plain


22.AzureADに戻ると「○○のセットアップ」ボタンが活性化されているのでクリック。

f:id:kurakurattyo:20211109225118p:plain


23.フェデレーション xmlファイルのダウンロードが開始される。
  xmlファイルのダウンロードが完了したら「OK」をクリック。

f:id:kurakurattyo:20211109225157p:plain

Salesforce】SSO SAML構成

24.手順23の後、Salesforce のログイン画面に遷移するので、Salesforce のシステム管理者アカウントでログインする。
25.ログイン後に「Setup Single Sign On」画面が表示されたら「Yes」をクリック。
26.「Upload SAML signing certificate」画面が表示されたら「Yes」をクリック。
※25、26 は表示されない、または、日本語の可能性もあります。

27.手順23でダウンロードしたフェデレーションxmlファイル を選択して、アップロードする。

f:id:kurakurattyo:20211109225640p:plain


28.「作成」をクリック。
29.下図画面が表示されたら「Yes」をクリック。

f:id:kurakurattyo:20211109225819p:plain


30.「SAML シングルサインオン構成」画面では、「SAML ID 種別」が「アサーションには、ユーザの Salesforce ユーザ名が含まれます」であることを確認して「保存」をクリック。

f:id:kurakurattyo:20211109225955p:plain

SalesforceSAML有効化

31.手順30の後、「設定」>「ID」>「シングルサインオン設定」で「編集」をクリック。
32.「SAML を有効化」にチェックを入れて保存する。

f:id:kurakurattyo:20211109230047p:plain


33.「設定」>「会社の設定」>「私のドメイン」>「認証設定」に移動する。
34.「認証サービス」にある「ログインフォーム」と 有効化したSSO にチェックを入れて保存する。

f:id:kurakurattyo:20211109230317p:plain

・自動ユーザープロビジョニングを有効にする手順

上記までで、シングルサインオンの構成は完了しました。
次に AzureAD に登録されているアカウントを、自動的に Salesforce で利用できるようにしていきます。

Salesforce】 セキュリティトークンを取得する

Azure AD で自動ユーザープロビジョニングを構成する際に、Salesforce のセキュリティトークンが必要になるため事前に取得します。

35.システム管理者アカウントで Salesforce にサインインする。
36.画面右上の自分のアイコン >「設定」をクリック。

f:id:kurakurattyo:20211109230615p:plain


37.「私の個人情報」>「私のセキュリティトークンのリセット」>「 セキュリティトークンのリセット 」をクリック。

f:id:kurakurattyo:20211109230712p:plain


38.Salesforce に登録しているメールアドレスに セキュリティトークン が送信されるので、確認してコピーする。

f:id:kurakurattyo:20211109230814p:plain

【AzureAD】 自動ユーザープロビジョニングを構成する

39.Azure側に戻り、SSO を構成したSalesfroce のアプリケーションを選択する。
40.左側メニューから「プロビジョニング」を選択して、「作業の開始」をクリック。
41.「プロビジョニング モード」を「 自動 」に変更する。
42.「管理者資格情報」に次の構成設定を指定する。
 管理者ユーザー名:システム管理者権限を持つ Salesforce アカウント名
 管理者パスワード:システム管理者権限を持つ Salesforce アカウントのパスワード
 セキュリティトークン:手順38で取得したセキュリティトーク
 テナント URL:(省略)

f:id:kurakurattyo:20211109230901p:plain


43. [テスト接続] をクリックして Azure AD が Salesforce アプリに接続できることを確認する。
44.「保存」をクリック。
45.同画面内の「設定」セクションにある「プロビジョニング」をオンにして保存する。
※保存ができない場合は、しばらく時間をおいてから再度実施してみてください。

これで、プロビジョニングが完了です。
長らくお疲れ様でした。

AzureAD Salesforce プロビジョニング対象について

自動プロビジョニングを構成すると 既定で、 AzureAD に登録されている全ユーザーが Salesforce とのマッピング対象となります。
ただし、AzureAD Free プランの場合、グループはマッピング対象にすることができません

AzureAD と Salesforceマッピング定義は、「プロビジョニング」>「編集」>「マッピング」でマッピングの対象範囲、マッピングする属性値などを編集・確認が可能です。

同期処理は、約 40 分ごとに実行され、[ユーザーとグループ] セクションで SSO が有効になっているユーザーを確認できます。

image.png

・参考URL

Azure Active Directory シングル サインオン (SSO) と Salesforce の統合
Salesforce を構成し、自動ユーザー プロビジョニングに対応させる
SalesforceをAzureADでSSOする構成にしてみた
シングルサインオン 実装ガイド SAML シングルサインオンを使用するサービスプロバイダとして Salesforce を設定