我正在运行 web-app-samples-for-adal4j ,我能够看到/ secure / aad页面,我能够恢复Azure AD发送的idToken。
但是,我的想法是将该令牌传递给不同的服务和它们,每个服务都可以验证令牌是否有效。
因此,总结一下,我希望能够从服务中检查,给出的idtoken是有效的。据我所知,您必须验证您可以从令牌恢复的JWT是否已使用证书进行签名。我错了吗?
我正在使用此网站http://jwt.calebb.net/来检查我是否可以解码JWT。在最后一部分,我可以看到签名。
所以,我的问题是,外部服务如何验证令牌是否由某个证书编码?而且,该证书在哪里(是在联邦元数据文件中)?
答案 0 :(得分:1)
根据我的理解,id_token用于客户端验证当前用户信息。要检查资源的特定权限,我们通常使用access_token。
要验证从Azure AD发出的使用OpenId连接协议与Azure集成的id_token,我们可以按照以下步骤操作(请参阅OpenId specification):
您可以使用位于您正在开发的端点的OpenID Connect元数据文档来获取验证签名所需的签名密钥数据:
https://login.microsoftonline.com/common/.well-known/openid-configuration https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration