バックグラウンド
Azure Web Apps for Containers を介して Docker にデプロイされた .NET Core 3.1 Web サイトがあります。
アプリは自分の組織の Azure AD に登録されており、自分の組織のみを対象としており、アクセスを許可するにはユーザーを追加する必要があります。
このサイトは、個人ベースのアクセスでしばらくの間正常に機能しています。アプリはデフォルトのアクセスを使用します。サイトにアクセスできる人は、サイト内のすべてにアクセスできます。
Azure AD テナントは Premium P2 テナントです。
ゴール
Azure AD で個人をアプリに追加するのではなく、アプリケーションへのアクセスにセキュリティ グループを使用したいと考えています。
問題
- 組織の Azure AD 内でアプリの登録に進みます
- 私は
Users and Groupsメニューを選ぶ - 許可したい個人を含むグループを
Default Access役割 (利用可能な唯一の役割)とともに追加します。 - 個人を削除します (すべてがグループのメンバーであり、これが推奨されるアクセス管理です)
予想される行動
グループは承認されており、グループのメンバーであるため、ユーザーは引き続きサイトへのアクセスを許可されます。
実際の動作
個人としても追加しない限り、ユーザーはアクセスを拒否されます。
ログには、次のように表示されます。
メッセージにエラーが含まれています: 'access_denied'、error_description: 'AADSTS50105: サインインしているユーザー '{EmailHidden}' は、アプリケーション '
{Redacted GUID}'(Redacted App Name) のロールに割り当てられていません。
ただし、この場合、すべての個人は登録されたグループの一部であり、グループはDefault Access個人に付与されたのと同じロールを持ちます。
私が試したこと:
- K. Scott Allen (RIP) によるこの投稿に従って、アプリケーションのマニフェストを更新しまし
groupMembershipClaimsた。SecurityGroup
質問
Azure AD エンタープライズ アプリケーションの個々のユーザー アクセスからグループ ベースのアクセスに移行するにはどうすればよいですか?
更新: 認証コード
要求ごとに、認証のセットアップに使用するコードを提供します。
IIRC、これは Azure 用のすぐに使える .NET Core セットアップです。のStartup.cs
services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
.AddAzureAD(options =>
{
Configuration.Bind("AzureAd", options);
});
AzureAd構成セクションは次のようになります。
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "(Redacted)",
"TenantId": "(Redacted Guid)",
"ClientId": "(Redacted Guid)",
"CallbackPath": "/signin-oidc"
}