问题标签 [identitymodel]
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.
identityserver4 - IdentityServer4 令牌中的所有客户端范围
我有一个使用 IdentityServer4 实现安全的多租户应用程序。我最近将它更新到最新的 ID4 并且行为似乎已经改变。以前,我可以使用 IdentityModel 包中的 TokenClient 发出请求:
它将返回令牌中为客户端定义的所有范围。这已不再是这种情况。如何配置 ID4 来做到这一点,而无需在 TokenClient 内明确请求它们?
asp.net-identity - 带有 AspNetCore.Identity 的 IdentityServer4:使用 TokenClient 时未调用自定义 SignInManager
我有 IdentityServer4 与 AspNetCore.Identity 一起工作。在 AspNetIdentity 登录页面以及使用 IdentityModel TokenClient.RequestResourceOwnerPasswordAsync 时,登录工作正常。
然后我想扩展它以能够针对 AD 对用户进行身份验证。我注入了一个覆盖 PasswordSignInAsync 的 SignInManager 来检查 AD 凭据。如果用户没有针对 AD 进行身份验证,那么它会恢复到基本实现(针对 AspNetUsers 进行检查)。
登录页面工作正常,我可以使用 AD 帐户或 AspNetUser 帐户登录。
我的问题是 TokenClient 登录不适用于 AD 帐户,仅适用于 AspNetUsers。执行 TokenClient.RequestResourceOwnerPasswordAsync 时,不会调用 SignInManager 中的任何登录方法。
还有其他地方我需要注入某种身份验证服务来拦截通过 IdentityServer Token API 发生的登录吗?
c# - 如何在客户端手动验证身份服务器访问令牌
我前段时间发布了一个问题:是否可以使用 IdentityModel 将 .net 4.5 中的 webform 应用程序与 IdentityServer4 集成而不使用 OWIN? . 我几乎手动进行了集成。现在,我还有一些问题:我是否需要像这里的规范一样针对 id_token 验证 AccessToken:OpenID Connect Core 1.0 in
3.3.2.9。访问令牌验证部分。
如果是,我该如何手动进行此验证?我知道如何使用 System.IdentityModel.Tokens.Jwt 中的 JwtSecurityTokenHandler 中的 ValidateToken() 以独立的方式验证 AccessToken,但我不知道如何使用“at_hash”与 id_token 一起验证它。
.net framework 4.7.1 中是否有任何库可用于此目的?
c# - IdentityModel:通过 IdentityServer 从访问令牌中获取 UserInfo
我有身份服务器(IdentityServer4)设置并作为本地主机运行。目前我的客户项目是AspNet WebForms。还有另一个使用相同身份服务器的应用程序(javascript)。
这个 javascript 应用程序调用我的 webform 应用程序并提供通过 IdentityServer 提供的 accessToken。
现在,我想调用 userInfo 端点来获取 openId 和 profile 范围。
我正在按照文档文档中的说明进行操作,希望使用IdentityModel获取 userInfo 。但我目前无法获得任何用户信息。以下是来自身份服务器的示例响应
这是文档中提到的代码
在向identityServer 发出请求时,我是否还必须提供clientId?而且,您知道出了什么问题以及如何从 accessToken 获取 userInfo。
请注意我在 Asp.Net webform 项目中的客户
asp.net-identity - IdentityServer4 System.ArgumentNullException:值不能为空。参数名称:尝试刷新令牌时的类型
我将 identityserver4 v2.4 设置为用户 ASP.Net 身份和实体框架作为操作存储。当我tokenClient.RequestRefreshTokenAsync(oldRefreshToken);
如下调用时,我总是invalid_grant
在tokenResult
IDS4 日志在日志中显示 ArgumentException(请注意,在我的情况下,参数名称存在很多类似的问题,value
而不是与Parameter name: type
我的情况相同。我认为它们不相关,因为为这些建议的修复对我不起作用)。IDS4 ClaimsConverter 中似乎出现了异常。我确实检查了我的 MySQL 数据库中 asp.net 用户和声明表中的任何空值字段,并确认没有:
我在 IDS4 中的客户端配置如下
我究竟做错了什么?
更新 2019-05-15:
所以我做了更多的挖掘,并使用在日志中找到的键检索了 PersistedGrants 表中的实际记录,即pY3Q91B7RFXV2ilzuJtI+ggqkOg9xiRx4HcGZMfJf+0=
. 我可以在该字段的 JSON 文本中看到 4 个空声明,Data
这肯定是导致问题的原因。但是为什么 IDS4 会添加这样的空声明呢?
.net - 是否可以在项目 .Net framework 4.5 中引用 IdentityModel 库?
当我尝试为我的 .NET Framework 4.5 控制台应用程序安装 IdentityModel 的 nuget 包时,出现错误:
但它确实适用于我的面向 .NET Core 2.1 的 ASP.NET Web 应用程序。
是否可以在控制台应用程序中使用这个库,还是我被迫使用 Web 应用程序?
azure-authentication - 端点属于不同的权限
尝试将 Azure AD 用作带有IdentityModel包的 OpenID 提供程序
但是问题是它会产生错误的端点配置
返回错误
端点属于不同的权限: https ://login.microsoftonline.com/00edae13-e792-4bc1-92ef-92a02ec1d939/oauth2/v2.0/authorize
openid 配置输出是
oauth2
在tenatID 和版本之间添加。我想这就是 openid 元数据验证失败的原因。
是否可以配置 AzureAD 为 openid-configuration 返回正确的元数据?
问候
c# - 使用 RSA 生成 JWT 令牌时出现安全处理错误
我正在尝试使用 RSA 算法生成 JWT toekn 进行签名。但是我System.ObjectDisposedException: 'Safe handle has been closed'
在使用这种方法将令牌转换为 json 格式时遇到了这个异常。
下面是用于生成 jwt 的代码。
将此 nuget 库用于 jwt 。System.IdentityModel.Tokens.Jwt
使用带有 HMACSHA256 的对称密钥签名生成令牌时,我没有遇到这个问题。
c# - C# webapp 在 IIS 中发布时未收到 OAuth 令牌
我们正在尝试评估多个身份提供者。对于 POC 设置一个小型 Web 应用程序,使用 IdentityModel 编写。当针对当前身份提供者在本地运行时(至少我被告知),它可以成功地进行身份验证和授权。它可以在开发人员笔记本电脑上使用 Visual Studio 和 IIS Express 正常工作。
当我将开发环境之外的应用程序发布到 POC 时,问题就开始了。应用程序发送用户名/密码并成功启动会话,但它没有收到授权令牌。结果,Web 应用程序因空令牌异常而停止。
IIS 在与开发环境相同的端口和主机上运行应用程序:https://localhost:44307,使用相同的自签名 SSL 证书。
在哪里进一步挖掘?什么是错误的 IIS 配置或应用程序中的什么?
使用 Keycloak,我们发现问题可能与标头发送的 OAuth 授权凭据有关,但 WSO2 似乎同时接受正文和标头方法。我能够使用 Postman 验证身份服务功能并接收令牌,因此身份服务应该可以工作。
WSO2 日志上没有错误。日志条目仅显示为回调 URL 颁发了授权代码。与令牌无关。
预计会获得 OAuth 客户端的授权令牌。相反,在应用程序的调试日志中,我确实看到:
浏览器和 Windows 事件日志显示