问题标签 [identityserver3]

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 回答
1768 浏览

c# - 通过 UseOpenIdConnectAuthentication 登录时 loginInfo 始终为空

我尝试扩展标准 MVC Auth 示例(http://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and- openid-sign-on)使用 OpenID Connect 身份验证到 Thinktecture IdentityServer 的实例(https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Simplest%20OAuth2%20Walkthrough)。

我将“openid”范围添加到 IdentityServer 的范围中。我使用https://github.com/IdentityServer/IdentityServer3.Samples/blob/master/source/MVC%20Authentication/EmbeddedMvc ​​/Startup.cs 中的示例代码将额外调用添加到 userinfo 端点。

UseCookieAuthentication根据 MVC Auth 示例,身份验证中间件链中较高的部分是UseExternalSignInCookie.

当我在 中放置断点时OpenIdConnectAuthenticationNotifications.SecurityTokenValidated,我可以看到所有声明都很好地进入了。因此与 IdentityServer 的通信是正确的。

但是当我AccountController.ExternalLoginCallback接到电话时

总是返回 null。

当我使用 Google OAuth2 登录时,它不为空。

我怀疑UseOpenIdConnectAuthentication设置(或不设置)Cookie 信息的方式与UseCookieAuthentication提取方式之间存在不匹配。但我不知道如何解决这个问题。

0 投票
1 回答
2871 浏览

identityserver3 - IdentityServer3 - UserInfo 端点获取无效令牌

我是 IdentityServer3 的新手,刚刚开始设置它。它似乎进展顺利,我一直在为 MVC 应用程序开发混合流程,类似于 Kevin Dockx 的 Pluralsight 课程 ( http://www.pluralsight.com/courses/building-securing-restful-api -aspdotnet)--我正在使用自定义用户服务。

从 MVC 应用程序到我的身份服务器的身份验证效果很好,但是当我调用 userinfo 端点时,我总是得到一个 Unauthorized,响应中的 Bearer 是“无效令牌”。

我正在传递从原始 OpenIdConnectAuthentication 调用返回的访问令牌,它在 JWT 调试器中解码为以下内容:

我还注意到响应内容带有“RunToCompletion”之类的内容。我已经从 Github 下载了源代码以查看调试的可能性,并怀疑它比我正在运行的 NuGet 包(1.6.2)更新。

我怀疑我做错了什么,但我还没有看到它。任何帮助,将不胜感激。

我已经包含了我认为相关的代码。

从 ID 服务器:

以下是来自 MVC 客户端应用程序的相关代码 - response.StatusCode 始终未授权,并带有以下“无效令牌”承载消息:

0 投票
1 回答
682 浏览

asp.net-mvc - 丢失身份验证详细信息 (ClaimsIdentity)

我有一个基于声明的身份验证的应用程序,最近我遇到了一个随机丢失身份验证的问题。应用程序通常从System.Security.Claims.ClaimsIdentity获取它的身份、声明信息,并且它可以很好地授权。由于某种原因,在单击不同的页面后,我失去了身份验证,它似乎正在查看System.Security.Claims.WindowsIdentity并且它以空异常退出,因为现在没有更多的授权信息。我也在使用 IdentityServerV3。我为缺乏具体的技术数据道歉,但想知道是否有人遇到过这个问题。没有具体的时间,因为我首先认为它可能会过期。它发生得非常随机。我已经包括了屏幕抓取:

这是我被授权的时候

这是我被授权的时候

这是 10 秒后

在此处输入图像描述

如果您需要任何进一步的信息,请告诉我并提前感谢!

0 投票
1 回答
312 浏览

identityserver3 - InMemoryUser.Subject 使用

我正在玩 IdentityServer3,但我找不到任何关于对象 Subject属性用途的文档。InMemoryUser

任何人都可以指出一些文档的正确方向或解释它是否是直截了当的?

0 投票
1 回答
6222 浏览

c# - 使用 owin 中间件和 IdentityServer v3 刷新令牌

我最近设置了 IdentityServer v3 并且它像梦一样运行,但是我在使用 OWIN 中间件时遇到了问题。

我想使用混合流,这样我就可以在后端刷新令牌,而用户不必每 5 分钟重定向回 IdentityServer 以获取一个新的访问令牌(这也很奇怪,因为它的生命周期设置为 1 小时在服务器上)。

我在启动时使用了以下配置,并且我得到了很好的令牌,但是一旦它过期,它似乎永远不会尝试刷新访问令牌。我是否需要一些自定义逻辑来刷新我的令牌?

我还在我的 ApiClient (RestSharp) 中使用以下内容,它与我的资源 api 对话

0 投票
1 回答
670 浏览

servicestack - 反序列化 System.Security.Claims.Claim 的问题

我正在实现一个 oAuth 服务器并且需要存储刷新令牌,为此我(目前)选择将令牌序列化为 JSON。

虽然我可以看到 JSON 包含重新水化所需的所有内容,但当我使用 token.FromJson() 反序列化时,嵌入的声明没有被正确重建。

到目前为止,我已经考虑从 JsonConverter 继承来创建声明转换器,但没有看到调整全局 JsConfig 以利用它的方法:(

任何人都可以为我指明一个好的方向吗?

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 投票
1 回答
7199 浏览

c# - 获取 IdentityServer3 以使用现有用户 sql 数据库

我正在尝试根据现有用户数据库对用户进行身份验证。我有一个带有用户表的现有数据库,我希望身份服务器查看该数据库并验证用户身份。

我找到了 MembershipReboot 和 AspNetIdenetity 的示例,但我对如何创建自己的用户数据库映射感到困惑。

我不想创建外部提供商,例如 Facebook

有没有人有任何想法或看过任何关于如何做到这一点的教程?

0 投票
3 回答
7385 浏览

identityserver3 - Constants.ClaimTypes 参考

我已经让 IdentityServer3 作为独立的身份服务器运行。

我有一个单独的 MVC 客户端,它使用 Cookie 和 OpenIdConnect 进行身份验证。我正在尝试设置声明转换等,并希望引用不同的声明类型,如下所示:

在 IdentityServer3Thinktecture.IdentityServer.Core.Constants上,我使用 MVC 客户端引用这些,但我认为我不需要Thinktecture.IdentityServer3仅为这些字符串常量引用?在这种情况下是否有推荐使用的客户端库?我已经尝试过Thinktecture.IdentityModel一些 .NET 引用,但似乎没有一个可以复制ClaimTypesin Thinktecture.IdentityServer.Core.Constants。我发现的最好的是System.Security.Claims.ClaimTypes,但这似乎有几个缺失,例如FamilyName.

我看的第一个位置是Thinktecture.IdentityModel但很惊讶这些不在那里。

那么魔术参考是什么?Thinktecture.IdentityServer3或者只为这些字符串加载是否合适?

谢谢

编辑:所以我发现Thinktecture.IdentityModel.Client其中包含一个JwtClaimTypes似乎镜像的ClaimTypes. 为什么用 Jwt 前缀命名呢?

0 投票
1 回答
3799 浏览

identityserver3 - 如何为 IdentityManager 和 IdentityServer 创建数据库?

我已经从 IdentityServer3 github repo 下载了示例并运行了 MembershipReboot 项目,我将连接字符串更改为指向一个真实的服务器,但我仍然看不到如何让它创建数据库,我认为这首先使用了 EF 代码做这个。我现在只是在试图了解如何使用 IdMgr 和 IdSvr 时感到迷茫。