如何在身份验证提供程序的重定向 uri 中包含哈希片段

Lie*_*ero 1 url openid-connect asp.net-core

我有带有开放 ID 连接身份验证的 asp.net core 2.1 应用程序:

services.AddAuthentication(...)
    .AddCookie(...)
    .AddOpenIdConnect(...);
Run Code Online (Sandbox Code Playgroud)

当未经身份验证的用户访问 url: 时/path?somequery#somehashfragment,它会被重定向到身份验证提供商的登录页面,然后返回到/path?somequery,但哈希片段会被删除。

Kav*_*uwa 6

URL 哈希片段不会离开浏览器。这意味着如果您将哈希片段放入浏览器中的 URL 并访问它,片段将不会到达服务器端。解决方案是使该参数成为查询参数。

从 OIDC 的角度来看,这用于隐式流以防止令牌被窃取。这在规范的隐式流量威胁部分中得到了强调。