【问题标题】:ADFS2016 SAML2 to OAUTH2/OIDCADFS 2016 SAML 到 OAUTH2/OIDC
【发布时间】:2021-08-30 14:47:22
【问题描述】:

我们有一个 MVC 应用程序 () .net 4.5.2 (OWIN/ADAL),它通过 OIDC/OAuth2 使用 ADFS2016 进行 AuthN/AuthZ。用户的凭据和属性存储在 AD LDS 中。客户端 (X) 请求通过其 IdP over SAML2 在应用程序中进行身份验证。这是否可以在不更改应用程序的情况下实现?

我正在寻找的流程;对于此客户端,应用程序的 URL 将是 ()。我们的 ADFS 将识别客户端并将其重定向到他们的 IdP,他们将在其中进行身份验证,然后将它们连同一些预定义的声明一起发送回我们的 ADFS。我们的 ADFS 会将这些声明映射到 Id 令牌/访问令牌以供我们的应用程序使用。我是在做梦还是这确实可行?

任何关于如何实现这一点的文章/文档的链接都会很有帮助。

【问题讨论】:

  • 你为什么不在你的应用和客户的 idp 之间处理这个?我建议从这个特定客户的图片中消除添加。
  • 因为我想避免仅仅为了这个“边缘”案例而对应用程序进行更改。我们计划在今年晚些时候迁移到更强大的 IdP。此外,客户端可能需要访问一些基于 Angular 的应用程序。很难通过 SAML2 获得对它们的支持。

标签: asp.net-mvc oauth-2.0 openid-connect saml-2.0 adfs4.0


【解决方案1】:

正如@Wiktor 建议的那样,您可以将 SAML client-side stack 添加到您的应用中。

另一种方法是将 ADFS 与 SAML IDP 联合。

当用户被重定向到 ADFS 时,他们使用 Home Realm Discovery 重定向到 SAML IDP 或直接在 ADFS 上进行身份验证。

ADFS 应该处理令牌转换,但您可能不得不摆弄声明规则。

【讨论】:

  • 所以这确实是可能的?当然,我需要对其进行测试,但您有什么理由认为这不起作用吗?
  • 如果对多租户应用程序中的单个客户端的要求太高,这可能会很棘手。
  • 可以,但客户端必须手动选择 IDP(SAML 或本地 ADFS)。
  • 我看到的问题是 ADFS OIDC 不能很好地进行声明映射。因此,您在将 SAML 声明映射到 OIDC 声明时可能会遇到问题。
  • @rbrayb:我从 OP 的问题中了解到,他们只希望一个租户(而不是其他租户)获得这个额外的 IDP。不知何故,ADFS 应该有条件地呈现主域发现(可能取决于 wtrealm)。我什至不知道这对于 ADFS 是否可行,而且,这可能会改变应用程序与 ADFS 联合的方式,因为每个租户可能应该在 ADFS 中单独标识(而目前可能是应用程序重定向到 ADFS以同样的方式,不管租户)。
猜你喜欢
  • 2021-09-23
  • 2023-03-17
  • 2020-09-13
  • 2022-12-22
  • 2022-12-23
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
  • 2017-06-16
相关资源
最近更新 更多