问题标签 [thinktecture-ident-model]

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 投票
2 回答
7952 浏览

angularjs - AngularJs ASP.NET WebApi 身份验证与 Thinktecture

我正在尝试制作一个将登录名和密码发送到 ASP.NET WebApi 后端并使用 Thinktecture 登录该用户的 AngularJs 网络。

我让 Thinktecture 使用 WS-Federation 与其他项目 ASP.NET MVC 一起正常工作。现在我正在尝试做类似的事情,但改变了一些组件,但我无法让它工作。

如何从 ASP.NET WebApi 将用户名和密码发送到 Thinktecture 并对其进行验证?

谢谢!

0 投票
0 回答
78 浏览

c# - Thinktecture Basic Auth WebApi 在路由上禁用

我使用 Thinktecture 将基本身份验证连接到我的 WebApi。

有没有办法在单个路由上禁用此身份验证?试图公开暴露一个端点。

我仅限于 WebApi v1,以防答案有所不同。

0 投票
1 回答
1141 浏览

c# - 使用 Thinktecture 的 WebAPI 不处理来自活动客户端的标头中的 SAML 令牌

我创建了一个 ASP.NET WebAPI 项目,该项目使用基于声明的 WIF 身份验证。我还使用托管在本地 IIS 上的 Thinktecture Identity Server 作为 STS。浏览器一切正常;我被重定向到登录页面,并且可以在Thread.CurrentPrincipal.Identity我的一个 REST API 控制器中看到正确的身份。

我的问题是我无法弄清楚如何让活动客户端进行身份验证。我花了几个小时搜索和阅读,但无法让它发挥作用。这就像我的 WebAPI 甚至从不查看 HTTP 标头。我尝试创建自己的 IHttpModule 来拦截请求,并且可以在标头中看到我的 SAML 令牌。我在客户端中得到的响应是用户在使用浏览器时通常会被重定向到的登录页面。我也尝试了这个问题中提到的所有内容。

我的活跃客户如下所示:

我的 web.config 的相关部分如下所示:

我还在AuthenticationHandler我的 WebApiConfig.cs 中添加了这样的(基于以及我提到的其他 SO 问题):

在我看来,WSFederationAuthenticationModule 首先拦截请求,然后在 AuthenticationHandler 有机会查找标头中存在的 SAML 令牌之前重定向到 STS 登录。任何人都可以看到我的配置有什么问题或缺失吗?

0 投票
1 回答
1997 浏览

c# - JwtSecurityTokenHandler 的异常

我正在为我的 ASP.NET Web API 使用 Json Web Tokens ... 和 thinktectures 身份模型。

因此,在我的 web api Startup.cs 中,我调用了 IdentityModelJwtBearerAuthenticationExtensions 扩展方法,如下所示:

然后我用 AuthorizeAttribute 装饰我的 API 控制器。

好的,太好了!都好。

但是当令牌过期时......我得到的只是未经授权的401。

我想让 JwtSecurityTokenHandler 中的 SecurityTokenValidationException(“生命周期验证失败。令牌已过期”)冒泡并在 Web API 中可见。

我怎么做?

我环顾四周,看不到正确的方向。

它与 JwtBearerAuthenticationOptions 有关吗?

为任何智慧干杯。

0 投票
2 回答
714 浏览

.net - 是否可以使用 DI 容器解决我的 ClaimsAuthorizationManager

我已经让我的自定义 ClaimsAuthorizationManager 使用标准配置文件设置工作,但我想将业务层服务注入到我的实现中,但我无法弄清楚。

我尝试使用静态 FederatedAuthentication 类手动设置它,但没有任何乐趣。ClaimsAuthorizationModule始终为空。

我已经尝试了这个问题的答案,以尝试确保模块已加载......

FederatedAuthentication.WSFederationAuthenticationModule 在运行时为空

...但它们没有效果。我还想知道这些信息是否过时,因为我的应用程序中已经有来自 System.IdentityModel 程序集的同名模块。

我正在使用 Thinktecture IdentityModel,但我看不到任何地方可以解决我的问题。这个问题似乎暗示了它,但没有给我一个解决方案。https://github.com/thinktecture/Thinktecture.IdentityModel/issues/9

我已经解决了 null ClaimsAuthorizationModule 的问题,答案已过时,我需要使用 System.IdentityModel.Services 程序集中的声明身份验证模块。现在我可以注入 ClaimsAuthManager 但不会调用 CheckAccess。

0 投票
1 回答
512 浏览

thinktecture-ident-server - 带有声明的 OAuth2 授权服务器

我有一个 Web API 应用程序,我想保护它。我一直在阅读有关 ThinkTectures IdentityModel 和 IdentityServer 的授权(OAtuh2),我认为这就是我所需要的。

我只是不确定从哪里开始。有很多可用的解决方案,我不知道该使用什么。

我想我需要添加ThinkTecture.IndentityModel到我的 Web API 应用程序,对吗?

那我应该下载ThinkTecture.IdentityServer2吗?还是我也需要Thinktecture.AuthorizationServer?我在那里有点困惑。

最后,我希望我的 Web API 应用程序能够登录到返回属于该用户的声明的身份服务器。

谁能告诉我从哪里开始以及如何开始。我需要朝着正确的方向前进。

对于初学者,我已经添加ThinkTecture.IndentityModel到我的 WEB Api 应用程序中。我还需要做什么?

0 投票
0 回答
592 浏览

session-cookies - SessionAuthenticationModule “validFrom” 对 ThinkTecture 无效

我有一个 ASP.NET 网站,其中有两个 IDP 服务器运行 ThinkTecture 软件,使用 WS-FED 对用户进行身份验证。

当我使用 IDP 服务器 #1 登录时,我可以正常登录,IDP 将令牌发布到我的网站,并且我按预期获得了会话令牌,我可以完美地访问该网站。

当我登录到 IDP 服务器 #2 时,我可以正常登录,并且 IDP 将我重定向回我的网站,大概是使用它尝试转换为会话令牌的 SAML 令牌。不幸的是,此时,从我的网站上我看到了这个错误:

和堆栈跟踪:

一段时间后(大约 10 分钟)我开始看到这个错误:

我正在使用 ThinkTecture 人员建议的滑动会话代码:

并且当您刷新页面时,NotOnOrAfter 只会在几个小时内保持不变。

由于一台 IDP 服务器工作正常而另一台不能,我只能假设第二台 IDP 服务器上的配置在某种程度上有所不同。第二个 IDP 上的令牌生命周期设置为 10 小时。

所有 3 台服务器都有相同的时间。

我认为 SAML 断言是由 IDP 设置的,而不是 Web 服务器 (IIS)?

有任何想法吗?

0 投票
2 回答
683 浏览

thinktecture-ident-server - 用于针对嵌入式 STS 进行身份验证的示例 HTTPClient 代码

我们在本地使用嵌入式 STS 来测试我们的 ASP.Net Web 应用程序。我正在创建一个控制台应用程序来调用一些 WebAPI 方法并对我们的应用程序进行一些负载测试。我想使用一组具有特定权限的用户进行测试。对于我们的本地实例,这意味着针对 EmbeddedSTS 进行身份验证。

如何编写 HttpClient 来针对 EmbeddedSTS 进行身份验证以接收此令牌并针对我的 WebAPI 端点进行身份验证?

编辑:如果我在 HTTP 模式(不是 HTTPS)下运行应用程序时可以获得 SAML 令牌,则可以加分。

0 投票
1 回答
117 浏览

jwt - 为什么 OidcClient 不支持验证使用对称密钥/客户端密钥签名的 jwt

尽管 Thinktecture.IdentityServer 支持使用对称密钥签署 jwt,但 OidcClient 类不支持使用对称密钥验证令牌 - 它仅支持验证使用证书签署的令牌。这是故意的吗?使用客户端密钥签署 jwt 是否存在问题或任何限制?我在要求客户端应用程序拥有证书方面遇到了一些阻力,如果我可以在不影响安全性的情况下避免它,我想这样做。

0 投票
2 回答
2479 浏览

.net - 如何在与 Xamarin Android 兼容的 PCL 中解码 JWT

我有一个带有 PCL 程序集、Android 应用程序和 iOS 应用程序的 Xamarin.Forms 解决方案,我想在 PCL 中解码 JWT。

我不能使用Thinktecture.IdentityModel.Core 1.1.0System.IdentityModel.Tokens.Jwt 4.0.0JWT 1.3.2,因为它们都不能添加到以“ portable-net45+win+MonoAndroid10+ ”为目标的项目中单触10 '。

我能够从 NuGet 添加Jose JWT 1.7.0并验证它是否可以在单元测试中工作,但这会导致我在我的 Xamarin Android 项目中收到以下构建错误...

加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集“System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”。也许它在 Mono for Android 配置文件中不存在?

建议?