问题标签 [jwt]

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 投票
2 回答
2666 浏览

asp.net-mvc-4 - 配置 ASP.NET MVC 4 以使用 Azure 的 ACS 和 Microsoft 的新 System.IdentityModel.Tokens.Jwt 库

如何将新 JWT 处理程序库 (System.IdentityModel.Tokens.Jwt) 的 1.0.0 版集成到 ASP.NET MVC 4 应用程序中,以处理来自 ACS 的 Azure JWT 令牌?

当我尝试运行我的应用程序时收到以下错误:

[SecurityTokenValidationException: Jwt10329: 无法验证签名,Configuration.IssuerTokenResolver.ResolveToken 返回 null。jwt.Header.SigningKeyIdentifier: 'SecurityKeyIdentifier (IsReadOnly = False, Count = 2, Clause[0] = X509ThumbprintKeyIdentifierClause(Hash = 0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX), Clause[1] = System.IdentityModel.Tokens.NamedKeySecurityKeyIdentifierClause) '.] System.IdentityModel.Tokens .JwtSecurityTokenHandler.ValidateSignature(JwtSecurityToken jwt) +1275
System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateToken(JwtSecurityToken jwt) +113
System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateToken(SecurityToken token) +339
System.IdentityModel.Tokens.SecurityTokenHandlerCollection.ValidateToken(SecurityToken token) +73
System.IdentityModel.Services.TokenReceiver.AuthenticateToken(SecurityToken token, Boolean ensureBearerToken, String endpointUri) +120
System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase request) + 493
System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +364
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&同步完成)+69

我的 web.config 配置如下:

我已将 Azure ACS 设置为返回 JWT 令牌并在 web.config 中设置了正确的安全缩略图,但我很困惑为什么会发生此错误。有什么见解吗?

0 投票
1 回答
353 浏览

java - Google Wallet JWT expiration

I'm making my first html5 game with in app purchases using google wallet and java with jsp to generate my jwt token for the purchase.

My game operates entirely on a single page, which the end user may be on for a prolonged period of time during gameplay. Right now I have my JWT tokens expire after 60 seconds, and allowing users to purchase in only 60 seconds is simply unacceptable.

The easiest solution seems to be to up the expiry to something like perhaps an hour. Is there a con to doing so? Is it possible, and would it be better, for me to load the tokens from another web address without redirecting the page, so that I could get the tokens whenever the user opens the store in game?

0 投票
1 回答
2226 浏览

wif - 使用 IdentityServer 将 SAML 令牌转换为 JWT 令牌

我使用身份联合(google、facebook、live id)和 WCF SOAP 服务配置了 Thintecture Identity Server。

现在我需要用于 Windows Phone 应用程序的 WCF Rest Endpoint (webHttpBinding)。我不想在授权标头中传递 WSTrust SAML 令牌。是否可以将 SamlToken 转换为 JWT 令牌以及如何:)?

以下是我尝试过的代码,但不起作用。

感谢帮助。

0 投票
2 回答
400 浏览

php - 11 月 20 日之后,我用于销售数字商品的 PHP 和 JavaScript 代码是否仍然有效?

我正在为多个应用程序使用 Google 支付处理服务,但我不知道我将能够继续使用哪些应用程序。

我用一个用于网络应用程序的帐户(在网站上销售服务积分),注册了 Google 电子钱包的数字商品。我没有收到关于该电子邮件地址截止日期的电子邮件。当我在http://wallet.google.com/merchant登录帐户时,我收到的唯一红色通知是关于税收和设置帐户的。

因此,我相信我仍然可以使用这项服务,并且不需要单独的商家(上面写着“有吸引力的定价:自动应用每笔交易 5% 或 1.9% + 30c (USD) 的最优惠价格。”在我可以注册的页面)

