【发布时间】:2021-01-27 22:54:40
【问题描述】:
我正在尝试创建一个 IdentityServer4 + ASP.NET Core Identity 后端来处理访问/刷新令牌和用户/登录管理。在某个时间点,我还将创建一个 Web API,因此我需要访问令牌。我的前端是 Blazor WebAssembly。
在我阅读的几乎所有指南/教程中,我都提到了使用 Open ID Connect 的授权代码授予。但是,当我实现这一点时,我会从用户登录页面重定向到不同端口上的身份服务器登录页面,如下所示:
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.SignInScheme = "Cookies";
options.Authority = "https://localhost:5000";
options.RequireHttpsMetadata = false;
options.ClientId = "mvc";
options.SaveTokens = true;
});
在此示例中,我的身份服务器在 localhost:5000 上运行,而我的 blazor wasm 在 localhost:5003 上运行。我希望用户能够在同一域上使用 Blazor Webassembly 的前端 UI 登录,我该怎么做?
【问题讨论】:
-
这就是它的工作方式,IDP 在不同的站点上。如果您不介意有一个专用的 IDP,您可以随时在 blazor 中使用 Identity。
-
我有点厚...你的意思是要在 WebAssembly 应用程序中创建一个登录表单,其中一些代码可以对用户进行身份验证,内部将 id-token 传递给 Blazor,等等。换句话说,您不希望 Blazor 将用户重定向到 IdentityServer 提供程序进行身份验证。您不想看到 IdentityServer4 提供的登录页面,但您想要一个为您量身定制的页面。
-
@enet 是的,这正是我想要的。我知道我也可以编辑登录页面以查看我想要的方式,但我不想为此离开 blazor wasm 的域。
标签: asp.net-core redirect identityserver4 blazor identity