java - 如何以编程方式从使用 ADFS 的应用程序请求网页

标签 java oauth saml adfs ws-federation

此网页由 Web 应用程序提供服务,该应用程序使用 Microsoft ADFS(Active Directory 联合服务)进行访问控制。我可以使用浏览器请求此网页,如果我未登录 ADFS,我将被重定向到 ADFS 登录表单页面。提交我的凭据(用户名和密码)后,我被重定向回我最初请求的页面。这一切都运行良好。

现在,我想使用 Java 以编程方式请求此网页并使用 ADFS 处理单点登录。

需要明确的是:这将是一个请求网页的简单 CLI 应用程序,如果需要,我可以在该应用程序的配置中输入用户名和密码。 (也许可以获取并配置某种 token ?)我想要访问的网页只是一个常规的 HTML 文档,而不是像 Web 服务这样的花哨的东西。

我一直在阅读有关 ADFS 支持的技术的信息,例如 WS-Federation、SAML 和 OAuth,但在阅读了几个小时并查看了实现这些技术的各种库(Apache CXF、Apache Rampart、OpenSAML、Spring SAML、google-oauth-java-client 等)我仍然有以下问题:

  • ADFS 支持的哪些协议(protocol)可以或应该用于此用例?
  • 哪个(或多个)Java 库可以帮助我实现我的用例?

这个领域有太多的标准、技术和缩略语......我感到有点迷失。

最佳答案

ADFS 是基于 Web 浏览器的单点登录解决方案。这意味着它需要一个网络浏览器来进行用户 session 管理。所有身份验证方案(例如 SAML、WS-Federation、OAuth)都需要浏览器重定向到身份源(在您的情况下为 ADFS)。

如果您希望 CLI 应用程序针对您的 ADFS 服务器进行身份验证,请考虑使用一些底层协议(protocol),例如 LDAP (它将直接连接到您的 Active Directory 服务器进行身份验证)或 WS-Trust (基于 SOAP 的协议(protocol))或 RADIUS .

关于java - 如何以编程方式从使用 ADFS 的应用程序请求网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951588/

相关文章:

security - IDP 和 SP 身份验证流程,无需重定向到 IDP

java - MongoDB DBRef 列表在 Spring Boot 中返回 null

java - 在不同的方法中使用变量?

java - 如何在JFrame上放置多张图片?

java - NetBeans 'Tasks' 窗口显示不正确和旧的错误 - Java

oauth - 在passport.js 中为OAuth 策略动态指定重定向URL 的最佳方法是什么?

elasticsearch - 将Kibana连接到Keycloak时出现许可证错误

java - 在java中使用SSO身份验证使用服务?

curl - 如何从 cURL 命令实现 jmeter 请求发布

ruby-on-rails - rails 与 Oauth : multiple providers