使用SAML实现Angular的Azure AD SSO

使用SAML实现Angular的Azure AD SSO,angular,azure,saml,Angular,Azure,Saml,几个月前,我们使用OpenID连接协议为Angular应用程序开发了单点登录解决方案,其中包含Azure AD。使用Microsoft Active Directory身份验证库(MS ADAL)为Angular 6+()简化了这项工作 我们现在被要求使用安全断言标记语言(SAML)协议实现Azure AD SSO。我已经搜索了很多,但没有找到任何类似MS ADAL的东西,可以帮助在角度应用程序中使用SAML实现SSO。也没有任何好的代码示例、教程或分步说明 我们的要求是将Azure AD SS

几个月前,我们使用OpenID连接协议为Angular应用程序开发了单点登录解决方案,其中包含Azure AD。使用Microsoft Active Directory身份验证库(MS ADAL)为Angular 6+()简化了这项工作

我们现在被要求使用安全断言标记语言(SAML)协议实现Azure AD SSO。我已经搜索了很多,但没有找到任何类似MS ADAL的东西,可以帮助在角度应用程序中使用SAML实现SSO。也没有任何好的代码示例、教程或分步说明

我们的要求是将Azure AD SSO集成到我们的Angular应用程序(Angular 9+)和SAML中。如果集成可以像使用MS-ADAL的OpenID那样进行,那就太好了。但我们准备投入一些时间来编写自己的集成代码(根据需要)。然而,目前,我们似乎无法用这个去任何地方

这项研究还让我想到,如果OpenID已经在Angular为我们工作,那么是否值得花时间进行基于SAML的身份验证。在我看来,SAML与OpenID的比较与ASMX与Web API的比较是一样的,也就是说,与OpenID相比,SAML似乎已经过时了。然而,即使事实确实如此,我们仍然需要找到一种方法来说服我们的客户转而使用OpenID,这本身就是一个挑战

编辑2021年5月5日:
我几乎得出结论,SAML只适用于服务器端web应用程序(Node.js、ASP.NET MVC),而不适用于SPA/客户端(Angular、ReactJS、Vue.js),而OpenID适用于这两种类型的应用程序。不过,我想寻求更多的意见……

我会放弃。SAML被指定用于web应用程序(=它们在服务器上运行,而不是在浏览器中)。我想说SPA不太适合SAML设计。@JanGaraj-我确实放弃了,但现在受到了一些大客户的推动,他们已经为一些其他(非SPA)应用程序实现了SAML。他们的IT需要一些非常有说服力的理由来解释为什么我们不能为Angular应用程序使用SAML。