繁体   English   中英

用户在ASP.NET MVC中声明Azure Active Directory

[英]User claims Azure active Directory in asp.net mvc

我刚刚将我的网站设为天青,并且在用户声明方面遇到了一些麻烦。

我想从azure活动目录中特殊组的用户创建特殊访问权限,当我在本地主机上对网站进行编码时,我是这样进行的:

public void ConfigureAuth(IAppBuilder app)
        {
            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

            app.UseKentorOwinCookieSaver();
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                CookieSecure = CookieSecureOption.Always,
                ExpireTimeSpan = System.TimeSpan.FromMinutes(15),
                SlidingExpiration = true,
                CookieHttpOnly = true
            });

            app.UseOpenIdConnectAuthentication(
                new OpenIdConnectAuthenticationOptions
                {
                    ClientId = clientId,
                    Authority = authority,
                    PostLogoutRedirectUri = postLogoutRedirectUri,

                    Notifications = new OpenIdConnectAuthenticationNotifications
                    {
                        AuthorizationCodeReceived = context =>
                        {
                            if(context.AuthenticationTicket.Identity.Claims.Any(x => x.Type == "groups" && x.Value == "587642-sff4-f4c0-8085-ssdfe45d87ed"))
                            {
                                context.AuthenticationTicket.Identity.AddClaim(new Claim("roles","Admin"));
                            }
                            else
                            {
                                context.AuthenticationTicket.Identity.AddClaim(new Claim("roles", "User"));
                            }

                            return Task.FromResult(0);
                        }
                    }
                });
        } 

如果用户在组中,则他得到索赔“ Admin”,如果不在组中,那么他得到“ User”。

在localhost上,它运行良好,但现在我将其放到Azure上,它不再出现在“ Admin”声明中,而仅给出User声明...

有人可以向我解释问题的根源吗?

提前致谢 !

编辑 :我进行了一些测试,似乎该应用程序未在context.AuthenticationTicket.Identity.Claims找到组或值(587642-sff4-f4c0-8085-ssdfe45d87ed)

尝试注销您的索赔,尤其是注销索赔中存在的组。 否则:您可以访问多个AAD租户吗? 当您进入云环境时,也许您选择了错误的租户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM