问题标签 [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 投票
0 回答
109 浏览

.net-4.5 - 如何在 WIF STS 中使用 SHA256 签署安全令牌?

我正在使用 Thinktecture STS 并想使用 SHA256 而不是 SHA1 对已发行的令牌进行签名?我尝试使用以下方法将算法添加到应用程序:

但它开始给出错误:

指定的算法无效

知道我使用的证书与 SHA256 兼容。任何想法?

0 投票
1 回答
4600 浏览

c# - IdentityServer3 通过用户名和密码发布请求获取用户令牌

我发现本教程通过用户名和密码从身份服务器进行身份验证和获取令牌:

http://leastprivilege.com/2013/11/13/embedding-a-simple-usernamepassword-authorization-server-in-web-api-v2/

https://identityserver.github.io/Documentation/docs/overview/simplestOAuth.html

https://github.com/IdentityModel/Thinktecture.IdentityModel/tree/e6cf193dbffbe1dc3a15848106807983ec503c22/samples/OAuth2/EmbeddedResourceOwnerFlow

到处都写着 url 就像:

我的问题是我是否也需要像示例中那样,EmbeddedAuthorizationServer或者我可以直接调用 SSO 服务器?

我想将用户名和密码发布到 SSO 服务器并返回令牌。是否可以?

0 投票
0 回答
378 浏览

asp.net-mvc - 使用 Windows 身份验证的声明转换 ClaimsAuthenticationManager

我正在寻找编写一个使用 Windows 身份验证的 MVC5 应用程序。

根据样板代码,@User.Identity.Name声明会自动填充。

我想用我自己的逻辑转换传入的声明并丰富它们,以便为用户分配角色:

Thinktecture 身份模型库是否支持将上述自定义 AuthenticationManager 连接到 MVC5 管道的方法?

0 投票
1 回答
246 浏览

thinktecture-ident-server - Thinktecture Id.Srv 的服务器会话(IsReference 模式)。3

与参考。到 brockallen.com/2013/02/21/server-side-session-token-caching-in-wif-and-thinktecture-identitymodel

我想对Id.Srv 使用服务器端会话。3并使用Redis 缓存作为会话存储创建了ITokenCacheRepository的实现。

除了实现之外,我还在 Id.Srv的Global.asax中添加了以下代码。项目:

其中 SessionManagerCache 是 ITokenCacheRepository 实现,而 sessionManager 是其中使用的 Redis 缓存。

我在 web.Config 中也有这些configSections -

还有system.identityModel部分 -

其中 AuthorizationManager 是ClaimsAuthorizationManager派生。

运行时,从 CacheSessionsOnServer() 中抛出此异常 -

throw new ArgumentException("SessionAuthenticationModule is null");

我检查了 Init() 中 FederatedAuthentication.SessionAuthenticationModule 的值,它始终为空。

这条评论说 Id.Srv。使用 SAM 跟踪用户登录会话 -

https://github.com/IdentityModel/Thinktecture.IdentityModel.45/issues/118#issuecomment-24202385

但是,在检查 Id.Srv。代码,这适用于 Id.Srv。2.

在 Id.Srv. 3、cookie认证。似乎已被使用 - https://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Configuration/AppBuilderExtensions/ConfigureCookieAuthenticationExtension.cs#L49

在 CookieAuthenticationOptions 上,有一个选项可以设置 SessionStore 以使用自定义会话存储。但是似乎没有为 Id.Srv 设置 SessionStore 的选项。因为这些是正在创建的局部变量。

任何人都可以建议,如何解决上述错误。我错过了一些明显的东西吗?

Thinktecture.IdentityModel 能否用于与 Id.Srv 的服务器会话。3? 如果没有,使用 Id.Srv 为登录会话实现服务器会话(IsReference 模式)的替代方法是什么。3?

任何帮助将非常感激。

0 投票
0 回答
73 浏览

single-sign-on - 在 MVC 应用程序中单击登录页面时被动重定向到 WS-Fedration 站点

我有一个使用 thinktecture 进行单点登录的应用程序。我已经在 web.config 文件中配置了被动重定向。

我希望首先加载我的主页,然后单击登录/登录按钮需要进行被动重定向、身份验证和重定向到我的主页。

需要帮助来实现它

0 投票
0 回答
568 浏览

c# - 如何从 Thinktecture.IdentityModel ResourceAuthorizationManager 和 Web Api 2 更改 ResourceAuthorizationContext?

我正在创建一个 Web Api 2 应用程序Thinktecture.IdentityModel.Owin.ResourceAuthorization,我正在查看源代码,我意识到我想更改我的可用属性ResourceAuthorizationContext,我想创建一个自定义Context并将其用于与ResourceAuthorization. 这样我就可以添加自定义属性以供我的CheckAccessAsync方法使用。

我的目标是拥有这样的东西:

所以我可以像这样使用 CustomAttribute:

我想不出一种方法来自定义Context, 就像我ResourceAuthorizationManager在启动时对 , 所做的那样。
问题似乎出在这些扩展方法上,它们直接引用了ResourceAuthorizationContext类。

我错过了什么或者你真的不能这样做吗?

0 投票
2 回答
6163 浏览

c# - System.Web.Mvc 5.2.2.0 与 aspnet_compiler 的 5.2.3.0 版本控制问题

在 Visual Studio 中打开视图编译时遇到问题。我有一个相当标准的 ASP.NET MVC 5 应用程序,有很多参考资料。我参考 System.Web.Mvc 5.2.3.0(截至目前最新),但编译似乎与 v. 5.2.2.0 和 5.2.3.0 有问题。优秀的工具 AsmSpy ( https://github.com/mikehadlow/AsmSpy ) 告诉我哪些程序集引用了哪个版本的 System.Web.Mvc:

所以,有罪的是 Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc。但是,我已将程序集绑定重定向添加到应用程序的根 web.config,如下所示:

为了试图找出问题的根源,我打开了诊断构建日志记录,它会吐出 260,000 行日志以北,包括:

但是,当我使用 aspnet_compiler.exe 编译视图时,它仍然会抱怨。而且无论我将程序集绑定重定向放在哪里(应用程序的根 Web.config,Web.config 在 Views 文件夹中),aspnet_compiler.exe 都不想尊重它。而且,似乎不可能让 aspnet_compiler.exe 输出关于它实际在做什么的任何内容(没有日志详细级别设置......)

我在编译视图时得到的只是很多关于 System.Web.Mvc 版本 5.2.2.0 和 5.2.3.0 版本的警告:

有没有人有关于在哪里继续故障排除的线索?我当然可以忽略 CS1702 警告,但我觉得这就像半闭着眼睛开车一样。任何帮助表示赞赏。

0 投票
0 回答
165 浏览

wif - 具有对称签名密钥的 STS 方案用于依赖方

请帮助我理解以下场景:

Web 应用程序正在从 STS 请求令牌。STS 是 Thinktecture Identity server v2。STS 配置如下:

常规配置

只有一个依赖方

webapplication 和 STS 都通过安装所需的证书建立了信任关系。

Web 应用程序使用 WS-Trust 协议使用以下代码请求令牌:

应用程序 web.config 如下所示:

我阅读了 WIF 概念,但我仍在努力理解流程。我是否正确理解以下内容:

  1. 令牌请求适用于 https。
  2. 通过安装适当的证书,在令牌请求者(Web 应用程序)和 STS 之间建立信任。
  3. Web 应用程序通过 WS-Trust 协议请求令牌,包括用户名/密码、依赖方、keytype= Bearer 和 tokentype=JSonwebtoken 的详细信息。
  4. STS 验证用户凭据并创建和发送 JWT 令牌。使用在 STS 中为上述依赖方配置的对称密钥对令牌进行签名。声明未加密。
  5. 收到令牌后,Web 应用程序通过验证令牌来自同一 STS 来验证令牌,并使用相同的对称密钥解密令牌。

上面的理解似乎正确吗?我在这里遗漏了什么或有什么不对吗?

还有一个问题是如何生成对称密钥?

0 投票
0 回答
212 浏览

asp.net-web-api2 - 获取 Web API 的令牌

曾几何时,我曾经 install Thinktecture.IdentityModel,使用基本身份验证调用它以获取令牌,然后将其传递给 ajax 调用的标头到 Web API。

我只是试图这样做,它呕吐了。

上潜望镜!

未找到方法:与 ctor 签名不匹配(Fiddler 欢呼)。

与它工作的项目进行比较表明,所需的签名存在于版本 2.0.0.0 中,System.IdentityModel.Tokens.Jwt但不再存在于版本 4.0.20622.1351 中

快,罗宾——去宾极!

有一个关于这个主题的 github 支持查询,在我们发现的评论中

最少特权于 1 月 27 日发表评论

AuthenticationHandler 不再是 Web API v2 的推荐方法,因为现在所有内容都是内置的 - 改为使用中间件。

不问问题,蚱蜢

这是一个确定的意见。他是图书馆的作者之一。对于任何需要提出问题的人来说,这也毫无帮助。

有人可以向我指出适当的介绍和教程链接,这样我就可以加入那些明智地点头并惊叹于这条评论禅宗般简洁的行列?

我正在使用 AuthenticationHandler 验证包含用户名和密码的 SQL Server 表。纯粹主义者请不要教我,有无数的企业不使用或不会使用第三方 OAUTH。我需要将用户名/密码对转换为可以在我的 Web API 方法上使用的会话令牌。就这样。我碰巧同意 OAUTH,但为此付费的人对统一身份验证不感兴趣,他们喜欢孤岛。

补充资料

我找到了一个关于整个身份验证的可公开访问的 PluralSight 课程。它是由编写 ThinkTecture.AuthenticationHandler 的人编写的,它作为最近变化的背景资料非常好。

在学习材料的过程中,他参考了另一个关于 MVC 的 PluralSight 课程,其中包含有关 OWIN(纯 API,即接口)和Katana(Microsoft 的 OWIN 实现)的更多信息。

在这一点上,我很清楚

  • 出于各种充分的理由,发生了根本的架构变化。
  • AMessageHandler不是进行身份验证的地方。
  • 有一个名为 Thinktecture.IdentityModel.Owin.BasicAuthentication 的 NuGet 包,它被描述为 OWIN/Katana 应用程序中用于 HTTP 基本身份验证的 OWIN 中间件。

我对新形势的仍然模糊的理解表明,中间件包是我所需要的。NuGet 做到了,现在我必须提供一些代码来将中间件插入到 OWIN 中间件链中,并提供更多代码来实际验证凭据。据我所知,我需要在 Startup.Auth.cs 中执行此操作

假设到目前为止我已经做对了,我该如何使用它?我是否继续用 来装饰 Web API 方法[Authorize]

成功!几乎。

目前,来自我的测试客户端的请求导致我在线上设置的断点命中if (id == secret)并且条件得到满足,因为 id 和 secret 包含我的测试代码发送的值。Claims 对象是按照上面的代码创建并适当返回的,但是测试客户端收到 401 Unauthorized。

这几乎可以肯定是由于未能创建主体对象。UserManager 和 IdentityModel 有一些业务,可以自定义它以使用我们自己的模式。

0 投票
0 回答
207 浏览

thinktecture-ident-server - Identity Manager 引发未经授权的 401

我为我的 Identity Manager 使用以下配置,每次我传递我的访问令牌时 - 它都会抛出 401 (Unauthorized) app.Map("/admin", adminApp => {

我作为授权持有者传递的访问令牌看起来像

是我做的不对吗?