【问题标题】:SAML (or other) authentication flow from non-browser clients来自非浏览器客户端的 SAML(或其他)身份验证流程
【发布时间】:2020-09-29 23:19:05
【问题描述】:

寻求指导以实现 Web 应用程序的以下功能:

  • 非浏览器 SSO
  • 无缝登录

非浏览器 SSO

ADFS (IdP) 位于专用网络中,但我想方便从任何网络进行访问,这意味着我需要在我的公共域中捕获用户名(以及密码,如果受到质疑),然后通过后台验证输入的凭据 -结束脚本。

无缝登录

由于这是 SSO,如果用户与 ADFS 进行了活动会话,这意味着他已经通过 ADFS 域进行了身份验证,例如通过访问他的办公室计算机,我希望允许访问而不要求提供凭据。


我正在研究 SAML ECP、OAuth 2.0、OpenID Connect、LDAP 的选项,但似乎没有一个能解决我的要求而不会产生开销。

SAML 驱动的 SSO 无法从任何网络访问,因为它是基于浏览器的,因此无法访问专用网络 IdP。

LDAP 没有私有网络限制,但据我所知,无法像 SAML 那样促进无缝登录。

OAuth/OpenID 似乎正在解决围绕身份验证/授权的完全不同的挑战。

【问题讨论】:

  • SAML 不是基于浏览器的,它在某些配置文件中使用 HTTP 作为传输,并且它是基于“浏览器”的。 OpenID Connect 解决了与 SAML 相同的问题……而且它也使用 HTTP。

标签: authentication oauth-2.0 saml-2.0 federated-identity adfs4.0


【解决方案1】:

通常 Open Id Connect 和 OAuth 2.0 是 preferred options,因为它们是基于 JSON 的协议,对浏览器/移动设备友好。

如果您希望用户能够从任何网络登录,那么执行此操作的标准方法是使授权服务器在 Internet 上可用。

对于基于 Microsoft 的解决方案,这是行业标准解决方案的工作方式:

  • 将 Azure AD 用作授权服务器 (AS)
  • 在非 Intranet 场景中,例如移动应用程序,您通过 Azure AD 凭据登录
  • 在 Intranet 场景中,Azure 可以将浏览器重定向到您的本地 IDP
  • 还可以将凭据从本地同步到 Azure AD

当然,这需要对基础设施进行投资,而且所涉及的工作并非微不足道,但一旦完成,您将拥有非常好的选择。

【讨论】:

  • 感谢您提供的链接,这是一本好书。可悲的是,Cloud AD 不是一种选择。这几乎就像我的服务(作为公共域)需要在从 Internet(非 Intranet)访问的场景中充当 Cloud AD 一样。就我而言,OPIC/OAuth 似乎是唯一的选择......
猜你喜欢
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多