はじめに
Webアプリケーションにおいて、セキュリティとユーザー管理は重要な要素です。
特に外部ユーザーを含む広範囲のユーザー層に対応する場合、効率的なユーザー登録システムが必要です。
セルフサービスサインアップ機能を使用すると、以下の要望を実現することができます。
・EntraIDに登録したユーザーだけWebアプリにアクセスできるようにしたい。
・外部ユーザーもユーザー登録すればWebアプリを利用できるようにしたい。
・外部ユーザーは自分でEntraIDにユーザー登録できるようにしたい。
こんな要望があるなら、セルフサービスサインアップ機能の利用も検討してはどうでしょうか。
セルフサービスサインアップ機能とは
セルフサービスサインアップ機能は、EntraIDの外部コラボレーション機能の一つです。
この機能をオンにすると、指定したWebアプリに初めてアクセスする際にユーザー自身でEntraIDにアカウント登録できるようになります。
サインアップにはMicrosoft 365、Google、Facebookなどのアカウントが利用できます。
サインアップ時に入力してもらうユーザー情報はカスタマイズ可能で、入力された情報は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をコピーします