【发布时间】:2021-09-29 16:38:43
【问题描述】:
我有 2 个应用程序,一个是带有 Msal .net 代码的 mvc Web 应用程序,用于 Azure 广告 B2C 登录,第二个应用程序是使用相同的 azure ad b2c 登录的电源应用程序门户。如果用户登录任何一个应用程序,我已将 iframe 添加到两个应用程序中以进行静默登录,在电源应用程序门户上它可以在所有浏览器(如 chrome、firefox、edge、opera)上运行。但是对于 mvc 应用程序,它只能在 firefox 浏览器上运行,除了 firefox 之外,它的请求不会得到身份验证。当我调试 iframe 请求时,能够看到获取令牌
IConfidentialClientApplication confidentialClient = MsalAppBuilder.BuildConfidentialClientApplication(new ClaimsPrincipal(notification.AuthenticationTicket.Identity));
Globals.ClientInfo = confidentialClient;
// Upon successful sign in, get & cache a token using MSAL
AuthenticationResult result = await confidentialClient.AcquireTokenByAuthorizationCode(Globals.Scopes, notification.Code).ExecuteAsync();
Globals.AuthenticationResult = result;
Globals.Claims = notification.AuthenticationTicket.Identity.Claims;
Globals.EncryptedClaim = notification.JwtSecurityToken.RawData;
但是进入回调函数Request.IsAuthenticated是假的。
我的 Web 应用程序使用 .net framework 4.7.1 和 Microsoft.Identity.Client 版本 4.29.0,请帮我解决这个问题。
此外,我在 chrome 和 edge 上的 b2c 回调方法也出现错误,自动响应 cookie 正在设置 Lax 而不是 None,这是否会导致为 iframe 设置 cookie 的问题。
谢谢,
桑迪
【问题讨论】:
标签: asp.net-mvc owin azure-ad-b2c