通过Okta的Angular 2/5和SAML身份验证

通过Okta的Angular 2/5和SAML身份验证,angular,saml,okta,okta-api,Angular,Saml,Okta,Okta Api,我们正在构建一个Angular 5应用程序前端应用程序,节点作为后端层。angular对节点的API请求通过基本身份验证进行身份验证,但我们计划通过Okta为angular web应用程序实现SAML身份验证 有人能告诉我如何为Angular实现SAML吗?我通过添加一个jsp页面来收集来自Okta的post响应来实现这一点。接收到的SAMLResponse然后存储在localStorage中(加密或普通。这取决于您和您的要求)。然后重定向到angular应用程序的基本url。您需要编写代码来检

我们正在构建一个Angular 5应用程序前端应用程序,节点作为后端层。angular对节点的API请求通过基本身份验证进行身份验证,但我们计划通过Okta为angular web应用程序实现SAML身份验证


有人能告诉我如何为Angular实现SAML吗?

我通过添加一个jsp页面来收集来自Okta的post响应来实现这一点。接收到的SAMLResponse然后存储在localStorage中(加密或普通。这取决于您和您的要求)。然后重定向到angular应用程序的基本url。您需要编写代码来检查SAMLResponse是否在本地存储中。如果是,则只需将其发送到后端,通过RESTAPI进行处理并清除本地存储。如果SAMLResponse不在localStorage中,则遵循常规登录流程

若要启用SLO,则需要在表单元素上使用ngNoForm指令创建非角度表单,并将请求作为post请求发送。重定向绑定不起作用。

<form ngNoForm method="POST" id="hiddenForm" action="idpUrl">
    <input type="hidden" id="SAMLRequest" name="SAMLRequest" value=""/>
    <input type="hidden" id="RelayState" name="RelayState" value=""/>
</form>


您找到有关此问题的任何文档了吗?我还没有找到任何文档。我已经在Okta开发者论坛上发布了这个问题,等待回复。简而言之,你将把你的用户凭证发布到Okta,并获得一个会话url。从那里,您可以将窗口位置设置为会话的值。Okta将完成他们的工作,并最终设置一个仅限HTTP的cookie,并将您重定向回应用程序。从这里开始,您需要在每次请求时将cookie传回后端。@Alice您收到Okta团队的任何响应了吗?我使用openID实现了同样的功能,但是我还需要使用for SAML。