从 ASP.NET Core Web 应用程序调用 Databricks API

问题描述 投票:0回答:1

我们的应用程序是一个在 Entra Id 中注册的 Web 应用程序。应用程序使用 OIDC 进行身份验证。我们在 Entra 的 API 权限中添加了 Databricks 范围 (user_impersonation)。 Databricks 范围 (

<databrics_app_id>/.default
) 作为范围添加到 OpenIdConnect 客户端。

当用户登录时,Entra 返回的访问令牌不具有

user_impersonation
范围。当应用程序使用访问令牌调用 Databricks 时,我们会收到 http 401 UnAuthorized 错误。

我正在使用 OidcClient 使用 OIDC 登录:

var options = new OidcClientOptions()
                  {
                      Scope = "<databricks_id>/.default openid",
                  }
var _oidcClient = new OidcClient(options);

我也尝试过

.AddOpenIdConnect("oidc", options =>
        {
            options.Scope.Add("<databricks_id>/.default");
        }
asp.net-core oauth-2.0 scope databricks openid-connect
1个回答
0
投票

我相信您已采取类似操作来为 Databricks 范围添加 API 权限。如果是这样,就像你看到的,它只提供

Delegated
权限,这意味着你无法使用
.default
作为生成访问令牌的范围,范围只能是类似于
<databricks_id>/user_impersonation

的东西

同时,当我们进行Azure AD身份验证和授权时,我们有MSAL SDK,它可以帮助减少许多配置。

© www.soinside.com 2019 - 2024. All rights reserved.