AngularJS应用程序的断言URL

AngularJS应用程序的断言URL,angularjs,asp.net-web-api,itfoxtec-identity-saml2,Angularjs,Asp.net Web Api,Itfoxtec Identity Saml2,我的申请流程是 用户输入Url并显示AngularJS登录页面 用户单击使用SAML登录并调用返回SAML登录URL的Web API端点 AngularJS UI接收SAML登录URL并将用户重定向到Idp登录屏幕 用户通过Idp进行身份验证,Idp调用断言URL 问题从这里开始 如果我在Web API上创建一个断言Url并验证请求,那么AngularJS UI如何知道登录成功与否 在MVC和Web表单的情况下,这非常简单,但是在AngularJS/AngularSPA的情况下应该怎么做呢 编辑

我的申请流程是

  • 用户输入Url并显示AngularJS登录页面
  • 用户单击使用SAML登录并调用返回SAML登录URL的Web API端点
  • AngularJS UI接收SAML登录URL并将用户重定向到Idp登录屏幕
  • 用户通过Idp进行身份验证,Idp调用断言URL
  • 问题从这里开始

  • 如果我在Web API上创建一个断言Url并验证请求,那么AngularJS UI如何知道登录成功与否
  • 在MVC和Web表单的情况下,这非常简单,但是在AngularJS/AngularSPA的情况下应该怎么做呢

    编辑1:

    登录流

    SPA->API->SPA->Idp

    (SPA调用API,API生成SAML请求并将其返回给SPA,然后SPA被重定向到Idp)

    断言流

    Idp->API?温泉


    (Idp在API中调用AssertionUrl,API生成JWT,但它将如何发送到SPA?

    在AngularJS/Angular SPA中,成功进行SAML 2.0身份验证后,您有两种可能的解决方案来处理随后的用户会话

  • 使用类似ASP.NET MVC中的cookie。在SPA中,您必须限制cookie以确保其安全。它要求您的API和SPA位于同一个域上

  • 成功登录后创建JWT访问令牌。它被交给SPA,并在backen API代码中的每个API调用中进行验证

  • 您可以使用包创建JWT访问令牌。通过调用
    JwtHandler.CreateToken
    方法

    编辑1

    SPA、IdP和API之间的所有通信通过客户端浏览器重定向或post


    在断言流中成功进行身份验证之后。API可以使用URL中的查询或片段中的访问令牌重定向到SPA

    是的,目的是创建JWT令牌并使用它。但是API和Idp上的AssertionUrl在成功登录时调用它。API将创建JWT令牌,但SPA将如何接收令牌?请参阅问题中的编辑1,非常感谢您的帮助。错误地编辑了答案。