gpt4 book ai didi

c# - .net 核心 [授权] 将 ClaimsIdentity 与 AAD 组一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:40 25 4
gpt4 key购买 nike

我在我的 ((System.Security.Claims.ClaimsIdentity)User.Identity).Claims 中看到了这个:

enter image description here

我如何利用从 Azure AD 获取的这些组 GUID(以根据组成员身份保护端点)?

[Authorize(Roles="<group guid here>")]

[Authorize("<group guid here>")]

或者我是否需要在 startup.cs 文件中设置一些东西?

最佳答案

您可以在 asp.net core 中使用策略,使用具有命名策略的属性,然后在启动时定义策略以要求组声明并设置允许的组 ID:

        public void ConfigureServices(IServiceCollection services)
{
// Add MVC services to the services container.
services.AddMvc();

// Add Authentication services.
services.AddAuthentication(sharedOptions => sharedOptions.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme);


services.AddAuthorization(options =>
{
options.AddPolicy(
"CanAccessGroup",
policyBuilder => policyBuilder.RequireClaim("groups", "8e39f882-3453-4aeb-9efa-f6ac6ad8e2e0"));
});
}

然后在 Controller 中:

 [Authorize(Policy = "CanAccessGroup")]
public IActionResult Contact()
{
ViewData["Message"] = "Your contact page.";

return View();
}

如果组 ID 不在用户组声明中,它将重定向用户访问被拒绝的页面,您也可以编写策略规则逻辑,如图所示 here .

关于c# - .net 核心 [授权] 将 ClaimsIdentity 与 AAD 组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44643361/

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