我是Blazor的新手,正在尝试使用oidc进行身份验证。我正在尝试使用Secure an ASP.NET Core Blazor WebAssembly独立应用程序中的说明进行设置。
以下是我希望应用程序做的事情(我认为这是一个"正常"的应用程序流(:
- 启动应用程序
- 被重定向到登录页面(此登录页面不在我的应用程序中(
- 登录后重定向回应用程序
我一定错过了一些简单的东西。当我尝试运行应用程序时,我在浏览器控制台错误中看到了这个错误:
拒绝显示'https://xxxx.yyyy.com/",因为它将"X-frame-Options"设置为"deny"。
在响应标头中,我看到的是:
X帧选项:DENY
X-MS-转发状态代码:500
在请求标头中:
秒提取目的地:iframe秒获取模式:导航Sec Fetch Site:跨站点
我正在尝试模拟一个现有的、正在运行的Angular应用程序,在该应用程序的标题中,我在标题中看到了这一点
秒提取目的地:文档
Sec Fetch Mode:导航
Sec Fetch Site:跨站点
我不确定头部的差异是否就是差异,但这是我唯一看到的。正在寻求有关如何使此登录流正常工作的建议?
事实证明,我的场景-不支持Blazor Webassembly到ADFS。经过几天的思考,我发现:BLAZOR WASM-ADFS-OIDC-文档表明这不是一个受支持的场景。
然后我找到了一篇文章,它为我指明了正确的方向用ADFS 配置Blazor WASM
事实证明,MSAL提供商似乎可以很好地应对这种情况:
builder.Services.AddMsalAuthentication(options => {
// Configure your authentication provider options here.
options.ProviderOptions.Authentication.Authority = "https://xxx.yyyy.com/adfs";
options.ProviderOptions.Authentication.ClientId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx";
options.ProviderOptions.Authentication.NavigateToLoginRequestUrl = true;
options.ProviderOptions.LoginMode = "redirect";
});