ADFS 2016:注销后无法重定向到登录页面

时间:2019-10-29 13:36:32

标签: angular oauth-2.0 logout adfs4.0

我正在使用OpenID Connect和OAuth 2.0直接针对AD FS 4.0对用户进行身份验证和授权。我将Angular + ASP.NET Core应用程序作为本机和Wep API应用程序添加到应用程序组,并提供了本机应用程序的重定向URI列表。

当用户从应用程序注销时,他们不会重定向到登录页面。我检查了答案ADFS 2016 oAuth not redirecting to login page after logout,但在我的情况下,指定了id_token_hint和post_Logout_Redirect_Uri:

GET https://<server-name>/adfs/ls/?wa=wsignoutcleanup1.0&id_token_hint=<current_Id_Token>&post_logout_redirect_uri=http://localhost:5000 HTTP/1.1

http:/ localhost:5000添加到本机应用属性中的“重定向URI”列表中。同样,在启用跟踪的adfs日志中也找不到错误或警告。

设置一些adfs属性时我可能会错过什么吗?

2 个答案:

答案 0 :(得分:0)

很多年前,我在ADFS 2.1上遇到了这种情况-我似乎还记得,登出注销重定向uri必须与普通登录​​重定向uri位于同一域。

尝试重定向回您自己的应用,然后进行响应。重定向到最终位置。

答案 1 :(得分:0)

here所述,您可以尝试使用ADFS支持的Open ID Connect Frontchannel注销机制。

转到https://server-name/adfs/.well-known/openid-configuration,并通过验证是否存在以下条目来检查是否支持前端注销机制:

end_session_endpoint: "https://<server-name>/adfs/oauth2/logout",
...
frontchannel_logout_supported: true,
frontchannel_logout_session_supported: true,

此后,您可以通过执行以下操作将注销uri添加到adfs中的服务器/本地应用程序中:

 Set-AdfsServerApplication -TargetIdentifier <id> -LogoutUri http://localhost:5000/logout

最后,您可以通过以下方式退出:

https://<server-name>/adfs/oauth2/logout?id_token_hint=XXXXX&post_logout_redirect_uri=http://localhost:5080