0

我们正在尝试让 SaaS 产品针对在 Windows Server 2016 上运行的 AD FS 4.0 服务进行身份验证。

Web 应用程序是使用 JWT 为 SSO 设置的,并允许我们设置Shared SecretLogin URLLogout URL

我让应用程序重定向到 AD FS 登录屏幕https://hostname/adfs/oauth2/authorize并针对活动目录进行身份验证。从那里它返回一个我知道需要转到https://hostname//adfs/oauth/token的代码值,但在这里我被卡住了。

我是否需要构建一个 Web 服务,从授权端点接收代码,将其发布到令牌端点,然后使用 JWT 重定向回 Web 应用程序?或者如果我正确配置它,AD FS 可以自己执行此操作吗?

我想要的是让 Web 应用程序重定向到 AD FS 登录屏幕(完成),AD FS 对 AD 进行身份验证(完成),然后(做魔术)并使用 JWT 重定向回 Web 应用程序。

编辑:

以下是我想要的 Server 2016 AD FS 4.0。我需要创建自己的 ADFS/AUTHORIZE->code->ADFS/TOKEN->jwt->Application URL 处理服务吗?

https://support.zendesk.com/hc/en-us/articles/203663816-Setting-up-single-sign-on-with-JWT-JSON-Web-Token-

更新:

看来您必须控制客户端应用程序,而当您使用第 3 方 SaaS 时,情况并非如此。因此我们需要这样实现一个myapi

  1. SaaS 重定向到 /adfs/oauth2/authorize
  2. AD FS 重定向到 /myapi/?code=ab2..3cf
  3. myapi发布code到 /adfs/oauth2/token
  4. AD FS 响应包含 JWT
  5. myapi使用 /?jwt=token 重定向到 SaaS
4

1 回答 1

0

此流程称为授权码授予。

好图在这里

获取代码,将其发送到 /token 端点,获取访问令牌,将其发送到 Authorization 标头中的 API。

如果 SaaS 产品具有 OpenID Connect 堆栈,它应该自动执行此操作。SaaS 产品需要驱动流程。

更新:

使用 ADFS 唯一需要做的就是配置它。无需编程。

您需要对客户端进行编码。

客户端发送到 /authorize 端点。

ADFS 以代码响应。

客户端将代码发送到 /token 端点。

ADFS 以令牌响应。

客户端将令牌发送到 API。

于 2018-03-28T18:24:01.857 回答