AngularJS 应用程序的 AssertionUrl
AssertionUrl for AngularJS Application
我的申请流程是,
- 用户进入 Url 并显示 AngularJS 登录页面
- 用户单击“使用 SAML 登录”并调用 Web API 端点,returns SAML 登录 URL
- AngularJS UI 接收 SAML 登录 URL 并将用户重定向到 Idp 登录屏幕
- 用户通过 Idp 进行身份验证并且 Idp 调用断言Url
问题从这里开始,
- 如果我在 Web API 上创建断言 Url 并验证请求,那么 AngularJS UI 如何知道登录成功与否?
在 MVC 和 Web Forms 的情况下,它非常简单,但是在 AngularJS/Angular SPA 的情况下应该做什么?
编辑 1:
登录流程
SPA -> API -> SPA -> Idp
(SPA 调用 API,API 生成 SAML 请求并 Returns 它到 SPA,然后 SPA 被重定向到 Idp)
断言流程
Idp -> API ? SPA
(Idp 在 API 中调用断言 Url 并且 API 生成 JWT 但它将如何发送到 SPA?)
在 AngularJS/Angular SPA 中,您有两种可能的解决方案来处理成功 SAML 2.0 身份验证后的后续用户会话。
像 ASP.NET MVC 一样使用 cookie。您必须限制 cookie 以使其在 SPA 中安全。它要求您的 API 和 SPA 在同一个域中。
登录成功后创建JWT访问令牌。它被交给 SPA 并在后端 API 代码中的每个 API 调用中进行验证。
您可以使用 ITfoxtec.Identity package. By calling the JwtHandler.CreateToken
method https://github.com/ITfoxtec/ITfoxtec.Identity/blob/master/src/Tokens/JwtHandler.cs#L38 创建 JWT 访问令牌。
编辑 1
SPA、IdP 和 API 之间的所有通信都是重定向或 post 通过客户端浏览器。
在断言流程中成功验证后。 API 可以使用查询中的访问令牌或 URL
中的片段重定向到 SPA
在Angular中创建一个组件(Token组件)并为其创建一个路由(如/token)。该路线应采用 /token/{token_id} 之类的路线参数。令牌组件从路由参数中获取令牌值并保存在 session 存储中。在所有 api 调用之前,angular 拦截器将从 session 存储中获取令牌值并添加为 header
我的申请流程是,
- 用户进入 Url 并显示 AngularJS 登录页面
- 用户单击“使用 SAML 登录”并调用 Web API 端点,returns SAML 登录 URL
- AngularJS UI 接收 SAML 登录 URL 并将用户重定向到 Idp 登录屏幕
- 用户通过 Idp 进行身份验证并且 Idp 调用断言Url
问题从这里开始,
- 如果我在 Web API 上创建断言 Url 并验证请求,那么 AngularJS UI 如何知道登录成功与否?
在 MVC 和 Web Forms 的情况下,它非常简单,但是在 AngularJS/Angular SPA 的情况下应该做什么?
编辑 1:
登录流程
SPA -> API -> SPA -> Idp
(SPA 调用 API,API 生成 SAML 请求并 Returns 它到 SPA,然后 SPA 被重定向到 Idp)
断言流程
Idp -> API ? SPA
(Idp 在 API 中调用断言 Url 并且 API 生成 JWT 但它将如何发送到 SPA?)
在 AngularJS/Angular SPA 中,您有两种可能的解决方案来处理成功 SAML 2.0 身份验证后的后续用户会话。
像 ASP.NET MVC 一样使用 cookie。您必须限制 cookie 以使其在 SPA 中安全。它要求您的 API 和 SPA 在同一个域中。
登录成功后创建JWT访问令牌。它被交给 SPA 并在后端 API 代码中的每个 API 调用中进行验证。
您可以使用 ITfoxtec.Identity package. By calling the JwtHandler.CreateToken
method https://github.com/ITfoxtec/ITfoxtec.Identity/blob/master/src/Tokens/JwtHandler.cs#L38 创建 JWT 访问令牌。
编辑 1
SPA、IdP 和 API 之间的所有通信都是重定向或 post 通过客户端浏览器。
在断言流程中成功验证后。 API 可以使用查询中的访问令牌或 URL
中的片段重定向到 SPA在Angular中创建一个组件(Token组件)并为其创建一个路由(如/token)。该路线应采用 /token/{token_id} 之类的路线参数。令牌组件从路由参数中获取令牌值并保存在 session 存储中。在所有 api 调用之前,angular 拦截器将从 session 存储中获取令牌值并添加为 header