TL;DR:使用托管标识对数据库的身份验证由于令牌中的错误受众声明而失败。
技术细节:使用托管标识(使用http://169.254.169.254/metadata/identity/oauth2/token API)获取访问数据库的令牌时,返回的令牌受众为'spn:2ff814a6-3304-4ab8-85cb-cd0e6f879c1d‘,而不是'2ff814a6-3304-4ab8-85cb-cd0e6f879c1d’。
当尝试使用获得的令牌时,我得到以下错误:Error 400 io.jsonwebtoken.IncorrectClaimException: Expected aud claim to be: 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d, but was: spn:2ff814a6-3304-4ab8-85cb-cd0e6f879c1d.
在资源是guid而不是url的情况下,观众似乎总是以'spn:‘作为前缀。
我还尝试使用databricks应用程序url ('https://azuredatabricks.net/')作为资源,但这里也不接受令牌。
这是众所周知的问题吗?是否有任何解决办法(除了使用服务主体方法)?
谢谢!
https://stackoverflow.com/questions/64341919
复制相似问题