azure 如何在JavaScript SPA WebApp登录表单中实现SAML 2.0身份验证?

daupos2t  于 2023-08-07  发布在  Java
关注(0)|答案(1)|浏览(105)

使用Azure和SCP(SAP云平台)等企业云系统需要了解如何利用和实施SSO(单点登录)身份验证。这两个云系统都采用SAML 2.0协议来实现SSO,这非常容易配置。但是,我不清楚如何将此协议用于JavaScript SPA WebApp以实现登录表单。Azure提供以下API。

的数据
调用这些API的方式是什么?Azure提供了一个good introductive documentation,但从开发的Angular 来看,我找不到任何实际的使用示例。有必要使用图书馆吗?可能我误解了SAML的目的,我应该使用不同的认证协议,如OAuth 2.0。是这样吗?

xa9qqrwz

xa9qqrwz1#

这是一个非常古老的问题,但答案并没有太大变化。SAML不适合SPA应用程序,因为它依赖HTTP POST来传输数据,并且需要在SPA端保护密钥。
我的建议是首先尝试使用更适合SPA的身份验证方法。例如OpenID连接。如果您的IdP不支持OpenId连接,或者您有一些必须使用SAML的要求。最好的方法是使用身份代理解决方案。
使用身份代理时,您有一个软件充当SPA使用的OpenID连接和IdP使用的SAML之间的转换器。这样,您可以在SPA中使用OpenID连接标准,但在IdP上仍然使用SAML。
Keycloak是一个很好的,免费的,开源的替代使用身份代理。
几个月前,I wrote a blog post on how to set this up用于React SPA,ADFS IdP和Keycloak作为身份代理。在Vagrant和虚拟盒子中也有一个自动演示环境,您可以使用它来尝试。

相关问题