gpt4 book ai didi

wpf - PublicClientApplication - AcquireTokenInteractive - 组成员资格

转载 作者:行者123 更新时间:2023-12-03 05:40:12 24 4
gpt4 key购买 nike

我正在编写一个 .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 进行身份验证并确认用户位于特定组中。

谢谢

最佳答案

您可以按照说明在 token 中包含群组声明 here 。您只需修改应用程序 list 中的“groupMembershipClaims”字段即可:

"groupMembershipClaims": "SecurityGroup"

token 将包含用户所属组的 ID,如下所示:

{
"groups": ["{group id}"]
}

然后就可以根据代码中的group id进行逻辑判断了。

另一种方法adding an appRole进入您的 Azure AD 应用程序和 assigning users and groups to roles .

然后该组中的用户将拥有如下声明:

{
"roles": ["{the role you customized}"]
}

然后您可以根据用户的角色实现授权逻辑。

关于wpf - PublicClientApplication - AcquireTokenInteractive - 组成员资格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59365286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com