angular - ADFS 2016:注销后无法重定向到登录页面
问题描述
我正在使用 OpenID Connect 和 OAuth 2.0 直接针对 AD FS 4.0 对用户进行身份验证和授权。我将我的 Angular + ASP.NET Core 应用程序作为 Native 和 Wep API 应用程序添加到应用程序组,并提供了 Native 应用程序的重定向 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 属性时我可能错过了什么吗?
解决方案
如此处所述,您可以尝试使用 ADFS 支持的 Open ID Connect Frontchannel Logout 机制。
转到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
推荐阅读
- javascript - 如何在 Angular 8 中检测文件的字符集?
- node.js - 温斯顿自定义传输格式的消息
- python - Python字符串到类名
- mysql - 具有大型数据集的 Laravel API 加载速度非常慢
- python - Samco API 字典问题
- javascript - 如何在 MVC.Core 中显示漂亮的彩色和可折叠的 json
- python - Juptyter Notebook 中 matplotlib 的输出
- r - R中基于字符串过滤的聚合数据帧
- c# - Office 2016 自动化
- android - 一切正常,但未显示吐司,单击“呼叫驱动程序”后再次出现“获取您的驱动程序”