问题标签 [duende-identity-server]

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

identityserver4 - Duende - BFF 单点登录

我正在尝试使用 Duende Backend for Frontend (BFF) Security Framework 实现单点登录。

这个GitHub 存储库演示了我看到的行为。

它包含 3 个站点:

  1. Blazor WASM(托管)- 使用官方文档中描述的 BFF
  2. MVC 网站
  3. Web(Razor 页面)站点

IdentityServer 项目配置为提供上述所有服务。

通过 MVC 或 Web 登录时,Blazor 站点似乎未登录。通过 Blazor 登录时,所有 3 个站点似乎都已登录。

布雷泽 MVC 网络
登录到 MVC ñ
登录网络 ñ
登录到 Blazor

通过 MVC 或 Web 注销时,Blazor 站点未注销。通过 Blazor 注销时,网站未注销。

布雷泽 MVC 网络
注销 MVC ñ
登出网页 ñ
注销 Blazor ñ

我不确定这是否是由于我配置 IdentityServer 项目的方式造成的,但我无法找到问题的根源。

0 投票
0 回答
53 浏览

asp.net-core - Duende IdentityServer 错误:使用 2 个颁发者和无效的令牌问题

问题始于在我的日志中出现许多这样的错误:

我正在使用带有个人帐户的托管 Blazor WebAssembly 的默认 MS 模板。我没有明确设置任何颁发者,因为我有 test.mydomain.org 并且看起来很方便。

我有 DNS CNAME www.example.org到 example.org,在 IIS 中我有一个带有 4 个绑定的站点 example.org:http 和 https 用于 www 和非 www 版本。

当一切正常时,无论我如何尝试使用 www 或非 www 版本打开我的网站,在隐身模式下,登录或注销,无论我尝试什么,我都无法故意在日志中出现此错误。

但随后它开始出现,并且可以正常登录但尝试访问任何需要授权返回的 API 端点的用户注意到它Bearer error="invalid_token", error_description="The issuer 'https://example.com' is invalid"如何仅调试偶尔的 Bearer error="invalid_token")。

我想知道如果我不能通过手动请求 www 版本来接收从www.mydomain.org到 IdentityServer 的请求,怎么可能?IdentityServer 从哪里获得这些颁发者?而且,身份服务器是否会在一段时间后开始故意抛出这些错误?

0 投票
1 回答
35 浏览

identityserver4 - MSAL.js 是否支持 check_session_iframe OIDC 端点?

我正在开发一个 SPA,它依赖于Identity Server的实例来验证用户。我需要一个在本地管理我的令牌的解决方案,但 Duende(Identity Server 的所有者)倾向于使用后端换前端 (BFF) 模式而不是 Javascript 库。这对我们不起作用。由于不再维护由 Identity Server 的作者编写的原始 oidc-client,我一直在寻找 Javascript 替代方案。最有可能的候选者似乎是 Microsoft 的MSAL.js,它是为 Azure AD 构建的,但据说支持 OIDC 标准。

据我所知,MSAL.js 使用刷新令牌强制您使用离线访问路径来更新安全令牌。即使我没有明确要求offline_access范围,图书馆还是会附加一个范围!但我的用例不需要刷新令牌。相反,我希望我的客户使用 OIDC 会话管理标准(通过提供商众所周知的 JSON 公开的 check_session_iframe 端点)使身份提供商上的会话保持新鲜。

我发现,如果我忽略offline_accessMSAL.js 库请求的范围,因此我的身份提供者只发布 ID 令牌和访问令牌,那么 MSAL 将继续正常工作。它甚至可以ssoSilent选择通过隐藏 iframe 中的连接/授权请求显式更新令牌。但据我所知,我不能让图书馆像过去的旧 oidc-client 那样通过 iframe 保持会话新鲜。

因此,鉴于会话管理是 OIDC 规范的一部分,并且 MSAL 应该是符合 OIDC 的库,我是否在这里遗漏了什么?

0 投票
0 回答
14 浏览

asp.net-core - 如何在身份服务器质询控制器操作中检索身份验证属性?

我配置了一个身份服务器,我们的 Asp.Net Core 网站将其用于身份验证。当我们在网站上发出挑战时,它显然会在 ID 服务器的外部控制器中的挑战控制器动作中被拾取。如果我将身份验证属性添加到网站质询,我看不到如何在 ID 服务器的质询控制器操作中检索它们。有谁知道我该怎么做?我需要将来自网站挑战的信息传递给 ID 服务器。

0 投票
0 回答
16 浏览

identityserver4 - 添加自定义声明以生成令牌 - Duende 身份服务器

我正在尝试配置我的 Duende(以前称为身份服务器 4)身份服务器以进行身份​​验证和授权。对于身份验证部分,我使用的是外部身份验证服务,因此得到的结果之一是UserID。然后,我想将此UserID添加为我的访问令牌中的自定义声明。但是,我无法弄清楚这是如何完成的。

具体来说,我想实现这样的事情:

问题是UserID未定义为RequestClientCredentialsTokenAsync的一部分。

有什么办法可以添加吗?

先感谢您。

0 投票
1 回答
26 浏览

c# - IHttpContextAccessor.HttpContext 在执行退出 UseODataBatching 中间件并导致 IdentityServer 中的 NullReferenceExp 后为 null

我有一个简单的 .NET6 OData API,默认配置启用批处理。API 使用默认 VS 模板中的 IdentityServer 进行配置。

Program.cs

问题

发出$batch请求后,当执行掉出UseODataBatching中间件时,中间件中的HttpContext属性IHttpContextAccessor变为null,这会触发中间件NullReferenceException中的a,IdentityServer从而500为所有请求返回

Requests(来自邮递员):

Responses

删除IdentityServer中间件时,批处理请求通过并返回200两个请求都没有问题。

作为测试,我写了一个测试中间件ODataTestMiddleware

并且IHttpContextAccessor.HttpContext在这里也是空的。

我在 OData 存储库中看到了这个问题IHttpContextAccessor.HttpContext 在 odata 批处理调用中执行时返回 null,但我使用的是ASP.NET Core版本,所以我不知道两者在实现方面的区别。

有没有我可以尝试的解决方法?感谢您的时间。