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

identityserver3 - IdentityServer4 缺少版本 3 中已知的属性

我正在尝试设置 IdentityServer 4 (1.0.0-rc2) 服务器。我已经按照文档 ( http://identityserver4.readthedocs.io/ ) 中的说明进行操作,但它似乎缺少一些我在 IdentityServer3 中熟悉的功能。

我发现了这篇关于 IdentityServer4 的文章 ( http://elemarjr.com/en/2016/04/18/learning-identityserver4-part-1-securing-an-webapi/ ),但是文章中展示了一些东西在最新版本中似乎不可用(我猜那篇文章是针对旧版本编写的)。

我发现为了设置证书,而不是在 IdentityServerOptions 对象中设置它,我需要直接在 builder 对象上设置它。所以不要这样做:

我现在这样做:

  1. 我似乎找不到的是如何定义RequireSsl属性。
  2. 如何设置IdentityServerFactory设置?

有没有一个地方包含更多关于 IdentityServer4 的文档?

0 投票
0 回答
352 浏览

asp.net-identity - 使用测试数据初始化数据库时,“ClaimsIdentity.BootstrapContext”无法映射错误

我正在尝试使用 IdentityServer4 设置授权服务器。当我尝试运行一段代码来生成测试数据时,出现以下错误。下面是代码

错误是在什么时候产生的

被执行。

下面是生成的错误

Source=Microsoft.EntityFrameworkCore StackTrace:在 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.ConventionDispatcher.OnModelBuilt(InternalModelBuilder modelBuilder) 在 Microsoft.EntityFrameworkCore.Infrastructure 的 Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal.PropertyMappingValidationConvention.Apply(InternalModelBuilder modelBuilder)。 System.Collections.Concurrent.ConcurrentDictionary 中的 ModelSource.CreateModel(DbContext 上下文,IConventionSetBuilder 约定SetBuilder,IModelValidator 验证器)2.GetOrAdd(TKey key, Func2 valueFactory) 在 Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel() 在 Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value() 在 Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider) 在 Microsoft.Extensions。 DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) 在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) 在 Microsoft.EntityFrameworkCore.DbContext.get_Model() 在 Microsoft.EntityFrameworkCore.DbContext.SetTEntity 在 ReportBook。 C:\Users\Julius\Documents\Projects\School\Development\ReportBook\ReportBook.Auth\Startup 中的 Auth.Startup.InitializeDbTestData(IApplicationBuilder 应用程序)。c:\Users\Julius\Documents\Projects\School\Development\ReportBook\ReportBook.Auth\Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 的 c:line 166:line 233内部异常:

以下是我的启动课

我将不胜感激

0 投票
1 回答
1052 浏览

asp.net-core - IdentityServer4 密码授予

我已经建立了一个 identityserver4 实例、一个 API 项目和一个 UI。

工作流程如下:

  1. 用户访问 UI。
  2. 用户向 UI 提供用户名和密码。
  3. UI 将凭据发送到 Web 应用程序的背面,该应用程序使用密码授权来使用 IdentityServer4 对用户进行身份验证。
  4. IdentityServer4 返回一个令牌。
  5. 令牌用于识别用户对 UI 的身份以及用户有权访问网站的某些部分。
  6. 当用户需要在站点内做某事时,令牌会通过不记名身份验证传递给 API。

密码授予不可协商,因为这是第一方应用程序,将用户重定向到主站点是没有意义的。

用于此的正确中间件集是什么?我应该只使用 CookieAuthenticationMiddleware 并将令牌作为声明附加吗?我需要从 HttpContext.User 声明中访问声明。我需要使用 IdentityMiddleware 吗?

0 投票
1 回答
2106 浏览

https - 将 https 与 IdentityServer4 快速入门一起使用会挂起

我正在尝试学习 IdentityServer4,所以我从这里的文档开始https://identityserver4.readthedocs.io/en/dev/quickstarts/0_overview.html并以这个https://identityserver4.readthedocs.io/en/dev/结束快速入门/1_client_credentials.html

只要我使用http,一切都很好,但是一旦我切换到使用https,客户端测试器中的第一行代码

挂起并最终获得任务取消异常。

如果我只是将所有内容切换回 http,它就会重新开始工作。

在实际的 IdentityServer 解决方案中,我在 launchSettings.json 中更改了 applicationUrl 和 launchUrl:

和 Program.cs 中的 .UseUrls

在客户端解决方案中,如上所述,我将调用发现端点的代码更改为使用 https 而不是 http

需要明确的是,只需将所有注释的项目从 http 和 https 更改为 http,但不适用于 https。我的两次测试之间没有其他变化。

有什么我遗漏的东西导致 https 无法工作吗?

0 投票
1 回答
643 浏览

asp.net-mvc - 将自定义 SQL Server 数据库与 Identity Server 4 一起使用

