Databricks REST API返回HTTP 400错误(带有AAD访问令牌)

时间:2020-06-17 10:11:15

标签: azure azure-active-directory azure-api-management azure-databricks

我正在尝试使用Active Directoy访问令牌访问Databricks的REST API。

为此,请从 Active Directory-> App Registration-> AAD App:

在API权限中,我添加了AzureDatabricks API

enter image description here

然后,我尝试从Databricks REST API访问任何数据,但始终会遇到相同的错误:

“ io.jsonwebtoken.security.SignatureException:JWT签名与本地计算的签名不匹配。无法声明JWT有效性,也不应该信任JWT有效性。”

我要请求的端点之一是:

https://adb-XXXXXXXXXXXXXXX.azuredatabricks.net/api/2.0/token/list

此访问令牌使我可以向我的Graph API发送请求,因此我猜该令牌还可以。如果我的访问令牌已过期,则返回该令牌已过期...

要做所有尝试,我都在使用失眠症(类似于Postman)。

我在做什么错?我需要做更多的事情吗?

预先感谢

1 个答案:

答案 0 :(得分:1)

如果要请求Databricks API,则访问令牌不能请求Graph API。 此doc显示如何获取有关Databricks的访问令牌。

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>

确保resource2ff814a6-3304-4ab8-85cb-cd0e6f879c1d( user_impersonation权限)。您将获得code,将在下一步中使用。

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

您可以使用访问令牌来请求Databricks API。

另一方面,当与登录有关时,不建议使用Postman。