簡體   English   中英

.net core [授權]使用ClaimsIdentity和AAD組

[英].net core [Authorize] using ClaimsIdentity with AAD groups

我在我的((System.Security.Claims.ClaimsIdentity)User.Identity).Claims看到了這一點。 ((System.Security.Claims.ClaimsIdentity)User.Identity).Claims

在此輸入圖像描述

如何使用我從Azure AD獲取的這些組GUID(以基於組成員身份保護端點)?

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

要么

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

或者我需要在startup.cs文件中設置一些東西?

您可以在asp.net核心中使用策略,使用具有命名策略的屬性,然后在啟動時定義策略以要求組聲明並設置允許的組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"));
            });
        }

然后在控制器中:

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

            return View();
        }

如果組ID不在用戶組要求的,將重定向用戶訪問被拒絕頁面,你也可以寫你的策略規則的邏輯如圖所示這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM