问题标签 [identityserver4]

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

identityserver4 - 使用内存中的 IdentityServer 进行集成测试

我有一个使用 IdentityServer4 进行令牌验证的 API。我想用内存中的 TestServer 对这个 API 进行单元测试。我想将 IdentityServer 托管在内存中的 TestServer 中。

我设法从 IdentityServer 创建了一个令牌。

这是我已经走了多远,但我收到错误“无法从 http://localhost:54100/.well-known/openid-configuration 获取配置”

Api 使用具有不同策略的 [Authorize] 属性。这就是我要测试的。

可以做到这一点,我做错了什么?我试图查看 IdentityServer4 的源代码,但没有遇到类似的集成测试场景。

在我的单元测试中:

0 投票
1 回答
1192 浏览

identityserver3 - 配置文件更新后,IdentityServer3 如何刷新用户声明?

我已经成功地将 IdentityServer3 与带有 OIDC JS 框架的 APP1 集成,能够登录、注销。事情很好。

我设法设置了 IdentityServer3 的用户配置文件页面部分,我可以从 APP1 导航以更新用户配置文件。效果很好。

用户配置文件更新(比如姓氏)后,我可以导航回 APP1,效果很好。

现在的问题是,应用程序端的 LastName 声明仍然很旧。我尝试调用 login (2) (client.createSigninRequest()) 仍然没有刷新 lastName 声明。

我尝试调试 IdentityServer3 服务器,当我调用登录 (2) 时,它没有命中

GetClaimsFromAccount()

方法。

这里有什么问题,说个人资料更新后如何刷新声明。您能否提出一些建议,如何克服这个问题,感谢您的帮助。

0 投票
2 回答
3435 浏览

asp.net-core - 使用 IdentityServer 4 和 WS-Federation

我意识到 .Net Core 不支持 WS-Federation。但是我真的很想使用 IdentityServer 4,我意识到它也不支持 WS-Federation。

但是,如果我有一个 ASP.Net Core 网站并且我的目标是完整的 .Net 框架,那么是否可以将 WS-Federation 与 IdentityServer 4 一起使用?是否有某种可以使用的界面?

就像如果我使用代码IdentityServer3.WsFederation来移植它以使用 IdentityServer4 会有多难?

0 投票
1 回答
222 浏览

oauth-2.0 - 在 OAuth2 访问令牌中为资源服务器添加特定信息的正确方法是什么?

我有一个场景,我的资源服务器 (RS) 可以连接到多个数据库并且它可以是多租户的。它有一个环境配置,我可以说:Env A 指向数据库 A,属于租户 A;env B指向数据库B,属于租户B;

我们的桌面应用程序将该信息存储在一个数据结构中,该数据结构在每次调用时发送到 RS,我们的 Web 应用程序将其存储在 ASP.NET 会话中。用户在登录时选择环境。

现在我们将 API 完全迁移到 REST 服务,并使用 IdentityServer4 使用 oAuth2 保护它们。

我需要将该环境值发送到 API,我认为这应该是访问令牌的一部分。

第一个问题是:这对吗?访问令牌可以包含这种信息吗?

第二个是:哪个是最好的 IdentityServer4 服务,我应该扩展它以将该值作为声明注入到访问令牌中,从而注入到 ClaimsPrincipal 中。

第三个是:有时我没有用户在登录时选择环境(例如客户端凭据授予)。在这种情况下,作为客户要求的正确对待环境是否正确?有没有办法让客户动态索赔?

对不起,很长的问题!

问候, 迪奥戈

0 投票
2 回答
169 浏览

android - 多个身份提供者登录 OAuth/Open ID

有一些移动应用程序,例如游戏,它们允许用户使用 Google、Facebook 或他们自己的服务器进行注册和登录。使用第三方提供商登录后,他们似乎能够将游戏进度等用户信息存储到他们的服务器,这意味着他们可以将第三方帐户关联到他们的用户资料数据库。人们通常如何做到这一点?

我使用身份服务器作为我的主要身份提供者。它使用 ASP.NET Identity 来管理用户。我有一个 android 应用程序,它使用资源所有者授权从身份服务器获取授权令牌。新用户可以通过访问托管身份服务器的站点来注册新帐户。

