1

我的目标是提供一个面向互联网的应用程序,可供公司员工和外部用户使用。我将在 IdentityServer4 实例后面有 2 个 ADFS 实例,一个用于外部用户,一个用于公司员工。

一般来说,所有用户(员工或外部)都应始终获得 oAuth2 令牌来调用面向互联网的 API,但是当 SAML 依赖的公司系统之间存在内部调用时,内部调用应该能够获得 SAML2 令牌或模拟公司用户.

外部用户没问题,使用 openid 和 oAuth2。主要关注点是员工通过 SAML2 登录。

设置如下:

  1. IdentityServer4 位于前端,由 ADFS 提供支持
  2. 客户端应用程序应使用 OpenId 规范(/connect/authorize?端点)与 IdentityServer4 连接。我知道该怎么做
  3. IdentityServer4 应该通过 Ws-Fed 连接到 ADFS 以供外部用户设置。我知道如何到达这里。
  4. IdentityServer4 应通过 SAML2 连接到公司员工的内部 ADFS。如果能够根据用户的电子邮件地址在两个 ADFS 实例之间切换,那就太好了。就像在 Azure 上一样,您会收到一条消息:如果用户输入了已知的公司电子邮件域,我们会将您带到您雇主的登录页面。不过,此切换应该通过 IdentityServer UI 进行,可能模仿 Home Realm Discovery 功能。
  5. IdentityServer4 在任何一种情况下都应该发出 oAuth 令牌。6 当通过 SAML2 连接到公司 ADFS 时,IdentityServer4 应该收到一个签名的、加密的 SAML2 令牌响应,然后它应该为外部 API 发出常规的 oAuth 令牌
  6. 一些外部 API 可能想要调用内部企业基于 SAML 的 API,(*仅适用于企业用户)必须有一种方法来模拟用户,获取他的 SAML 令牌并传递给企业 API。

如果所有这些都有意义, - 我怎样才能实现步骤 5,6 和 7?- 是否有可以与 ADFS 交换 SAML2 令牌的中间件?- 是否可以将此 SAML2 令牌直接传递给内部 SAML 支持系统?

我以前从未使用过 SAML2 令牌,所以我对它的外观有点迷茫,它是类似于访问令牌还是使用 ADFS 响应中的断言构建的东西?

我知道我问了很多问题,但一切都是相关的。我正在探索 SustainSys,但无法找到将其插入以执行我想做的事情的方法。

4

0 回答 0