问题标签 [thinktecture-ident-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3065 浏览

authentication - WIF 滑动会话重新认证

我已经在我的依赖方应用程序中实现了滑动会话,如Sliding Sessions for WIF 4.5中所述。就目前而言,这很有效,但有一个问题似乎没有人谈论。

正如链接的博客文章指出的那样,当 RP 令牌过期时,下次发出请求时,令牌会从 STS 重新发出。当然,假设 STS 会话生命周期长于 RP 的会话生命周期,如果您正在实施滑动会话,几乎可以肯定这种情况。

无论如何,这完全破坏了滑动会话的全部意义。

似乎没人谈论的是当 RP 会话到期时该怎么办。我想要的是,如果 RP 会话超时(通常是因为有人离开他的办公桌 10 分钟),我的应用程序将重定向到用户可以重新验证的 STS 登录页面,然后重定向回我请求的页面;或者也许是我提出请求时所在的页面。

我几乎可以肯定这是可能的,但我完全不知道它是如何完成的。

这是我来自 global.asax 的代码:

我的问题:

  1. else子句是否适合放置重新身份验证逻辑?
  2. 如果是这样,请提供一个例子,因为我不知道。
  3. 如果#1 的答案是否定的,那么是否有一个我需要订阅的单独事件会告诉我“嘿,您的会话安全令牌已过期!”?
0 投票
1 回答
682 浏览

wso2 - WS-Federation 协议已弃用

我正在使用身份和访问控制,我想使用 Ws-federation 协议来启用基于浏览器的 SSO(单点登录)。我想知道这个协议是否由于安全原因而被弃用?

0 投票
2 回答
1929 浏览

ajax - 针对 REST 端点的 AJAX 调用由 Thinktecture 的 IdentityServer STS 保护

我有一些针对 ServiceStack REST 服务的调用,我使用开箱即用的 IdentityServer STS 保护了该服务。

我正在对 REST 端点进行 AJAX 调用,但我不确定如何设置登录过程以获取要传递的安全令牌。REST 端点与进行调用的网站位于不同的域中。到目前为止,我发现的所有信息似乎都围绕着客户端调用受保护资源获得 302 重定向到身份服务器登录页面的过程,然后在成功验证后获得 302 重定向到领域或根据配置回复。我已经正确连接了所有这些,如果我只是浏览 REST 服务,它会很好用。然而,关于我的网络应用程序,AJAX 和 302 并不是最好的朋友,所以理想情况下我认为我的 我希望有一个来自同一个 ServiceStack 网站的 REST 端点,它接受用户名和密码并返回一个安全令牌,没有任何重定向的复杂性(我将在我的 Web 应用程序本身中处理 401 重定向,当我得到在 web.config 中关闭passiveRedirectEnabled)。关于如何使用 IdentityServer 实现这一目标的任何想法?

干杯,克林特。

0 投票
1 回答
1432 浏览

.net-4.5 - 如何解码 SessionSecurityToken

是否可以解码a SessionSecurityToken

我已经建立了一个ThinkTecture IdentityServer使用 using的站点MachineKeySessionSecurityTokenHandler,并且一切都按预期工作。
但现在我需要将令牌传递给另一个服务,但在AuthorizationHTTP 标头而不是 cookie 中。

我尝试了以下方法:

但这会引发System.Security.Cryptography.CryptographicException

0 投票
1 回答
1085 浏览

wif - 在 web 和 wcf 层之间使用 WIF 4.5 进行身份委派,并使用 ClaimsAuthenticationManager 添加了自定义声明

我正在尝试实现从 web 层到 WCF 层的声明委托。

使用从 ClaimsIdentity BootstrapContext 获得的 ActAs 令牌非常有效。

在 Web 层从 ACS 收到的所有声明都正确传递到 WCF 层。

其设置类似于此处记录的:

http://msdn.microsoft.com/en-us/library/ee517269.aspx (但我相信这个具体示例与 WIF 4 有关。)

但是,我还需要丰富收到的声明以添加我们自己的内部声明。我使用 ClaimsAuthenticationManager 执行此操作。

这与此处记录的类似:http: //msdn.microsoft.com/en-us/library/system.security.claims.claimsauthenticationmanager.aspx

这可以正常工作,然后添加的其他声明可以在 Web 应用程序中的任何地方的 ClaimsIdentity 中使用。

但是,这些不会作为从 ClaimsIdentity.BootstrapContext 获得的令牌传递。

我理解这样做的原因是 BootstrapContext 包含收到的原始声明,因此不包含我添加的其他内部声明。

我需要一些方法才能将这些内部添加的声明传递给 actas 令牌中的 WCF 层。

有没有办法让 BootstrapContext 也包含我要添加的声明,或者有没有办法从当前的 ClaimsIdentity/Principle 生成 SecurityToken,我可以将其用作令牌(因为这将包含额外的索赔)。

0 投票
1 回答
4598 浏览

security - 如何使用 SAML 断言验证从 ac# 应用程序到启用 WIF 的 ASP.NET WebApi 应用程序的请求

我已将 ThinkTecture 身份服务器设置为 STS,设置了 Web api 项目,并在 Visual Studio 中使用了“身份和访问”工具,并将其指向我的联合元数据以启用使用 WIF 的联合身份验证。这是 web.config 的相关部分的样子:

这对于验证从浏览器使用 API 的用户来说非常有用。

我现在需要从客户端应用程序中的代码 (C#) 调用相同的 API - 让我们调用该 APIClient - 使用 HTTPClient。

为此,我将其添加到 web.config 中:

我的假设是,如果我添加 SAML 令牌处理程序并将 SAML 断言添加到 HTTP Authorize 标头,WIF 将选择它并对请求进行身份验证。

我可以调用 STS 来获取 SAML 令牌,如 GetSamlToken 方法中所述:在此处输入链接描述

这给了我一个附加到 HTTPClient 标头的 SAML 断言:

其中AuthenticationHeader是我从服务器收到的 SAML 断言。问题是 web api 对 samle 断言没有做任何事情 - 好像它甚至没有看到它,我得到的所有响应都是重定向到 STS。

我究竟做错了什么?如何在无需切换到 JWT 等的情况下从其他代码验证和调用受保护的 Web api 方法?

在此先感谢您的帮助!

- 更新

正如@Brock 建议的那样,我已将以下内容添加到我的 WebApiConfig.cs 中:

但是我仍然收到 302 响应。这就是我提出请求的方式:

0 投票
1 回答
834 浏览

http-headers - 将其值设置为加密 SAML 2 令牌时,授权标头为空

我正在使用 Thinktechture Identity Server 使用 WS-Trust 协议发布我的 SAML 安全令牌。然后我使用包含令牌的 Authorization http 标头调用我的 WEB Api。使用 Thinktechture.IdentityModel 成功处理了令牌。

但是当我使用证书加密发送的令牌时(通过在 IDP RP 管理页面中选择加密证书),IdentityModel 收到的请求将其授权标头设置为 null(实际上加密值存在于“InvalidHeaders”数组中请求对象)。

使用提琴手,我将标头值替换为未加密的标头值,并且回复请求有效。所以这绝对是这个标头值中的东西。

这是确实通过的标头值:

这是加密时不通过的标头值:

任何想法为什么授权头不通过?

0 投票
2 回答
6842 浏览

single-sign-on - 是否有任何知名 thinktecture 的身份服务器替代品?

除了thinktecture的身份服务器之外,有人知道任何其他身份服务器吗?我需要评估一些,但我找不到了?

0 投票
0 回答
510 浏览

asp.net-mvc-3 - 无法将 Thread.CurrentPrincipal 转换为 IClaimsPrincipal

我正在尝试在我的本地机器上运行Thinktecture IdentityServer v1 。问题是这条线

总是返回null

Thread.CurrentPrincipal不为空,并且经常描述这种类型的转换,例如在IClaimsPrincipal MSDN 页面中。

我没有修改身份服务器的代码,所以我在这里缺少什么?

0 投票
1 回答
165 浏览

iis-7.5 - 在 IIS 7.5 中设置多个网站应用程序池以使用不同的签名证书

我在 IIS 中设置了三个(开发、测试和生产)Thinktecture IdentityServer (IdSrv)。我将这些用作 ADFS 2.0 的 IdP。我让它在一个 IdSrv 上正常工作,但我在添加另外两个时遇到了困难。问题是 ADFS 希望每个 IdSrv 使用不同的签名证书,但我似乎无法做到这一点。我已经制作了三个自签名证书并使用 MMC>Manage Private Keys 我已将每个 IDSrv 应用程序池的权限分配给每个证书。但是,当我尝试转到元数据页面时,我收到“密钥集不存在”错误。似乎只分配了一个证书,其他证书被忽略。我尝试为每个 IdSrv 分配不同的 IP 地址,但这没有帮助。

有人做过吗?这可能吗?还是每个 IdSrv 都需要在自己的服务器上?我真的不喜欢这个解决方案,原因有很多。

任何帮助将不胜感激!!