Owin WS-Federation 设置令牌滑动过期

2024-03-26

有人可以解释如何使用新的实现滑动过期吗欧文WS-联合会 plugin?

在客户端,在 WS-Federation配置我看到有一些events like :

  Notifications = new WsFederationAuthenticationNotifications
            {
                SecurityTokenReceived = ...,
                AuthenticationFailed = ...,
                RedirectToIdentityProvider = ...,
                MessageReceived = ...,
                SecurityTokenValidated = ....
            },

但因为缺乏文档我真的不知道在哪里以及如何?

此刻我的STS正在发行绝对过期的代币:

 protected override Lifetime GetTokenLifetime(Lifetime requestLifetime)
 {
        // 5 Minutes for token lifetime
        var lifetime = new Lifetime(DateTime.UtcNow, DateTime.UtcNow.AddMinutes(5));
        return lifetime;
 }

非常感谢任何帮助。


TL;DR: set WsFederationAuthenticationOptions.UseTokenLifetime to false, 重新启用滑动过期.

在 OWIN/Katana 中,滑动过期概念仅限于cookies中间件 and is 默认启用(您可以通过设置将其关闭CookieAuthenticationOptions.SlidingExpiration to false: https://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin.Security.Cookies/CookieAuthenticationOptions.cs https://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin.Security.Cookies/CookieAuthenticationOptions.cs).

当你使用app.UseWsFederationAuthentication (or app.UseOpenIdConnectAuthentication),它实际上依赖于另一个中间件来持久化ClaimsIdentity当您完成身份验证流程时。这种“持久性委托”可以通过以下方式配置SignInAsAuthenticationType or via app.SetDefaultSignInAsAuthenticationType.

通常,这SignInAsAuthenticationTypeproperty 对应于 cookie 中间件:这样,滑动过期不是在 WS-Federation 中间件级别进行管理,而是由 cookies 中间件进行管理,当满足滑动过期条件时,将自动更新身份验证 cookie。在这种情况下,您的身份提供商颁发的身份验证令牌将不会更新。为此,您需要设置WsFederationAuthenticationOptions.UseTokenLifetime to false,因为当您使用默认值时,滑动过期被禁用,并且 cookie 生存期与令牌生存期匹配。

如果您使用 WS-Fed 进行身份验证(即您只想知道您的用户是谁),那么使用滑动过期可能是一个好主意。但是,如果您需要在远程服务器上进行一些 API 调用,您的用户最终可能会在安全令牌过期后很长一段时间内进行身份验证。

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

Owin WS-Federation 设置令牌滑动过期 的相关文章

随机推荐

  • 从Android模拟器读取C盘文件

    我正在 Android 模拟器上尝试测试应用程序 我希望该应用程序将数据写入存储在我的 C 驱动器上的文件 我已经从 Samba 驱动器和 Web 服务读取和写入数据 但读取和写入本地硬盘似乎是一个难题 我试过filePath file C
  • 如何在隐藏的默认浏览器中打开网页?德尔福

    我一直试图从 delphi 打开隐藏的默认浏览器 但无法打开 I tried ShellExecute self WindowHandle open www google com nil nil SW HIDE 我打开了 chrome 浏览
  • android 6.0.1 (Galaxy Note 5) 通过 FCM 推送通知,优先级高,不从瞌睡模式中唤醒

    经过几周的寻找答案后 遇到了无数的剖析 没有人提供解决方案 甚至没有人找出问题 或改变 https github com firebase quickstart android issues 89 https github com fire
  • 覆盖标记点击操作

    我想在用户单击编辑器左侧垂直标尺上的标记时添加自定义操作 我设法通过添加来运行自定义操作plugin xml下面的代码
  • json_encode PHP 数组为 JSON 数组而不是 JSON 对象

    我在 PHP 中有以下数组 Array 0 gt Array id gt 0 name gt name1 short name gt n1 2 gt Array id gt 2 name gt name2 short name gt n2
  • 如何在给定宽度和高度的情况下调整对象的 2D 向量的大小?

    我的课 GameBoard 有一个成员变量 它是该类对象的二维向量Tile The GameBoard构造函数将宽度和高度作为参数 我怎样才能得到二维向量Tile根据传递给构造函数的宽度和高度调整对象大小 我怎样才能填充它Tile对象以便我
  • CSV 字符串到数据表

    我有以下字符串 我想将其转换为数据表 Id Name Dept r n1 Mike IT r n2 Joe HR r n3 Peter IT r n 我可以使用 String Split 并迭代集合来创建它 但我需要有效的方法 使用 C 4
  • 带有嵌入式哈希表的 Powershell ConvertTo-json

    我在 ConvertTo Json 方面遇到问题 并试图理解其行为和 或我做错了什么 考虑以下命令序列 val ID 10 Config ID 11 Config ID 12 Config end ConvertTo json val Co
  • dask 数据帧 head() 返回空 df

    我有一个 dask 数据框 其中一列上有索引 问题是如果我执行 df head 它总是返回一个空的 df 而 df tail 总是返回正确的 df 我检查过 df head 总是检查第一个分区中的前 n 个条目 因此 如果我执行 df re
  • 在 AppDomain 之间共享数据

    我有一个可以有多个应用程序域的进程 每个AppDomain 都会收集一些统计数据 在指定的时间之后 我想累积这些统计数据并将它们保存到文件中 实现此目的的一种方法是远程处理 我想避免这种情况 我想到的唯一其他技术是将每个应用程序域的数据保存
  • MVC contrib 寻呼机

    我这样使用它 有没有简单的方法来更改呈现的网址 我查找了更多文档 但找不到太多 你到底想改变什么 这是我更改 URL 的方法 Html Pager Model AssetsPagedList First First Last Last Ne
  • 如何在 Spark Dataframe 中按组/分区重命名列?

    我有一些传感器数据按通道名称而不是传感器名称存储在表中 这是为了避免表太宽 因为许多传感器仅在少数设备上使用 这是稀疏列的工作 我知道 但我只是数据的用户 像这样的事情 from functools import reduce import
  • 内存映射显示的 RAM 多于物理可用内存

    我正在开发一个小型 x86 内核 我正在访问并尝试读取 GRUB 在多重引导标头中提供的内存映射 我有一个 Intel i3 cpu 和 4 GiB RAM 在这台机器上运行时 我正在读取以下内存映射 Base Address Length
  • phpmyadmin的PHP不执行但其他php脚本可以运行

    调用 phpmyadmin 网站时 会出现 保存文件 对话框application x httpd php 所以我的服务器不执行 phpmyadmin php 脚本 而是将代码传输到我的浏览器 其他 php 如 roundcube 或 is
  • Gradle:下载包含的 aar-library 的依赖项

    我写了一个图书馆项目cameraBarcodeScanner它内置于 aar 文件中 该库在其 build gradle 中定义了以下依赖项 dependencies compile fileTree dir libs include ja
  • 根实体中的 GAE 事务

    我是 GAE 新手 对数据存储事务有一些疑问 例如 我有一个用户实体 当用户在 Facebook 上添加我的应用程序时创建该实体 我通过 Facebook API 获得了一些属性 但我想为用户添加用户名 并且该用户名必须是唯一的 所以在事务
  • 如何获取prometheus中(当前)建立的TCP连接数(kubernetes监控)

    我在 Linux 中使用此命令来查看 当前 建立的 TCP 连接 netstat ant grep ESTABLISHED wc l 我如何将此命令转换为 PromQL 每个节点 我在 kubernetes 集群中使用带有节点导出器的 pr
  • 如何使用 R 个性化时间线?

    我想用 R 绘制一个时间线 其中的时间段很容易识别 我可以在其中个性化可视化 periods 周期 盒子 的颜色 线条 颜色 位置 文本的位置并将其放入 框 中 轴 大小 颜色 选择重点 与事件相关的日期 etc 我使用时间线库 但是我找不
  • 如何触发Uploadify onError 事件处理程序?

    我在用上传 http www uploadify com 上传文件 问题是 我需要通知用户处理这些文件期间出现的任何错误 上传有onError onComplete and onAllComplete事件处理程序 但我不知道如何触发这些事件
  • Owin WS-Federation 设置令牌滑动过期

    有人可以解释如何使用新的实现滑动过期吗欧文WS 联合会 plugin 在客户端 在 WS Federation配置我看到有一些events like Notifications new WsFederationAuthenticationN