IdentityServer4客户端重定向URI问题
我在IdentityServer4主机端配置了以下客户端:IdentityServer4客户端重定向URI问题,identityserver4,Identityserver4,我在IdentityServer4主机端配置了以下客户端: new Client { ClientId = "myClient", .... RedirectUris = {"https://localhost:44001/home/claims", "https://localhost:44001/"} .... } 我目前正试图让它以这样一种方式返回,即无论它来自客户端应用程序中的哪个控制器,它都能工作(
new Client
{
ClientId = "myClient",
....
RedirectUris = {"https://localhost:44001/home/claims",
"https://localhost:44001/"}
....
}
我目前正试图让它以这样一种方式返回,即无论它来自客户端应用程序中的哪个控制器,它都能工作(因为重定向URI是在客户端应用程序启动时配置的,并且必须与服务器的客户端配置相匹配)
在客户端应用程序启动中,相关代码:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
...
ClientId = "myClient",
RedirectUri = "https://localhost:44001/",
...
}
当我在客户端启动时将redirectUri设置为上面的第二个选项“”时,我被重定向到客户端错误控制器,错误如下:
抱歉,出现错误:未经授权的\u客户端无效
重定向“uri”
此外,服务器向控制台输出以下错误:
引发异常:中的“System.FormatException”
System.Private.CoreLib.dll
IdentityServer4.Validation.AuthorizeRequestValidator:错误:无效
重定向_uri:{“ClientId”:“myClient”,…“允许重定向URI”:[ "", “”],“主体”:“匿名”,“请求范围”:“原始”:{ “客户id”:“我的客户”, “重定向uri”:“”, “回复方式”:“表单发布”, “响应类型”:“代码标识令牌”, …}}
这几乎就像一个客户端不能有多个重定向URI,但这不可能是正确的。好的,在将第二个重定向URI设置为唯一的重定向URI之后,我仍然得到了错误。我去掉了后面的斜杠(“/”),它终于起作用了。我还得再处理一些。错误可能更具描述性。好的-如果您只是将重定向URI设置为客户端的主URL,它最终将返回到授权的控制器。所以,在将该客户端的重定向URI的客户端和服务器配置设置为“”之后,我现在可以拥有多个带有[authorize]注释的控制器,它们将正常工作。