このドキュメントでは、テストユーザーの作成から、アプリロール(役割)の定義、および Blazor アプリケーションでの権限による画面制御の手順を網羅します。
1. テストユーザーの作成
- Azure Portal で [Microsoft Entra ID] > [ユーザー] > [すべてのユーザー] を開きます。
-
[新しいユーザー] > [新しいユーザーの作成] を選択し、以下の3名を作成します。
-
通常ユーザー (例:
user@yourdomain.onmicrosoft.com) -
上司ユーザー (例:
manager@yourdomain.onmicrosoft.com) -
管理者ユーザー (例:
admin@yourdomain.onmicrosoft.com)
-
通常ユーザー (例:
- 作成したユーザーのパスワードを控え、初回ログインができる状態にします。
2. セキュリティの既定値の無効化(テスト環境用)
テスト用アカウントで多要素認証 (MFA) の要求をスキップするために設定を行います。。
- [Microsoft Entra ID] > [概要] > [プロパティ] を開きます。
- 一番下の [セキュリティに関する既定値の管理] をクリックします。
- [セキュリティに関する既定値] を 「無効」 に設定して保存します。
本設定はセキュリティ強度を低下させるものであるため本番環境では実行しないでください。
3. アプリ ロール (App Roles) の定義
アプリケーション内で使用するロールを作成します。
- [Microsoft Entra ID] > [アプリの登録] > 対象のアプリを選択します。
- 左メニューの [アプリ ロール] > [アプリ ロールの作成] をクリックします。
- 以下の内容で3つのロールを作成します。
| 表示名 | 許可されるメンバーの種類 | 値 (Value) |
|---|---|---|
| Admin | ユーザー/グループ | Admin |
| Manager | ユーザー/グループ | Manager |
| User | ユーザー/グループ | User |
4. ユーザーへのロール割り当て
作成したロールを実際のユーザーに紐付けます。
- [Microsoft Entra ID] > [エンタープライズ アプリケーション] を開きます。
- 一覧から自分のアプリ名を選択します。
- 左メニュー [ユーザーとグループ] > [ユーザーまたはグループの追加] をクリックします。
- 対象の ユーザー と、割り当てる ロール をそれぞれ選択し、[割り当て] をクリックします。
- 例:管理者ユーザーに
Adminロールを割り当て。
- 例:管理者ユーザーに
5. Blazor での権限表示の実装
AuthorizeView コンポーネントの Roles 属性を使用して、ログイン中のユーザーの権限に応じて表示を切り替えます。
実装例 (Razorコンポーネント)
@using System.Security.Claims
<AuthorizeView>
<Authorized>
<p>こんにちは、@context.User.Identity?.Name さん</p>
@* Adminロールを持つユーザーのみ表示 *@
<AuthorizeView Roles="Admin" Context="adminContext">
<div class="alert alert-danger">【管理者専用】システム設定メニュー</div>
</AuthorizeView>
@* Managerロールを持つユーザーのみ表示 *@
<AuthorizeView Roles="Manager" Context="managerContext">
<div class="alert alert-success">【上司専用】承認ワークフロー</div>
</AuthorizeView>
@* Razorコード内での判定例 *@
@if (context.User.IsInRole("User"))
{
<p>あなたは一般ユーザー権限でログインしています。</p>
}
</Authorized>
<NotAuthorized>
<p>ログインしてください。</p>
</NotAuthorized>
</AuthorizeView>
まとめ
Entra IDにアカウントを追加して権限を付与する方法をまとめました。開発・デバッグ時にエンジニアが行うケースを想定しています。
この記事が皆様のコーディングライフの助けになれば幸いです。
参考