PublicClientApplication - AcquireTokenInteractive - 组成员资格
PublicClientApplication - AcquireTokenInteractive - Group Membership
我正在编写一个 .Net Core 3.1 WPF 应用程序,它将针对 Azure Active Directory 进行身份验证。我已经在 Azure 中创建了应用程序注册并且我对 PublicClientApplication.AcquireTokenInteractive 的调用成功了。
但是,现在,我想添加另一层安全性 - 只有特定组中的用户才能 运行 WPF 应用程序。我已经尝试了多种方法:
选项 1: 我尝试将此代码添加到对 AcquireTokenInteractive 的调用中。我认为这需要用户在我的组中,但它并没有强制调用失败。我找不到关于如何格式化声明字符串的文档 - 如果声明字符串格式正确,这可能会起作用。
var result = await App.AcquireTokenInteractive(new List<string> { Scope })
.WithAccount(accounts.FirstOrDefault())
.WithClaims("<MY AD Group's Guid Id>")
.WithPrompt(Prompt.SelectAccount)
.ExecuteAsync()
.ConfigureAwait(false);
选项 2。 我还查看了在成功调用 AcquireTokenInteractive 后尝试查询组成员资格,但我不确定执行此操作的最佳方法。
实现此目的的最佳方法是什么 - .Net Core 3.1 WPF 应用程序针对 Azure AD 进行身份验证并确认用户在特定组中。
谢谢
您可以按照说明在您的令牌中包含群组声明 here。您只需要修改应用程序清单中的 "groupMembershipClaims" 字段:
"groupMembershipClaims": "SecurityGroup"
令牌将包含用户所属组的 ID,如下所示:
{
"groups": ["{group id}"]
}
然后你就可以在你的代码中根据group id进行逻辑判断
另一种方法是adding an appRole into your Azure AD app and assigning users and groups to roles.
那么群里的用户就会有如下声明:
{
"roles": ["{the role you customized}"]
}
然后你可以根据用户的角色实现你的授权逻辑。
我正在编写一个 .Net Core 3.1 WPF 应用程序,它将针对 Azure Active Directory 进行身份验证。我已经在 Azure 中创建了应用程序注册并且我对 PublicClientApplication.AcquireTokenInteractive 的调用成功了。
但是,现在,我想添加另一层安全性 - 只有特定组中的用户才能 运行 WPF 应用程序。我已经尝试了多种方法:
选项 1: 我尝试将此代码添加到对 AcquireTokenInteractive 的调用中。我认为这需要用户在我的组中,但它并没有强制调用失败。我找不到关于如何格式化声明字符串的文档 - 如果声明字符串格式正确,这可能会起作用。
var result = await App.AcquireTokenInteractive(new List<string> { Scope })
.WithAccount(accounts.FirstOrDefault())
.WithClaims("<MY AD Group's Guid Id>")
.WithPrompt(Prompt.SelectAccount)
.ExecuteAsync()
.ConfigureAwait(false);
选项 2。 我还查看了在成功调用 AcquireTokenInteractive 后尝试查询组成员资格,但我不确定执行此操作的最佳方法。
实现此目的的最佳方法是什么 - .Net Core 3.1 WPF 应用程序针对 Azure AD 进行身份验证并确认用户在特定组中。
谢谢
您可以按照说明在您的令牌中包含群组声明 here。您只需要修改应用程序清单中的 "groupMembershipClaims" 字段:
"groupMembershipClaims": "SecurityGroup"
令牌将包含用户所属组的 ID,如下所示:
{
"groups": ["{group id}"]
}
然后你就可以在你的代码中根据group id进行逻辑判断
另一种方法是adding an appRole into your Azure AD app and assigning users and groups to roles.
那么群里的用户就会有如下声明:
{
"roles": ["{the role you customized}"]
}
然后你可以根据用户的角色实现你的授权逻辑。