现在我想知道我的 PHP 和 JavaScript 代码是否还能工作?我再也找不到我用来创建代码的教程了;相反,一切都在 Python 中。没有提到PHP。这让我想知道它是否仍然可以处理一切正常。现在点击它时,所有东西都带有 Google Wallet 之类的品牌......</p>

这是我的网站的工作方式:

  • 我包括<script src="https://wallet.google.com/inapp/lib/buy.js"></script> (这实际上让我认为我应该准备好......)
  • 我在JavaScript中有一个成功和失败处理函数。
  • 我有一个卖家密码和一个卖家标识符
  • 对于这些,我使用jwt为每种数字商品及其价格创建 jwt 代币。
  • 我将该令​​牌交给其各自的JavaScript

在网站上我有按钮说onclick="purchase_digitalgood();"

我是否需要在 11 月 20 日之后进行任何更改,或者我的 PHP/jwt/JavaScript 代码仍然可以工作?

0 投票
1 回答
14572 浏览

c# - 无法使用 Google Calendar API 加载 System.Threading.Tasks 程序集

解决了 !

非常感谢 Sam Leach

这是我的工作 app.config 文件的示例:

我也找到了那个来源


编辑:原始问题在该行下方。

我正在使用 .NET 4.0 Framework,根据我的研究,我知道不再需要 System.Threading.Tasks 程序集(因为它是自动包含的)。我错了吗?

如果我是对的,我现在很确定该错误已引发,因为 google-api-dotnet-client 的开发人员使用的 System.Threading.Tasks 版本与 Visual Studio 2010 使用的版本不同。

我注意到当我删除一些行时检查我的应用程序的行为时。

这些行出来了:

所以,我的新问题是:

有没有办法强制在 VS2010 中使用一个特定版本的参考程序集?

感谢您帮助我,我相信它会帮助很多人,因为 google-calendar-api-v3 的文档记录很差。

亲切的问候,布鲁诺。


我的问题是我无法通过 VisualStudio 访问 Google API 作为服务。

我收到此错误:

这是我的类(相同的命名空间),它尝试使用 Json Web 令牌连接到 Google Calendar API v3:

我不明白为什么 System.Threading.Tasks 程序集上有 FileLoadException。我尝试向已经使用 Tasks 的应用程序添加新功能而没有问题。这个应用程序使用在不同线程中运行的 TabPage 对象。

0 投票
1 回答
649 浏览

saml - 如何评估使用 JWT 令牌而不是 SAML 的性能优势?

我正在使用 Azure ACS 在 SSO 场景中评估使用 JWT 令牌而不是 SAML 令牌。JWT 被提升为比 SAML 更轻量级,但我不确定如何评估该声明。我假设令牌是通过 FedAuth 和 FedAuth1 cookie 传递的,但在我的测试中,两个令牌之间的 cookie 大小是一致的。如果有的话,使用 JWT 时 cookie 会稍微大一些。

我的使用将用于 ASP.NET 和 WebAPI 的流量较少。

0 投票
2 回答
6350 浏览

cookies - 将凭据/令牌保存在 cookie 中?

我已经设法进行身份验证,我知道它会将令牌(JWT)返回给客户端。这个令牌有一个过期日期/时间,所以我正在考虑将令牌保存在 cookie 中,以便将来的登录通过身份验证,但这可能行不通。

然后我虽然知道将用户名和密码保存在 cookie 中,但我知道不推荐这样做?

目前我有一个接受用户名和密码的表单,成功登录将提供一个用于访问其他端点的令牌。

表单需要包含“记住我”,以便自动登录。

实现这一目标的最佳方法是什么?

我是否应该将用户名和密码存储在 cookie 中,如果不是,我如何在用户下次访问我的站点时自动进行身份验证。我提供的令牌即将过期,所以存储它有什么意义吗?

提前致谢

0 投票
1 回答
9394 浏览

php - 谷歌 OAuth JWT 签名验证