现在我想在我的 Android 应用程序中添加一个通过 Google 或 Facebook 登录的按钮。当用户通过 Google 或 Facebook 登录时,应检索用户信息,然后 Android 应用程序中的注册表将显示,其中包含根据第三方提供商提供的用户信息自动填写的字段。然后,用户可以使用该详细信息进行注册,并使用 Google 或 Facebook 帐户的标识符将用户保存到身份服务器。就像 asp.net 身份站点一样,但它是针对移动设备的。

0 投票
2 回答
1534 浏览

c# - Azure Web 应用偶尔抛出 CryptographicException:密钥集不存在

我有一个Identity Server托管在 Azure 上的 Web 应用程序。它的根目录中有一个.pfx文件用于签名。问题是,当新发布时它工作得很好,但过了一段时间它开始抛出CryptographicException: Keyset does not exist.

基于CryptographicException KeySet 不存在,我认为这是一个文件访问问题,但为什么突然天蓝色会弄乱文件访问。

0 投票
1 回答
398 浏览

asp.net - 可以在 identityserver3 中按范围授权 API 吗?

我是 Identityserver 的新手,据我所知,范围是客户端想要访问的资源的标识符,我想知道我是否可以按范围授权我的 API?例如:对于 CRUD 员工和学生,我有 2 个 API“员工”和“学生”,客户端需要 API 员工的范围“员工”并获取访问令牌 => 客户端将能够使用 API 员工,但如果出现以下情况将被 Identityserver 拒绝使用 API “Student”,因为没有请求范围 “student” 我该怎么做 IdentityServer ?谢谢

0 投票
1 回答
5340 浏览

asp.net - Multiple Authentication Middlewares ASP.NET Core

I am relatively new to the concept of middlewares. I am aware that a middleware calls the next middleware when it completes.

I am trying to authenticate a request using either Google or my Identity Server. The user can login on my mobile app with google or a local account. However, I can't figure out how to use both authentication middlewares. If I pass the id_token for google, it passes on the first middleware (UseJwtBearerAuthentication) but fails on the second one (UseIdentityServerAuthentication). How can I make it so that it doesn't throw error when it actually passes on at least 1 authentication middleware? For example, if it passes on the first middleware, the second middleware is ignored?

0 投票
1 回答
1349 浏览

oauth-2.0 - IdentityServer4 + Web Api + Spa 在一个项目中

我很难尝试构建一个所有这些东西都可以很好地结合在一起的单个项目。

  • 温泉
    • 静态文件
  • Web API (MVC)
    • 大摇大摆 (Swashbuckle)
  • 身份服务器4
    • IdentityServer4.AspNetIdentity
    • IdentityServer4.EntityFramework
    • 社交登录

我从 IdentityServer4.Samples\Quickstart6_AspNetIdentity 代码开始,在 nuget 之后集成了 nuget。

我正在努力隔离 Web API 部分,以使承载 AuthenticationScheme 是 /api 管道中唯一有效的身份验证。

现在所有添加的 AuthenticationSchemes,如 Cookie、Google、Twitter、OIDC、Bearer 都用于 /api 路由。

我想念什么?为什么 /api 不仅使用 UseIdentityServerAuthentication 又名不记名令牌方案?

更新:我在这里分享了概念代码的工作证明https://github.com/ChrisRichner/CoreWebApp.Quickstart

0 投票
2 回答
15088 浏览

c# - 身份服务器 4 故障排除

我正在使用 Identity Server 4 进行身份验证。我有 MVC 客户端。几天前,我能够成功进行身份验证。但是最近我在 Identity Server 项目中做了一些改变,这破坏了一些东西。我正进入(状态

未经授权的客户端客户端应用程序未知或未经授权。

我尝试了所有可能的修复,但无法修复它。有什么办法可以调试代码。我可以看到呼叫是对/connect/authorize端点进行的,并且呼叫将要进行IScopeStore.FindScopesAsyncIClientStore.FindClientByIdAsync并且我验证它一切正常AllowedScopes

谁能告诉我如何解决 Identity Server 4 的此类问题。另外,我很想知道执行流程。调用哪些 IDSvr 端点以及何时调用?