客户端应用程序应该如何处理通过OpenID Connect获得的JWT?
我有一个场景,OIDC似乎很适合:一个移动应用程序,用户需要从服务器获取一些私有数据。我读过OIDC教程,我想我理解了它们,但在全球范围内仍然存在一个关键的“漏洞” 无论如何,如果我正确理解了OIDC的代码流,以下是交互的简要总结:客户端应用程序应该如何处理通过OpenID Connect获得的JWT?,jwt,openid-connect,Jwt,Openid Connect,我有一个场景,OIDC似乎很适合:一个移动应用程序,用户需要从服务器获取一些私有数据。我读过OIDC教程,我想我理解了它们,但在全球范围内仍然存在一个关键的“漏洞” 无论如何,如果我正确理解了OIDC的代码流,以下是交互的简要总结: 移动应用程序将联系OIP授权端点,在范围中指出我们对用户的电子邮件感兴趣。它将提供一个指向移动应用程序中运行的简单web服务器的指针 OIP将通过重定向uri联系移动应用程序,并向其提供授权码 移动应用程序现在将联系OIP令牌端点,并向其提供在步骤2中获得的授权代码
范围中指出我们对用户的电子邮件感兴趣。它将提供一个指向移动应用程序中运行的简单web服务器的指针
重定向uri
联系移动应用程序,并向其提供授权码重定向uri
重定向uri
联系应用程序的,并向其提供一份签名JWT以及我们请求的索赔(电子邮件)这就是教程的结尾。我推测,现在这意味着移动应用程序会将步骤4中获得的JWT发送到我的服务器。但是,服务器如何知道JWT是有效的?当然,它是由OIP签名的,但是服务器应该有一个OIP公钥的硬编码列表来验证JWT吗?我发现OIDC教程中似乎缺少了这些最后的关键步骤…OpenID授权代码流]在第4点中略有不同。获得授权令牌后,客户端向令牌端点请求令牌ID,令牌端点返回一个包含ID令牌的响应,无需重定向(请求必须包括
redirect_uri
param,服务器将确保与原始令牌相同)
这是全文
包含发卡机构标识符和iss
您的aud
客户id
和iat
exp
- 使用发卡机构提供的密钥验证令牌的签名。在此流程中,可以使用TLS服务器验证来验证颁发者,而不是检查令牌签名。对于HMAC,客户端id的
用作验证密钥client\u secret
- 验证
,请求nonce
或azp
azr