AngularJS 应用程序的 AssertionUrl

2023-12-04

我的申请流程是这样的,

  1. 用户输入 Url,然后显示 AngularJS 登录页面
  2. 用户单击“使用 SAML 登录”并调用返回 SAML 登录 URL 的 Web API 端点
  3. AngularJS UI 接收 SAML 登录 URL 并将用户重定向到 Idp 登录屏幕
  4. 用户通过 Idp 进行身份验证,并且 Idp 调用 AssertionUrl

问题从这里开始,

  1. 如果我在 Web API 上创建断言 URL 并验证请求,那么 AngularJS UI 如何知道登录是否成功?

对于 MVC 和 Web 表单,这非常简单,但是对于 AngularJS/Angular SPA 应该做什么?

Edit 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 身份验证后的后续用户会话。

  1. 像 ASP.NET MVC 中一样使用 cookie。您必须限制 cookie 以确保其在 SPA 中的安全。它要求您的 API 和 SPA 位于同一域中。

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

您可以使用以下命令创建 JWT 访问令牌ITfoxtec.身份包裹。通过致电JwtHandler.CreateToken method https://github.com/ITfoxtec/ITfoxtec.Identity/blob/master/src/Tokens/JwtHandler.cs#L38.

Edit 1

SPA、IdP 和 API 之间的所有通信都是通过客户端浏览器重定向或发布。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 应用程序的 AssertionUrl 的相关文章

  • 从 ASP.NET Web API 返回 HTML

    如何从 ASP NET MVC Web API 控制器返回 HTML 我尝试了下面的代码 但由于未定义 Response Write 而出现编译错误 public class MyController ApiController HttpP
  • Angular UI bootstrap 手风琴 - 展开创建可滚动和页面“跳转”

    我正在使用 Angular ui 引导手风琴 一切都很好 除了当我展开一个足够大的手风琴部分时 浏览器会显示页面的滚动条 整个页面会向左摇动滚动条的宽度 当手风琴足够小以至于不需要滚动条时 页面会恢复到原始大小 我不知道该怎么办 这是否需要
  • 在 Karma+AngularJS 测试中加载模拟 JSON 文件

    我有一个 AngularJS 应用程序 使用 Karma Jasmine 设置了测试 我想测试一个函数 它接受一个大型 JSON 对象 将其转换为应用程序其余部分更容易使用的格式 然后返回转换后的对象 就是这样 对于我的测试 我希望您有单独
  • 在 AngularJS 中将数组绑定到指令变量

    我正在尝试将数组放入模板中 以便我可以使用其中的各个值 我的问题是 该属性一旦进入我的模板就会变成字符串 因此它不再可以作为 var 0 访问 而是返回 字符串 的第一个字符 通常是 这是数据的简化设置 varForward 100 1 v
  • 访问指令的范围与嵌入内容隔离

    我不确定这是否真的可能 但我本质上想要 AngularJS 中 隔离范围的反转 这里有一个Plunkr http plnkr co edit 3xL5MrdJSfYH22ivkYJS展示 基本上 我设置了一个自定义指令来提供一些可重用的 H
  • 添加甜蜜警报 Angular js

    我是 AngularJS 的新手 我正在尝试使用来自https github com oitozero ngSweetAlert https github com oitozero ngSweetAlert 我已经将相应的脚本添加到我的in
  • 如何识别 YouTube 播放器的音量变化

    我正在使用 angualr youtube embed 指令将 YouTube 播放器嵌入到我的 Angular Web 应用程序中 因为我必须识别播放和暂停以及音量变化事件 为了监听播放和暂停事件 我使用下面给出的代码 scope on
  • getLocationAbsUrl 与 getCurrentUrl

    在量角器中 全球可用browser对象有两个方法 getLocationAbsUrl http angular github io protractor api view Protractor prototype getLocationAb
  • 使用 Phaser.js 和 Ionic 开发游戏应用程序(渲染缓慢/不稳定)

    只是为了让您知道 以防有人想要开发 我使用 Phaser js 开发了一个游戏应用程序 我将代码放入 Ionic 空白启动应用程序中 所以基本上视图是使用 Ionic 应用程序渲染的 然后 Phaser 通过 id 选取 div 并显示游戏
  • AngularJS 插值错误

    我正在显示房间的属性 作为我正在开发的房间管理应用程序的一部分 这是输出 如您所见 Beamer 英文投影仪 的值为 Sony lamp 01 12 2013 此输出是正确的 但当我打开控制台时 我看到一些有关插值的错误 更大的分辨率 Ca
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • 以角度选择项目后保持菜单打开

    单击我的菜单后 我的菜单将关闭toggleShare按钮 我怎样才能防止这种情况 我将 angularJS 与 Angular 材料一起使用 这是我的代码
  • BUG - 在 IOS 中没有选择标签的完成按钮

    我正在使用最新的离子并有一个简单的选择标签
  • AutoMapper.Mapper 不包含 CreateMap 的定义

    这可能是一个基本问题 但想知道我没有得到 AutoMapper Mapper CreateMap 方法 我使用了错误的 AutoMapper 参考 包吗 谢谢 静态版本CreateMap方法在 4 2 中已弃用 然后在版本 5 0 中从 A
  • 包含routeChangeSuccess的AngularJS测试控制器

    我正在尝试创建单元测试来测试导航列表控制器 但在创建测试时遇到问题 这是控制器的代码 navListModule controller NavListCtrl scope NavList function scope NavList sco
  • 在角度控制器中监听文档事件

    如何捕获角度控制器中的事件 我有文档级事件 所以我需要在角度控制器中捕获事件 这可能吗 Update 我有独立的 js 文件来处理来自相机的一些操作 document addEventListener myCameraEvent handl
  • 如何销毁角度工厂实例

    一方面 我有几个工厂 每个工厂都控制一个 websocket 另一方面 其中一个工厂应该在客户端登录时启动 因此 if user isLogged injector get NotificationsWebsocket 这就是我动态初始化工
  • 在 Angular 中让多个调用等待同一个 Promise

    我在一个页面上有多个使用相同服务的控制器 为了举例 我们将服务称为 USER 第一次调用 USER getUser 时 它会发出 http 请求来获取有关用户的数据 调用完成后 它将数据存储在 USER data 中 如果再次调用 USER
  • $resource.query 返回分割字符串(字符数组)而不是字符串

    我正在使用像下面这样的 Angular resource angular module app factory data function resource var Con resource api data update method P
  • 将 ServiceBase 类实例传递给托管在其上的 ApiController

    我正在开发一个 Windows 服务 并在其上托管 RESTFul Web 服务 我将通过Windows服务与Windows服务进行通信 This is my project structure 这些是我的课程实现 namespace Wi

