我正在尝试使用 Active Directoy 访问 token 访问 Databricks 的 REST API。
为此,请从Active Directory -> 应用程序注册 -> AAD 应用程序:
在 API 权限中,我添加了 AzureDatabricks API
然后我尝试从 Databricks REST API 访问任何数据,但总是遇到相同的错误:
“io.jsonwebtoken.security.SignatureException:JWT 签名与本地计算的签名不匹配。无法断言 JWT 有效性,不应信任。”
我尝试请求的端点之一是:
https://adb-XXXXXXXXXXXXXXX.azuredatabricks.net/api/2.0/token/list
这个访问 token 让我可以向我的图形 API 发出请求,所以我猜这个 token 没问题。如果我的访问 token 过期,则返回 token 已过期...
为了完成所有尝试,我使用 Insomnia(类似于 Postman)。
我做错了什么?我还需要做点什么吗?
先谢谢了
最佳答案
如果您想请求Databricks API,则访问 token 无法请求Graph API。 这个doc显示获取有关 Databricks 的访问 token 。
https://login.microsoftonline.com/<tenant>/oauth2/authorize?client_id=<client-id>
&response_type=code
&redirect_uri=<redirect URI in encoded format: e.g., http%3A%2F%2Flocalhost>
&response_mode=query
&resource=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
&state=<a random number or some encoded info>
确保资源
为2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
(appid
user_impersonation 权限)。您将获得下一步将使用的代码
。
POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
client_id={client id}
&scope=https://azuredatabricks.net//user_impersonation
&code={code}
&redirect_uri=http://localhost
&grant_type=authorization_code
您可以使用访问 token 来请求 Databricks API。
另一方面,当与登录相关时,不建议使用Postman。
关于azure - Databricks REST API 返回 HTTP 400 错误(带有 AAD 访问 token ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62426552/