【问题标题】:Databricks REST API returns HTTP 400 error (with a AAD Access Token)Databricks REST API 返回 HTTP 400 错误(带有 AAD 访问令牌)
【发布时间】:2020-06-17 10:11:15
【问题描述】:

我正在尝试使用 Active Directory 访问令牌访问 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

这个访问令牌让我可以向我的 Graph API 发出请求,所以我猜这个令牌是可以的。如果我的访问令牌过期,则返回令牌已过期...

为了完成所有尝试,我使用 Insomnia(类似于 Postman)。

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

先谢谢了

【问题讨论】:

  • 您解决了这个问题吗?

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


【解决方案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(的appid 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2021-11-10
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    相关资源
    最近更新 更多