问题标签 [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.
asp.net-core - 将用户从多个 IdentityServer 客户端中注销
我们有一个使用 IdentityServer4 的项目
https://github.com/IdentityServer/IdentityServer4
我们有 3 个域auth
:admin
和www
IdentityServer 运行,auth
另外两个是“客户端”。
www
使用混合流(cookies)admin
使用隐式流(它是一个 SPA,使用 oidc-client)
我们有一个登录页面托管在auth
. 当用户登录时,他们会被带到www
. 一些用户被允许访问admin
,他们将在导航中看到一个链接。
登录后,当您访问管理员时,您可以看到身份验证自动发生并返回到回调 URL。这一切都很好。
但是,如果我从 注销,admin
我仍然可以访问www
,反之亦然。理想情况下,我们希望注销以将用户同时从两个客户端中注销。
这可能吗?
注意:我是这个项目的前端开发人员,所以实际实现它的人可能会在下面的评论中提供更多详细信息。
asp.net-core - 浏览器客户端需要登录每个新会话
我正在将基于 idsrv3 的 MVC 应用程序移植到 aspnet-core 和 idsrv4。
与 idsrv3 不同,每当启动新的浏览器会话时,都需要新的登录。我还在原始 github-samples idsrv3-aspnet5 和 idsrv4-MVC 和 API 中验证了这种改变的行为。
在日志文件中,我看到 idsrv4 始终将新会话的授权请求处理为未经身份验证,并将我引导至登录。在 idsrv3 中,当用户已知时,请求处理程序立即发回授权表单。
为什么 idsrv4 表现不同?
asp.net - 未在配置文件服务上调用 IdentityServer IsActiveAsync 方法
我正在使用 IdentityServer v4 来处理我的 ASP.NET 应用程序的授权,使用资源所有者流。
我已经实现了IdentityServer4.Core.Services.IProfileService
具有两种方法的接口,GetProfileDataAsync
并且IsActiveAsync
.
向令牌端点发出请求时,GetProfileDataAsync
会按预期调用。我们使用这种方法来发出我们的索赔。
但是,该IsActiveAsync
方法不会被调用。我想实现这个方法来确定用户是否在我们的数据库中处于活动状态。这个方法应该在什么时候被调用?
IdentityServer 源中的注释(见下文)表明它应该在令牌颁发期间被调用,但在请求令牌时不会调用该方法。我怀疑我错过了什么。任何帮助,将不胜感激。
asp.net-mvc - 每个租户的 Identityserver identitydbContext
我正在考虑使用多租户的身份服务器和 asp.net 身份。这个想法是每个租户都将拥有自己的数据库或包含用户详细信息的共享数据库。
在决定应针对哪个数据库身份服务器进行身份验证时。我通过了租户 acr_value,它允许登录屏幕显示正在登录的租户,并且我创建了自己的中间件,该中间件注入到我的 dbcontext 的构造函数中
问题是当身份服务器重定向到连接/令牌或用户信息时 - 不再有任何东西可以识别客户端,没有 redirect_uri 或租户,这意味着我无法生成我需要的连接字符串。
我想的可能吗?
asp.net-core - ASP.NET Core IdentityServer4 和 Windows 身份验证
我意识到这都是最前沿的东西,但我很好奇是否有人有关于这个主题的一些好的资源。
在当前状态下(或即将到来),IdentityServer4 可以与 ASP.NET Core API 和使用 Windows 身份验证的 SPA 应用程序结合使用吗?
c# - 带有 EF6 的 IdentityServer4
我已经IdentityServer4
基于this实现了基本的 Web API 保护。
该演示基于内存中的数据。而且大多数教程都是基于用户数据的 EF Core 实现。当我搜索时,版本 4IUserService
中IdentityServer3
现在缺少一个。
如何从 EF6 存储中检索我的用户数据?
oauth-2.0 - 资源所有者授予流程的身份服务器用例
这个问题更像是一个架构问题。我想知道以下设置是否有意义。
- 客户端:用户浏览器
- Web 服务器:为 Web 应用程序提供 Web API 的服务器。
- 身份服务器
当 Client 向 Web server 发送登录请求时,Web server 接收到该请求并通过 Resource Owner Grant 类型将其发送到 Identity server 以获得访问令牌。
当客户端发送资源请求时,它使用上一步中的访问令牌访问 Web 服务器,并且 Web 服务器每次在提供资源之前都需要与 Identity Server 验证请求。
但是,我认为这种架构可能存在一些问题,例如
即使在 SSL 连接下,Web 服务器也无法确定 Client 是否是信任客户端。客户端始终可以获取访问令牌并向 Web 服务器发送请求。但是,我觉得这个问题也存在于其他授权类型中。我认为只要用户不能更改授权范围或其他人拦截令牌(在 SSL 连接下),应该没问题。
任何想法 ?谢谢 !
asp.net-mvc-5 - IdentityServer 4 连接 MVC5 作为客户端
我应该如何配置 MVC 5 以连接到 IdentityServer4 是否有任何示例?似乎无法让它工作。
问候,约翰
openid-connect - 检查会话 iframe OpenIDConnect
我有一个没有明确要求您登录的 RP。但是,我查看了 Open ID Connect 的会话管理规范,更具体地说是此处check_session_iframe
起草的端点规范
我想知道以下情况是否可能。我有一个使用客户端 x 联合登录到我的 OP 的 RP。即使您没有会话 ID(或sid
),我是否有可能查看客户端(x)是否已登录到 OP。换句话说,应用程序是否可以查看您是否与 OP 进行了会话,这样您就不会被迫针对 OP 提示登录。
出于用户体验的原因,我想要满足的一个基本流程是
1)去RP。
2)检查RP是否与OP有会话。
3) - 如果有会话则自动登录(不启动流程)
- 如果没有会话,则不做任何事情(即无需提示登录)。
这样的事情可能吗?session_state
我确实了解,如果您之前已登录(通过使用给定的and client_id
),则可以获得会话信息
我查看了IdentityServer3.Samples,更具体地说是显示如何在此处检查会话状态的客户端示例,但是似乎此示例显示了如何在登录后检查会话状态。我想知道它是否即使在 RP 明确请求登录之前,也可以检查客户端当前是否有会话。
c# - IdentityServer4 中的授权过滤器禁止承载
在使用AspNetAuthorization教程测试IdentityServer4时,我添加了一个简单的,从那时起我得到了这个错误:[Authorize(Roles = "Administrator")]
AuthenticationScheme:承载被禁止。
我的用户有这个要求:
new Claim(ClaimTypes.Role, "Administrator", ClaimValueTypes.String)
。
在ConfigureServices
方法:
并在Configure
方法中:
调试输出:
我在配置中错过了什么?
PS:我已经检查了这个SO 帖子,但没有成功。