我有一个angularjs SPA网络应用程序,它使用ADAL-JS(和adal-angular).它设置为在MS Azure中对我们的公司AD进行身份验证.登录流程似乎正常,SPA收到id_token.
接下来,当用户单击按钮时,SPA会向我在AWS API Gateway上托管的REST API发出请求.我在Authorization: Bearer <id_token>标题上传递了id_token .API网关按预期接收标头,现在必须确定给定标记是否良好以允许或拒绝访问.
我有一个示例令牌,它在https://jwt.io/上正确解析但我到目前为止未能找到我应该用来验证签名的公钥或证书.我查了一下:
我想我应该使用https://login.microsoftonline.com/common/discovery/keys中密钥的x5c属性的值来匹配来自JWT id_token的kid和x5t属性(当前a3QN0BZS7s4nN-BdrjbF0Y_LdMM,这导致x5c值开始与"MIIDBTCCAe2gAwIBAgIQY ......").但是,https://jwt.io/页面报告"无效签名"(我也尝试用"----- BEGIN CERTIFICATE -----"和"----- END CERTIFICATE-"包装密钥值----").
另外,是否有一个(可能是python)库可以帮助验证给定的id_token,如上所述(这样我就不必自己去抓取签名密钥了?)...最好的我可以找到(ADAL for python)似乎没有提供此功能?