我刚刚把我的网站放在azure上,我在用户声明方面遇到了一些麻烦。
我想创建来自我的azure活动目录中特殊组的用户的特殊访问权限,当我在localhost上编写我的网站时,我就是这样做的:
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);
}
}
});
}
如果用户在群组中,他会获得“管理员”声明,如果不是,则获得“用户”。
在localhost上,它工作得很好但是现在我把它放在Azure上,它不再出现在“管理员”声明中了,只是给了用户声明......
有人能解释我问题的来源吗?
提前致谢!
编辑:我做了一些测试,看来应用程序没有在context.AuthenticationTicket.Identity.Claims
答案 0 :(得分:0)
尝试注销您的声明,尤其是声明中包含的群组。否则:您是否可以访问多个AAD租户?当你进入云端时,也许你是错误的租户。