随机推荐

  • 正则表达式 javascript 中仅排除 0

    我想创建一个正则表达式 它将采用一到十个数值 但如果只提供 0 则它不应该接受 例如 1 is valid input 1111123455 is valid input 01 is valid input 010 is valid inp
  • 如何使用 Java DeflaterOutputStream

    编辑 我真的只需要知道 Deflater 派生类何时决定写入页眉和页脚数据 以及如何利用这些事实 我真的很想做以下事情 用一些字节为 Deflater 派生类准备字典 我想我明白了 发送一些要压缩的数据到 Deflater 派生类 我想我明
  • 填充第二个选择框 - 绑定问题

    我使用以下代码用城市填充第二个选择框 jQuery country live change function populateCityListBox alert jQuery select city val function populat
  • Objective-C 从自定义单元格访问方法

    好吧 这可能是一个新手问题 但我需要帮助 我有一个 someview m 其中有一个在 customCell h 和 m 中定义的自定义单元格 所以在 someview m 我有 UITableViewCell tableView UITa
  • 如何在php中创建hmac md5?

    我正在使用 payU 信用卡系统 但我没办法 payU 告诉我必须创建 hmac md5 哈希值 我的密钥是 3 9 X4 660 ak h6 T 我想转换为 HMAC MD5 哈希 8GEMISEPE6208617192012 12 15
  • 创建文件夹并使 ES File Explorer 添加我的应用程序的图标

    我想将文件夹与我的应用程序关联起来 就像 WhatsApp 和 Viber 那样 我尝试创建文件夹 File folder new File Environment getExternalStorageDirectory getPath M
  • 注释可以出现在 DOCTYPE 声明之前吗?

    我想发表评论 style 位于 HTML 代码的最顶部 位于 DOCTYPE 声明之前 这符合标准吗 主流浏览器都支持吗 这样做有什么陷阱吗 It is 完全有效 to do However 带来allIE 版本怪癖模式 除非是forced
  • 如何避免 Xstream 生成带有 & 或 "e 或类似字符的 xml 文件?

    我开始工作Xstream与Java 我有一个名为的汽车列表CarList 我有一辆汽车作为一个名为Car XStream xstream new XStream new StaxDriver xstream alias Car Car cl
  • 使用 Rvest 抓取包含多个表的 URL

    我正在尝试学习如何做一些scraping使用 rvest 包 我正在用这个url加载信息 我试图获取 URL 中标记为 高级 的表的信息 当我尝试加载信息时 我所能得到的只是第一个表 我的意思是 当我使用谷歌浏览器检查时 我看到表中的数字被
  • 在 XSLT v1.0 中使用以结尾

    我正在尝试编辑当前的 XSLT 我想要的功能是当 code no 的值以01结尾时我想编辑当前城市位置 目前此功能不存在 我尝试过使用字符串和子字符串 但它给了我一个错误 说结尾功能不存在 请帮忙 来自 xml 的值是
  • 使 Android 模拟器适用于 1600x1200

    我尝试在模拟器中将 Android 的皮肤布局编辑为 1600x1200 但模拟器无法打开窗口 它适用于较小的分辨率 如 1024x480 等 但不适用于大分辨率 尽管即使使用 1024x480 模拟器窗口的一部分也无法访问且不可见 我的问
  • PHP 编码电子邮件地址

    我需要一条路PHP仅使用对电子邮件地址进行编码a zA Z0 9所以基本上编码时没有任何特殊字符 但随后能够将其解码回原始内容 Example email protected gt ENCODE gt n6bvJjdh7w6QbdVB373
  • NodeJS并行回调设计模式

    我正在尝试找到一个好的模式来执行一堆并行任务 让我定义一些任务来举例说明 任务a b c d e f g执行为a function er ra task a returned ra is result so do b to g 还有一些任务
  • Webpack 反应热加载程序不工作

    下面是我的 webpack config js 代码 var webpack require webpack var path require path module exports context dirname app entry we
  • 右栏按钮项目不显示

    我有以下用于放置 rightbarbuttonitem 的代码 UIButton rightbutton UIButton buttonWithType UIButtonTypeCustom rightbutton setBackgroun
  • 某些 JSON 文件出现 PowerShell FilterScript 错误

    感谢 iRon 本周早些时候提供的帮助question 他对我目前正在进行的一项工作提供了巨大帮助 总之 我们有一个 Azure CICD 管道来部署策略 我们有一个包含 200 多个 JSON 策略文件的文件夹 CICD 流程将它们全部放
  • 使用 to_html 将 CSS 类应用到 Pandas DataFrame

    我在使用 Pandas to html 方法应用 classes 参数来设置 DataFrame 样式时遇到问题 类 str或列表或元组 默认无 应用于生成的 html 表的 CSS 类 从 https pandas pydata org
  • 递归 mod_rewrite 用于搜索引擎友好的 url

    我一直在读以前的解决方案递归 mod rewrite 问题与我想要做的类似 不同之处在于我通过 index php 文件发送所有查询 因此不需要在查询中指定脚本 本质上我想递归地转换搜索引擎友好的 URL 中的任意数量的参数 example
  • 文本框中的永久前缀

    我试图在文本框中输入永久前缀 就我而言 我想要有以下前缀 DOMAIN 这样用户只需在域前缀后输入用户名即可 这不是我必须做或追求的事情 但我的问题更多是出于好奇 我试图想出一些逻辑来做到这一点TextChangedEvent但是 这意味着
  • AngularJS 应用程序的 AssertionUrl

    我的申请流程是这样的 用户输入 Url 然后显示 AngularJS 登录页面 用户单击 使用 SAML 登录 并调用返回 SAML 登录 URL 的 Web API 端点 AngularJS UI 接收 SAML 登录 URL 并将用户重