チュートリアル: .NET MAUI モバイル アプリを外部テナントに登録して構成する
このチュートリアル シリーズでは、外部テナントを使用して認証を行う .NET Multi-Platform App UI (.NET MAUI) モバイル アプリを構築する方法を示します。 顧客のテナント内でアプリを登録し、.NET MAUI デスクトップ アプリを作成し、セキュリティで保護された認証を可能とするためのサインインとサインアウトのコードを実装します。 クロスプラットフォーム コードを使って、Android プラットフォーム固有のコードを使う既定のアプリケーション クラスを拡張します。 Microsoft Entra 管理センターでアプリを登録し、アプリを作成し、サインインとサインアウトのコードを実装して、セキュリティで保護された認証を有効にします。
このチュートリアルでは、次のことを行います。
- .NET MAUI モバイル アプリを顧客テナントに登録します。
- 顧客テナントでのサインインとサインアウトのユーザー フローを作成します。
- .NET MAUI モバイル アプリをユーザー フローに関連付けます。
前提条件
- 外部テナント。 お持ちでない場合は、開始する前に試用版テナントまたはサブスクリプションを持つテナントを作成してください。
- この Azure アカウントには、アプリケーションを管理するためのアクセス許可が必要です。 以下のいずれの Microsoft Entra ロールにも、必要なアクセス許可が含まれています。
- アプリケーション管理者
- アプリケーション開発者
- クラウド アプリケーション管理者
.NET MAUI モバイル アプリを登録する
Microsoft Entra を使用してアプリケーションでユーザーをサインインできるようにするには、作成するアプリケーションを Microsoft Entra 外部 ID に認識させる必要があります。 アプリの登録によって、アプリと Microsoft Entra の間に信頼関係が確立されます。 アプリケーションを登録すると、外部 ID によって、アプリケーション (クライアント) ID と呼ばれる一意識別子が生成されます。これは、認証要求を作成するときにアプリを識別するために使用される値です。
Microsoft Entra 管理センターにアプリを登録する方法を次の手順に示します。
アプリケーション開発者以上として Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用し、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[アプリケーション]>[アプリの登録] を参照します。
[+ 新規登録] を選択します。
表示される [アプリケーションの登録] ページで、次のようにします。
- アプリのユーザーに表示されるわかりやすいアプリケーションの [名前] を入力します (例: ciam-client-app)。
- [サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。
[登録] を選択します。
登録が成功すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するアプリケーション (クライアント) ID を記録します。
アプリの登録に対してアプリの種類を指定するには、次の手順に従います。
- [管理] で、 [認証] を選択します。
- [プラットフォームの構成] ページで、[プラットフォームの追加] を選択し、[モバイル アプリケーションとデスクトップ アプリケーション] オプションを選択します。
- [リダイレクト URI] に「
msalEnter_the_Application_Id_Here://auth
」と入力し、Enter_the_Application_Id_Here
を先ほどコピーしたアプリケーション (クライアント) ID に置き換え、[構成] を選択します。 - [保存] を選択して変更を保存します。
管理者の同意を与える
[アプリの登録] ページで、作成したアプリケーション ("ciam-client-app" など) を選択して、その [概要] ページを開きます。
[管理] の下にある [API のアクセス許可] を選択します。 構成済みアクセス許可一覧から、お使いのアプリケーションに User.Read アクセス許可が割り当てられています。 ただし、テナントが外部テナントであるため、コンシューマー ユーザー自身はこのアクセス許可に同意できません。 管理者は、テナント内のすべてのユーザーに代わってこのアクセス許可に同意する必要があります。
- [<ご使用のテナント名> に管理者の同意を与えます] を選択してから、[はい] を選択します。
- [最新の情報に更新] を選択し、両方のスコープの [状態] に "<ご使用のテナント名> に付与されました" と表示されていることを確認します。
ユーザー フローを作成する
次の手順に従って、顧客がアプリケーションにサインインまたはサインアップするために使用できるユーザー フローを作成します。
Microsoft Entra 管理センターに少なくとも外部 ID ユーザー フロー管理者としてサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコン を使用して、[ディレクトリとサブスクリプション] メニューから外部テナントに切り替えます。
[ID]>[External Identities]>[ユーザー フロー] に移動します。
[+ 新しいユーザー フロー] を選択します。
[作成] ページで、次のようにします。
ユーザー フローの [名前] ("SignInSignUpSample" など) を入力します。
[ID プロバイダー] の一覧で、[メール アカウント] を選択します。 この ID プロバイダーを使用すると、ユーザーが自分のメール アドレスを使用してサインインまたはサインアップできます。
[メール アカウント] で、2 つのオプションのいずれかを選択できます。 このチュートリアルでは、[Email with password] (メール アドレスとパスワード) を選択します。
- [Email with password] (メール アドレスとパスワード): 新しいユーザーは、サインイン名としてメール アドレスを、その最初の要素の資格情報としてパスワードを使用してサインアップおよびサインインできます。
- メールのワンタイム パスコード: 新しいユーザーが、サインイン名としてメール アドレスを、最初の要素の資格情報としてメールのワンタイム パスコードを使用してサインアップおよびサインインできるようにします。 このオプションをユーザー フロー レベルで使用可能にするには、メールのワンタイム パスコードをテナント レベルで有効にする必要があります ([All Identity Providers] (すべての ID プロバイダー)>[メールのワンタイム パスコード])。
[ユーザー属性] で、サインアップ時にユーザーから収集する属性を選択します。 [さらに表示] を選択すると、[国または地域]、[表示名]、[郵便番号] の属性と要求を選択できます。 [OK] を選択します。 (ユーザーは、初めてサインアップするときにのみ属性の入力を求められます)。
[作成] を選択します 新しいユーザー フローは [ユーザー フロー] の一覧に表示されます。 必要に応じて、ページを更新してください。
セルフサービス パスワード リセットを有効にするには、「セルフサービス パスワード リセットを有効にする」の記事の手順を使用します。
.NET MAUI モバイル アプリをユーザー フローに関連付ける
顧客ユーザーがアプリを使用するとき、サインアップまたはサインイン エクスペリエンスを確認できるようにするには、そのアプリをユーザー フローに関連付ける必要があります。 複数のアプリケーションをユーザー フローに関連付けることができますが、1 つのアプリケーションを関連付けることができるユーザー フローは 1 つだけです。
サイドバー メニューで、[ID] を選択します。
[External Identities]、[User flows] (ユーザー フロー) の順に選択します。
[ユーザー フロー] ページで、前に作成した [ユーザー フロー名] (SignInSignUpSample など) を選びます。
[使用] で、[アプリケーション] を選択します。
[アプリケーションの追加] をクリックします。
一覧からアプリケーション ("ciam-client-app" など) を選択するか、検索ボックスを使用してアプリケーションを見つけ、それを選択します。
[選択] を選択します。
アプリをユーザー フローに関連付けたら、ユーザーのサインアップまたはサインイン エクスペリエンスを、Microsoft Entra 管理センター内からアプリケーションを使ってシミュレートすることでユーザー フローをテストできます。 それには、「サインアップとサインインのユーザー フローをテストする」のステップを使用します。