问题标签 [openid-connect]
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.
go - 使用 Go 从 PEM 格式的 Google“oauth2/v1/certs”证书中提取公钥
我从以下位置获取了 Google 证书:
但我不知道如何在 Go 中解析证书并提取公钥并使其适用于 rsa.VerifyPKCS1v15() 以验证 id 令牌(openID 连接)签名。如果有人可以建议我,我将不胜感激。这是我已经拥有的代码:
javascript - 在标头中传递 openid-connect oauth2 不记名令牌
背景
我已经实现了 Thinktecture.IdentityServer.V3(openID Connect 之一)。我已将 OAuth2 不记名令牌以以下形式返回给我的 javascript 客户端(隐式流):
但在所有示例中,它们仅在调用服务时将 access_token 传递给资源提供者。
假设
如果我做对了,我会使用访问令牌进行身份验证。然后我根据 id_token 中的声明进行授权(我不想进行单独的数据库调用 - 我希望它完全独立)。
问题
我如何通过 ajax 将这些信息传递给我的 webapi2 端点(假设我已经设置了 CORS 等)以及我必须连接哪些中间件来验证它?(我猜是 Token Validators 和 claimManager 之一,但有太多我无法决定哪一个是正确的)。
非常感谢帮助
azure-mobile-services - Azure 移动服务 + thinktecture identityserver v3
我试图弄清楚如何将身份服务器与 azure 移动服务集成以供移动客户端使用。我已经启动了 id 服务器,并通过 openidconnect 中间件使用测试 aspnet mvc 网站运行准系统。
我还没有找到太多关于如何使用移动服务来做到这一点的信息,而且我不确定整体流程是什么,就什么先谈什么。移动客户端是否应该调用 id 服务器直接发布用户名密码并获取令牌,然后在移动用户上设置该令牌,然后当调用 azure 移动服务时,然后在来自后端的通道上验证令牌向身份服务器提供服务?或者它应该如何工作?
我已经阅读了 azure 上的自定义身份验证文档,并找到了一些关于该主题的 azure 团队博客,但似乎它们已经过时了。有没有办法简单地将相同的 openidconnect 中间件插入到 azure 管道中?
我希望能解决这个问题,因为我有许多 web+native 移动 (Xamarin) 项目即将推出,这将是所有这些项目的身份基础。
authentication - 如何使用 OpenId Connect 在后端服务上对用户进行身份验证
我正在尝试在后端 REST 服务上对前端 Web 应用程序的用户进行身份验证,该用户由 OpenId Connect 代码流进行身份验证,该服务当前支持 OpenId Connect 代码和隐式流。
问题是,这个后端是一些移动应用程序的前端,他们直接使用它。所以我希望网络应用程序成为用户和后端之间的代理。也许我缺少规范的某些部分,它描述了诸如 WS-* ActsAs 或 OnBehalfOf 场景之类的内容?还是最佳实践?
active-directory - 本地 ADFS 是否支持 OpenID Connect?
我试图弄清楚,是否可以使用 OpenID Connect 通过本地 ADFS 进行身份验证?
我找不到任何例子——这种情况是否支持?还是应该将 ADFS 与 AAD 联合?
c# - JwtSecurityTokenHandler 表示 JWT 的签名在更改 1 个字符后有效
我们正在尝试验证由 OpenID 连接提供程序 (OP) 提供给 .NET 客户端应用程序的 ID 令牌 (IDT)。IDT 是您所期望的。那里没有什么不寻常的事情发生。
为了验证 IDT 的签名,我们可以通过调用公共端点从 OP 获取指数和模数。这些可用于创建与 OP 用于签署 IDT 的私钥相对应的公钥。有了这些,我们创建了一个 RSACryptoServiceProvider 对象来进行签名验证。为了解决这个问题,我们将加密服务提供者作为令牌验证参数传递给 JwtSecurityTokenHandler。
这工作正常。我们以为我们已经完成并准备好迎接周末了。但是,我们发现我们可以更改签名中的最后一个字符,JwtSecurityTokenHandler 仍然会告诉我们 JWT 是有效的。我们找不到对此的解释,并想知道是否:
- 我们创建签名密钥的方式存在问题,导致它无法正确验证 JWT。
- JwtSecurityTokenHandler 中有一个错误。
- 我们不完全理解规范,允许进行这种小改动,因为 JWT 签名部分的最后一个字符实际上与验证无关。
- 别的东西
我们正在使用 System.IdentityModel.Tokens.Jwt.dll v4.0.30319 中的 System.IdentityModel.Tokens.JwtSecurityTokenHandler。
下面是我们代码的一个非常简单的示例。
程序.cs
TokenValidator.cs
oauth - 在 OAuth 2 中使用 response_type="code token"?
OpenID Connect Spec OAuth 2.0 Multiple Response Type Encoding Practices声明多个 response_type 可以组合,例如response_type="code token"
. 现在我想知道请求授权码和令牌有什么好处。如果您已经拥有令牌,验证码不是多余的吗?
java - OpenId Connect to Google 给了我 Http 400
我正在尝试使用 OAuth 2.0 访问 Google API
但是当我尝试获取令牌时,我总是收到 http 400
我正在使用带有 Java SDK 8 的 Tomcat8 我不知道出了什么问题。
我的输出如下,似乎所有参数都可以。
oauth-2.0 - OpenID Connect:资源所有者密码凭证
OIDC 不支持资源所有者密码凭证授予。为什么?我的一些客户端是安全设备,可以安全地维护凭据......这些凭据可用于获取 access_token。我还能使用 OpenID Connect 吗?
c# - 使用 OpenId 协议
我在使用 OpenId Connect 进行身份验证时遇到了一些问题。我在事件中为 OpenId 设置断点,在身份验证过程之后,我只收到一个 MessageReceived(至少我收到了令牌……),因此我没有成功通过身份验证!我认为我应该在 AuthorizationCodeReceived 中接收访问令牌。
关于为什么会发生这种行为的任何想法?