我有一个要求,我有一个客户端应用程序,即(MVC 应用程序)和 Identity Server 4 应用程序,我需要从 MVC 应用程序对用户进行身份验证。

现在我可以使用 Identity Server 4 对 In Memory 静态用户和 AspNetIdentity 用户进行身份验证。

但是如何使用我的自定义数据库和 Identity Server 4 来验证用户。

例如,我有一个包含以下列的表格:

我想使用 Identity Server 4 对该表中的用户进行身份验证。请帮我解决这个问题。

谢谢,纳文

0 投票
1 回答
3589 浏览

c# - 使用 IdentityServerAuthentication IdentityServer4 进行集成测试

就像这个问题“与内存中的 IdentityServer 进行集成测试”一样,我想对我的 IdentityServer4 实现进行一些集成测试。

我已经按照本教程IDENTITYSERVER4、WEB API 和 ANGULAR2 在一个 ASP.NET 核心项目中添加了一个 API,用于在与我的 IdentityServer4 相同的项目中管理用户。

但是集成测试失败了,因为 IdentityServer 尝试使用 HTTP 请求调用 discoveryEndpoint。

所以在这个问题“ Integration testing with in-memory IdentityServer ”中,@emedbo 创建了一个 FakeAccessTokenValidation,但我不知道该怎么做。

谢谢。

0 投票
2 回答
2048 浏览

asp.net-core - IdentityServer v4 的 ASP.NET Core 客户端中的通知

在 IdentityServer 3 中,我使用SecurityTokenValidatedNotifications 上的事件来建立我自己的带有名称和声明的身份。例如,我access_token使用这样的资源所有者工作流程存储以供以后访问 n API:

在 ASP.NET Core 的 IdentityServer 4 中,不是 Notifications 属性。我可以看到自动生成了很多声明,但我没有得到,access_token也没有自动设置身份的用户名

我当前在 ASP.NET Core 中的客户端配置如下所示

IdentityServer 4 中的预期方式是什么?

0 投票
1 回答
6640 浏览

asp.net-web-api - 如何使用 IdentityServer4 访问我当前的用户?

我正在尝试构建一个 SPA Web 应用程序 + IdentityServer4 + ASPNET Core + ASPNET Core Identity。我已经按照 Identityserver 文档的快速入门进行了操作,它真的很棒。我对快速入门Identity Server Quickstart with JS Client更感兴趣

我一直跟着它,到目前为止一切都很好。现在我向我的用户添加了一些字段和相关表,如下所示:

app_user

这是解决方案资源管理器

解决方案探索者

我想创建一个显示我的用户及其相关表/字段的页面。(基本上,我的问题是,我如何访问我当前的用户并公开一个 API 供我的 JS 客户端使用)

我该如何做到这一点?(以下所有描述点我只是在网上阅读,我不知道如何实现它)

  • 我应该将我的用户存储在会话中吗?然后从那里访问它?
  • 我应该使用 connect/userinfo 端点吗?

请指教。

0 投票
2 回答
1633 浏览

asp.net-identity - AspNet Identity 如何生成用户声明

我有一个使用 Typescript 实现的单页应用程序的场景,该应用程序使用 oidc-client 从使用 IdentityServer4 的 AspNet Core 应用程序获取 id_token 和 access_token。

在身份服务器上,我还将身份与 EntityFramework 一起使用,以便我可以检索用户及其个人资料以生成声明等。

我面临一个奇怪的情况,例如,我正在为FirstName用户更新,它在数据库中得到正确更新,但是在生成用户级别声明(given_name、、和)时family_name,given_name 没有用新名称更新,因此发出的 id_token 不会包含声明中的更新信息。nameemail

我有这样的事情:

为什么await _userManager.GetClaimsAsync(user);忽略用户的更新信息?从哪里获取旧信息? 我已经重新启动了应用程序,删除了浏览器 cookie,以防它存储在身份服务器为单点登录目的而发出的 cookie 中。但我仍然不知道旧信息的缓存位置。

更新 1:这是用户模型。

更新 2:有一个明显的解决方法,即手动添加来自用户属性的声明,而不是依赖于身份的 UserManager。但问题仍然存在,为什么 userManager 不检索数据库中的更新值?它在哪里找到检索到的旧值?

0 投票
3 回答
2136 浏览

asp.net - 使用 IdentityServer 的 AspCore 客户端全局注销

在非核心 asp mvc 应用程序中,我有一个控制器操作用于注销用户全局

看起来像这样

现在我有一个 asp 核心客户端,想要注销我试过

更新

现在好像我注销了,但我被重定向到需要身份验证的站点。我可以看到我很快又被重定向到身份服务器,它会自动再次向我唱歌。

总结:我在我的 asp 应用程序中登出,但没有在身份服务器上登出。

我怎样才能全局注销?所以我需要在身份服务器上登录?