我正在 PHP 项目中制作自己的 google oauth 实现。一切正常,除非我尝试在访问令牌请求(https://accounts.google.com/o/oauth2/tokenJWT )之后验证收到。

对于 JWT 解码,我使用的是firebase/php-jwt类。

它完美解码,但如果我打开$verify选项(decode()方法 3-rd arg)我得到:Signature verification failed抛出异常。

我的猜测是,如果我将错误的密钥传递给该decode()方法。hash_hmac()稍后在签名生成完成时将其用于功能。

所以我的问题是:我应该将什么密钥传递给 Google OAuth JWT 上下文的签名验证?

0 投票
3 回答
12131 浏览

c# - JwtSecurityTokenHandler().ValidateToken() :: 签名验证失败...在此上下文中不支持 sha256

执行 JwtSecurityTokenHandler().ValidateToken() 函数时出现以下错误:

这是我的伪代码:

这是错误:

System.NotSupportedException:加密算法' http://www.w3.org/2001/04/xmldsig-more#hmac-sha256 '

奇怪的是,错误消息的这一部分之外是被编码到令牌中的声明。作为一种解决方法,我正在做一些文本解析并重新构建我的 ClaimsPrincipal,但我不应该这样做。

任何想法如何为这种情况启用 sha256?

更新:由于我在这个问题上没有任何动静(除了获得风滚草徽章)我会添加更多细节也许有人可以帮助我解决问题的根源。我不得不假设,因为没有其他人遇到这个问题,所以我必须在某个地方出现用户错误。如果有什么听起来不正确,请告诉我。

我的猜测是,既然我们没有通过 jwt 验证,那么它可能与验证机/idP 上的证书有关。

  1. 我为 idP 创建了一个 sha256 签名证书,并将其放入 idP 的个人证书中。
  2. 我导出了该证书的公钥并放入了我的验证机的受信任人员的 Cert 文件夹中。
  3. 从我的 idP 收到令牌后,我在验证机器上运行以下代码:

例子:

请注意我使用以下占位符来显示数据的填充位置:

  • thinktecture identityserver 2.Configuration => 密钥配置 => 签名指纹
  • thinktecture identityserver 2.Configuration => 依赖方 => 领域/范围名称
  • thinktecture identityserver 2.Configuration => 常规配置 => 站点 ID

在这种情况下,您有什么可以看出我做错了吗?

更新 2

我遇到了这段代码:http : //pastebin.com/DvQz8vdb,在通过它运行我的 JWT 之后,我给了我同样的错误:基本上它说它只支持“RS256”、“HS384”或“HS512”。也许这是我的问题.. 我的 JWT 回来了 HS256,而不是 RS256 或 HS >256 (384/512)

如何将签名算法从 HS256 更改为 HS512?

在这一点上,我想我们又回到了身份服务器问题?

0 投票
0 回答
1439 浏览

oauth-2.0 - 使用带有对称签名密钥的 Microsoft Jwt 处理程序,使用 Oauth 2 资源所有者流程

我正在尝试使用 OAuth 2 资源所有者流程来授权移动客户端针对我的 Web Api 服务。我正在使用 Thinktecture IdentityServer 使用对称签名密钥发布 jwt 令牌。

在客户端,我使用 Thinktecture IdentityModel 来帮助设置令牌验证。我的 WebApiConfig 如下所示:

在我的 IdentityModel.config 我有以下内容:

主要取自http://leastprivilege.com/2013/07/16/identityserver-using-ws-federation-with-jwt-tokens-and-symmetric-signatures/上的这个链接 ,我通过这个 Stack Overflow 帖子找到:如何用对称密钥配置 MIcrosoft JWT?

我尝试使用该帖子中找到的派生类,但是当我尝试运行此行时:

我收到 InvalidCastException,因为 IssuerTokenResolver 是 X509CertificateStoreResolver 类型,而不是 NamedKeyIssuerTokenResolver 类型。

看来我的配置或代码中仍然缺少一些东西来配置正确的 TokenResolver。有人有想法吗?