问题标签 [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.

0 投票
1 回答
1409 浏览

go - 使用 Go 从 PEM 格式的 Google“oauth2/v1/certs”证书中提取公钥

我从以下位置获取了 Google 证书:

https://www.googleapis.com/oauth2/v1/certs

但我不知道如何在 Go 中解析证书并提取公钥并使其适用于 rsa.VerifyPKCS1v15() 以验证 id 令牌(openID 连接)签名。如果有人可以建议我,我将不胜感激。这是我已经拥有的代码:

0 投票
2 回答
8507 浏览

javascript - 在标头中传递 openid-connect oauth2 不记名令牌

背景

我已经实现了 Thinktecture.IdentityServer.V3(openID Connect 之一)。我已将 OAuth2 不记名令牌以以下形式返回给我的 javascript 客户端(隐式流):

但在所有示例中,它们仅在调用服务时将 access_token 传递给资源提供者。

假设

如果我做对了,我会使用访问令牌进行身份验证。然后我根据 id_token 中的声明进行授权(我不想进行单独的数据库调用 - 我希望它完全独立)。

问题

我如何通过 ajax 将这些信息传递给我的 webapi2 端点(假设我已经设置了 CORS 等)以及我必须连接哪些中间件来验证它?(我猜是 Token Validators 和 claimManager 之一,但有太多我无法决定哪一个是正确的)。

非常感谢帮助

0 投票
0 回答
550 浏览

azure-mobile-services - Azure 移动服务 + thinktecture identityserver v3

我试图弄清楚如何将身份服务器与 azure 移动服务集成以供移动客户端使用。我已经启动了 id 服务器,并通过 openidconnect 中间件使用测试 aspnet mvc 网站运行准系统。

我还没有找到太多关于如何使用移动服务来做到这一点的信息,而且我不确定整体流程是什么,就什么先谈什么。移动客户端是否应该调用 id 服务器直接发布用户名密码并获取令牌,然后在移动用户上设置该令牌,然后当调用 azure 移动服务时,然后在来自后端的通道上验证令牌向身份服务器提供服务?或者它应该如何工作?

我已经阅读了 azure 上的自定义身份验证文档,并找到了一些关于该主题的 azure 团队博客,但似乎它们已经过时了。有没有办法简单地将相同的 openidconnect 中间件插入到 azure 管道中?

我希望能解决这个问题,因为我有许多 web+native 移动 (Xamarin) 项目即将推出,这将是所有这些项目的身份基础。

0 投票
0 回答
294 浏览

authentication - 如何使用 OpenId Connect 在后端服务上对用户进行身份验证

我正在尝试在后端 REST 服务上对前端 Web 应用程序的用户进行身份验证,该用户由 OpenId Connect 代码流进行身份验证,该服务当前支持 OpenId Connect 代码和隐式流。

问题是,这个后端是一些移动应用程序的前端,他们直接使用它。所以我希望网络应用程序成为用户和后端之间的代理。也许我缺少规范的某些部分,它描述了诸如 WS-* ActsAs 或 OnBehalfOf 场景之类的内容?还是最佳实践?

0 投票
2 回答
1601 浏览

active-directory - 本地 ADFS 是否支持 OpenID Connect?

我试图弄清楚,是否可以使用 OpenID Connect 通过本地 ADFS 进行身份验证?

我找不到任何例子——这种情况是否支持?还是应该将 ADFS 与 AAD 联合?

0 投票
1 回答
5964 浏览

c# - JwtSecurityTokenHandler 表示 JWT 的签名在更改 1 个字符后有效

我们正在尝试验证由 OpenID 连接提供程序 (OP) 提供给 .NET 客户端应用程序的 ID 令牌 (IDT)。IDT 是您所期望的。那里没有什么不寻常的事情发生。

为了验证 IDT 的签名,我们可以通过调用公共端点从 OP 获取指数和模数。这些可用于创建与 OP 用于签署 IDT 的私钥相对应的公钥。有了这些,我们创建了一个 RSACryptoServiceProvider 对象来进行签名验证。为了解决这个问题,我们将加密服务提供者作为令牌验证参数传递给 JwtSecurityTokenHandler。

这工作正常。我们以为我们已经完成并准备好迎接周末了。但是,我们发现我们可以更改签名中的最后一个字符,JwtSecurityTokenHandler 仍然会告诉我们 JWT 是有效的。我们找不到对此的解释,并想知道是否:

  1. 我们创建签名密钥的方式存在问题,导致它无法正确验证 JWT。
  2. JwtSecurityTokenHandler 中有一个错误。
  3. 我们不完全理解规范,允许进行这种小改动,因为 JWT 签名部分的最后一个字符实际上与验证无关。
  4. 别的东西

我们正在使用 System.IdentityModel.Tokens.Jwt.dll v4.0.30319 中的 System.IdentityModel.Tokens.JwtSecurityTokenHandler。

下面是我们代码的一个非常简单的示例。

程序.cs

TokenValidator.cs

0 投票
2 回答
2490 浏览

oauth - 在 OAuth 2 中使用 response_type="code token"?

OpenID Connect Spec OAuth 2.0 Multiple Response Type Encoding Practices声明多个 response_type 可以组合,例如response_type="code token". 现在我想知道请求授权码令牌有什么好处。如果您已经拥有令牌,验证码不是多余的吗?

0 投票
1 回答
113 浏览

java - OpenId Connect to Google 给了我 Http 400

我正在尝试使用 OAuth 2.0 访问 Google API

但是当我尝试获取令牌时,我总是收到 http 400

我正在使用带有 Java SDK 8 的 Tomcat8 我不知道出了什么问题。

我的输出如下,似乎所有参数都可以。

0 投票
3 回答
2967 浏览

oauth-2.0 - OpenID Connect:资源所有者密码凭证

OIDC 不支持资源所有者密码凭证授予。为什么?我的一些客户端是安全设备,可以安全地维护凭据......这些凭据可用于获取 access_token。我还能使用 OpenID Connect 吗?

0 投票
1 回答
831 浏览

c# - 使用 OpenId 协议

我在使用 OpenId Connect 进行身份验证时遇到了一些问题。我在事件中为 OpenId 设置断点,在身份验证过程之后,我只收到一个 MessageReceived(至少我收到了令牌……),因此我没有成功通过身份验证!我认为我应该在 AuthorizationCodeReceived 中接收访问令牌。

关于为什么会发生这种行为的任何想法?