Share via


OAuth M2M(machine-to-machine) 인증

OAuth M2M(컴퓨터 간) 인증은 자동화된 엔터티(이 경우 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID(이전의 Azure Active Directory) 관리 서비스 주체)의 자격 증명을 사용하여 대상 엔터티를 인증합니다.

Azure Databricks가 OAuth M2M 인증 요청을 통해 대상 서비스 주체를 성공적으로 인증하면 해당 시간부터 서비스 주체를 대신하여 토큰 기반 인증을 수행하기 위해 참여하는 도구 또는 SDK에 Azure Databricks OAuth 토큰이 제공됩니다. Azure Databricks OAuth 토큰의 수명은 1시간이며, 그 다음에는 도구 또는 SDK가 1시간 동안 유효한 새 토큰을 가져오기 위해 자동 백그라운드 시도를 수행합니다.

OAuth M2M 인증 구성을 시작하려면 다음을 수행합니다.

참고 항목

서비스 주체에 대한 Azure Databricks OAuth 자격 증명을 관리하려면 Azure Databricks 계정 관리자여야 합니다.

1단계: Azure 계정에서 Microsoft Entra ID 서비스 주체 만들기

Microsoft Entra ID 서비스 주체를 Azure Databricks 계정, 작업 영역 또는 둘 다에 연결하려면 이 단계를 완료합니다. 그렇지 않으면 2단계로 건너뜁니다.

  1. Azure Portal에 로그인합니다.

    참고 항목

    사용할 포털은 Microsoft Entra ID(이전의 Azure Active Directory) 애플리케이션이 Azure 퍼블릭 클라우드에서 실행되는지 또는 국가 또는 소버린 클라우드에서 실행되는지에 따라 다릅니다. 자세한 내용은 국가별 클라우드를 참조하세요.

  2. 여러 테넌트, 구독 또는 디렉터리에 액세스할 수 있는 경우 상단 메뉴에서 디렉터리 + 구독(필터가 있는 디렉터리) 아이콘을 클릭하여 서비스 주체를 프로비저닝할 디렉터리로 전환합니다.

  3. 검색 리소스, 서비스 및 문서에서 Microsoft Entra ID를 검색하고 선택합니다.

  4. + 추가를 클릭하고 앱 등록을 선택합니다.

  5. 이름에 애플리케이션의 이름을 입력합니다.

  6. 지원되는 계정 유형 섹션에서 이 조직 디렉터리의 계정만(단일 테넌트)을 선택합니다.

  7. 등록을 클릭합니다.

  8. 애플리케이션 페이지의 개요 페이지에서 Essentials 섹션의 다음 값을 복사합니다.

    • 애플리케이션(클라이언트) ID
    • 디렉터리(테넌트) ID

    Azure 등록된 앱 개요

  9. 클라이언트 비밀을 생성하려면 관리 내에서 인증서 및 비밀을 클릭합니다.

    참고 항목

    이 클라이언트 비밀을 사용하여 Azure Databricks를 사용하여 Microsoft Entra ID 서비스 주체를 인증하기 위한 Microsoft Entra ID 토큰을 생성합니다. Azure Databricks 도구 또는 SDK에서 Microsoft Entra ID 토큰을 사용할 수 있는지 여부를 확인하려면 도구 또는 SDK 설명서를 참조하세요.

  10. 클라이언트 암호 탭에서 새 클라이언트 암호를 클릭합니다.

    새 클라이언트 암호

  11. 클라이언트 암호 추가 창의 설명에 클라이언트 암호에 대한 설명을 입력합니다.

  12. 만료에 클라이언트 암호의 만료 기간을 선택한 다음, 추가를 클릭합니다.

  13. 이 클라이언트 암호는 애플리케이션의 비밀이므로 클라이언트 암호의 을 복사하여 안전한 위치에 저장합니다.

2단계: Azure Databricks 계정에 서비스 주체 추가

이 단계는 대상 Azure Databricks 작업 영역이 ID 페더레이션사용하도록 설정된 경우에만 작동합니다. 작업 영역이 ID 페더레이션에 사용하도록 설정되지 않은 경우 3단계로 건너뜁니다.

  1. Azure Databricks 작업 영역에서 위쪽 표시줄에서 사용자 이름을 클릭하고 계정 관리를 클릭합니다.

    또는 Azure Databricks 계정 콘솔()로 https://accounts.azuredatabricks.net직접 이동합니다.

  2. 메시지가 표시되면 Azure Databricks 계정에 로그인합니다.

  3. 사이드바에서 사용자 관리를 클릭합니다.

  4. 서비스 주체 탭을 클릭합니다.

  5. 서비스 주체 추가를 클릭합니다.

  6. 관리에서 관리되는 Databricks 또는 Microsoft Entra ID를 선택합니다.

  7. Microsoft Entra ID 관리형을 선택한 경우 Microsoft Entra 애플리케이션 ID 아래에 1단계의 애플리케이션(클라이언트) ID 값을 붙여넣습니다.

  8. 서비스 주체의 이름을 입력합니다.

  9. 추가를 클릭합니다.

  10. (선택 사항) 서비스 주체에 계정 수준 권한을 할당합니다.

    1. 서비스 주체 탭에서 서비스 주체의 이름을 클릭합니다.
    2. 역할 탭에서 전환하여 이 서비스 주체가 포함할 각 대상 역할을 사용하거나 사용하지 않도록 설정합니다.
    3. 사용 권한 탭에서 이 서비스 주체를 관리하고 사용하려는 Azure Databricks 사용자, 서비스 주체 및 계정 그룹 역할에 대한 액세스 권한을 부여합니다. 서비스 주체의 역할 관리를 참조하세요.

3단계: Azure Databricks 작업 영역에 서비스 주체 추가

작업 영역이 ID 페더레이션에 사용하도록 설정된 경우:

  1. Azure Databricks 작업 영역에서 위쪽 표시줄에서 사용자 이름을 클릭하고 설정 클릭합니다.
  2. ID 및 액세스 탭을 클릭합니다.
  3. 서비스 주체 옆에 있는 관리를 클릭합니다.
  4. 서비스 주체 추가를 클릭합니다.
  5. 2단계에서 서비스 주체를 선택하고 추가를 클릭합니다.

4단계로 건너뜁니다.

작업 영역이 ID 페더레이션에 사용하도록 설정되지 않은 경우:

  1. Azure Databricks 작업 영역에서 위쪽 표시줄에서 사용자 이름을 클릭하고 설정 클릭합니다.
  2. ID 및 액세스 탭을 클릭합니다.
  3. 서비스 주체 옆에 있는 관리를 클릭합니다.
  4. 서비스 주체 추가를 클릭합니다.
  5. 새로 추가를 클릭합니다.
  6. 관리에서 관리되는 Databricks 또는 Microsoft Entra ID를 선택합니다.
  7. Microsoft Entra ID 관리형을 선택한 경우 Microsoft Entra 애플리케이션 ID 아래에 1단계의 애플리케이션(클라이언트) ID 값을 붙여넣습니다.
  8. 새 서비스 주체의 표시 이름을 입력하고 추가를 클릭합니다.

4단계: 서비스 주체에 작업 영역 수준 권한 할당

  1. 작업 영역에 대한 관리 콘솔이 아직 열리지 않은 경우 위쪽 표시줄에서 사용자 이름을 클릭하고 설정 클릭합니다.
  2. ID 및 액세스 탭을 클릭합니다.
  3. 서비스 주체 옆에 있는 관리를 클릭합니다.
  4. 서비스 주체의 이름을 클릭하여 해당 설정 페이지를 엽니다.
  5. 구성 탭에서 서비스 주체가 이 작업 영역에 대해 가질 각 자격 옆에 있는 상자를 검사 다음 업데이트를 클릭합니다.
  6. 사용 권한 탭에서 이 서비스 주체를 관리하고 사용하려는 모든 Azure Databricks 사용자, 서비스 주체 및 그룹에 대한 액세스 권한을 부여합니다. 서비스 주체의 역할 관리를 참조하세요.

5단계: 서비스 주체에 대한 Azure Databricks OAuth 비밀 만들기

OAuth를 사용하여 Azure Databricks에 인증하려면 먼저 OAuth 액세스 토큰을 생성하는 데 사용할 수 있는 OAuth 비밀을 만들어야 합니다. 서비스 주체는 최대 5개의 OAuth 비밀을 가질 수 있습니다. 계정 콘솔을 사용하여 서비스 주체에 대한 OAuth 비밀을 만들려면 다음을 수행합니다.

  1. 에서 Azure Databricks 계정 콘솔에 https://accounts.azuredatabricks.net로그인합니다.
  2. 메시지가 표시되면 Azure Databricks 계정에 로그인합니다.
  3. 사이드바에서 사용자 관리를 클릭합니다.
  4. 서비스 주체 탭을 클릭합니다.
  5. 서비스 주체의 이름을 클릭합니다.
  6. 보안 주체 정보 탭의 OAuth 비밀 섹션에서 비밀 생성을 클릭합니다.
  7. 이 OAuth 비밀은 서비스 주체의 암호이므로 비밀 생성 대화 상자에서 비밀 값을 복사하여 안전한 위치에 저장합니다.
  8. 완료를 클릭합니다.

참고 항목

서비스 주체가 클러스터 또는 SQL 웨어하우스를 사용할 수 있도록 하려면 서비스 주체에 액세스 권한을 부여해야 합니다. 컴퓨팅 사용 권한 또는 SQL 웨어하우스 관리를 참조하세요.

OAuth M2M 인증 구성 완료

OAuth M2M 인증 구성을 완료하려면 다음과 같은 연결된 환경 변수, 필드, .databrickscfg Terraform 필드 또는 Config 필드를 설정해야 합니다.

  • 계정 작업 또는 작업 영역별 대상 URL(예https://adb-1234567890123456.7.azuredatabricks.net: https://accounts.azuredatabricks.net 작업 영역 작업)에 대해 지정된 Azure Databricks 호스트입니다.
  • Azure Databricks 계정 작업의 Azure Databricks 계정 ID입니다.
  • 서비스 주체 클라이언트 ID입니다.
  • 서비스 주체 비밀입니다.

OAuth M2M 인증을 수행하려면 참여 도구 또는 SDK에 따라 코드 내에 다음을 통합합니다.

환경

도구 또는 SDK를 사용하여 특정 Azure Databricks 인증 유형에 환경 변수를 사용하려면 Azure Databricks 도구 또는 SDK 또는 도구 또는 SDK 설명서에서 지원되는 인증 유형을 참조하세요. 또한 클라이언트 통합 인증에 대한 환경 변수 및 필드와 클라이언트 통합 인증 방법 및 자격 증명에 대한 기본 평가 순서를 참조하세요.

계정 수준 작업의 경우 다음 환경 변수를 설정합니다.

  • DATABRICKS_HOST- Azure Databricks 계정 콘솔 URL https://accounts.azuredatabricks.net로 설정합니다.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

작업 영역 수준 작업의 경우 다음 환경 변수를 설정합니다.

  • DATABRICKS_HOST- 작업 영역별 Azure Databricks URL로 설정됩니다. 예를 들면 다음과 같습니다 https://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

프로필

파일에 다음 필드를 사용하여 Azure Databricks 구성 프로필을 만들거나 식별합니다 .databrickscfg . 프로필을 만드는 경우 자리 표시자를 적절한 값으로 바꿉다. 도구 또는 SDK와 함께 프로필을 사용하려면 Azure Databricks 도구 또는 SDK 또는 도구 또는 SDK 설명서에서 지원되는 인증 유형을 참조하세요. 또한 클라이언트 통합 인증에 대한 환경 변수 및 필드와 클라이언트 통합 인증 방법 및 자격 증명에 대한 기본 평가 순서를 참조하세요.

계정 수준 작업의 경우 파일에서 .databrickscfg 다음 값을 설정합니다. 이 경우 Azure Databricks 계정 콘솔 URL은 다음과 같습니다 https://accounts.azuredatabricks.net.

[<some-unique-configuration-profile-name>]
host          = <account-console-url>
account_id    = <account-id>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

작업 영역 수준 작업의 경우 파일에서 .databrickscfg 다음 값을 설정합니다. 이 경우 호스트는 Azure Databricks 작업 영역별 URL입니다. 예를 들면 다음과 같습니다 https://adb-1234567890123456.7.azuredatabricks.net.

[<some-unique-configuration-profile-name>]
host          = <workspace-url>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Cli

Databricks CLI의 경우 다음 중 하나를 수행합니다.

  • 이 문서의 "환경" 섹션에 지정된 대로 환경 변수를 설정합니다.
  • 이 문서의 "프로필" 섹션에 지정된 대로 파일의 값을 .databrickscfg 설정합니다.

환경 변수는 항상 파일의 값보다 우선합니다 .databrickscfg .

OAuth M2M(컴퓨터 대 컴퓨터) 인증참조하세요.

연결

참고 항목

OAuth M2M 인증은 다음 Databricks 커넥트 버전에서 지원됩니다.

  • Python의 경우 Databricks 런타임 14.0 이상에 대한 Databricks 커넥트.
  • Scala의 경우 Databricks 런타임 13.3 LTS 이상에 대한 Databricks 커넥트. Databricks Runtime 13.3 LTS 이상용 Databricks 커넥트 포함된 Java용 Databricks SDK는 Java 0.17.0 이상용 Databricks SDK로 업그레이드해야 합니다.

Databricks 커넥트 경우 다음 중 하나를 수행할 수 있습니다.

  • 이 문서의 "프로필" 섹션에 .databrickscfg 지정된 대로 Azure Databricks 작업 영역 수준 작업에 대한 파일의 값을 설정합니다. 또한 프로필의 환경 변수를 cluster_id작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net)로 설정합니다.
  • 이 문서의 "환경" 섹션에 지정된 대로 Azure Databricks 작업 영역 수준 작업에 대한 환경 변수를 설정합니다. 또한 환경 변수DATABRICKS_CLUSTER_ID 작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net)로 설정합니다.

파일의 .databrickscfg 값은 항상 환경 변수보다 우선합니다.

파일에서 이러한 환경 변수 또는 값을 사용하여 Databricks 커넥트 클라이언트를 초기화하려면 다음 중 하나를 참조하세요.databrickscfg.

  • Python의 경우 Python에 대한 연결 속성 구성을 참조 하세요.
  • Scala의 경우 Scala에 대한 연결 속성 구성을 참조 하세요.

Vs code

Visual Studio Code용 Databricks 확장의 경우 다음을 수행합니다.

  1. 이 문서의 "프로필" 섹션에 .databrickscfg 지정된 대로 Azure Databricks 작업 영역 수준 작업에 대한 파일의 값을 설정합니다.
  2. Visual Studio Code용 Databricks 확장의 구성 창에서 Databricks 구성을 클릭합니다.
  3. 명령 팔레트에서 Databricks 호스트의 경우 작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net/>)을 입력한 다음 누릅니Enter다.
  4. 명령 팔레트URL 목록에서 대상 프로필의 이름을 선택합니다.

자세한 내용은 VS Code용 Databricks 확장에 대한 인증 설정을 참조 하세요.

Terraform

계정 수준 작업의 경우 기본 인증:

provider "databricks" {
  alias = "accounts"
}

직접 구성의 retrieve 경우(자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 HashiCorp Vault와 같은 다른 구성 저장소에서 값을 검색합니다. 자격 증명 모음 공급자참조하세요). 이 경우 Azure Databricks 계정 콘솔 URL은 다음과 같습니다 https://accounts.azuredatabricks.net.

provider "databricks" {
  alias         = "accounts"
  host          = <retrieve-account-console-url>
  account_id    = <retrieve-account-id>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

작업 영역 수준 작업의 경우 기본 인증:

provider "databricks" {
  alias = "workspace"
}

직접 구성의 retrieve 경우(자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 HashiCorp Vault와 같은 다른 구성 저장소에서 값을 검색합니다. 자격 증명 모음 공급자참조하세요). 이 경우 호스트는 Azure Databricks 작업 영역별 URL입니다. 예를 들면 다음과 같습니다 https://adb-1234567890123456.7.azuredatabricks.net.

provider "databricks" {
  alias         = "workspace"
  host          = <retrieve-workspace-url>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Databricks Terraform 공급자를 사용하여 인증하는 방법에 대한 자세한 내용은 인증을 참조하세요.

Python

계정 수준 작업의 경우 기본 인증에 다음을 사용합니다.

from databricks.sdk import AccountClient

a = AccountClient()
# ...

직접 구성의 경우 다음을 사용하여 자리 표시자를 고유한 구현으로 바꿔 retrieve 서 콘솔 또는 Azure KeyVault와 같은 다른 구성 저장소에서 값을 검색합니다. 이 경우 Azure Databricks 계정 콘솔 URL은 다음과 같습니다 https://accounts.azuredatabricks.net.

from databricks.sdk import AccountClient

a = AccountClient(
  host          = retrieve_account_console_url(),
  account_id    = retrieve_account_id(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

작업 영역 수준 작업의 경우, 특히 기본 인증:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

직접 구성의 retrieve 경우 자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 Azure KeyVault와 같은 다른 구성 저장소에서 값을 검색합니다. 이 경우 호스트는 Azure Databricks 작업 영역별 URL입니다. 예를 들면 다음과 같습니다 https://adb-1234567890123456.7.azuredatabricks.net.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host          = retrieve_workspace_url(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

Python을 사용하고 Databricks 클라이언트 통합 인증을 구현 하는 Databricks 도구 및 SDK를 사용하여 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.

참고 항목

Visual Studio Code용 Databricks 확장은 Python을 사용하지만 아직 OAuth M2M 인증을 구현하지 않았습니다.

Java

작업 영역 수준 작업의 경우 기본 인증:

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

직접 구성의 retrieve 경우(자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 Azure KeyVault와 같은 다른 구성 저장소에서 값을 검색합니다). 이 경우 호스트는 Azure Databricks 작업 영역별 URL입니다. 예를 들면 다음과 같습니다 https://adb-1234567890123456.7.azuredatabricks.net.

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Java를 사용하고 Databricks 클라이언트 통합 인증을 구현 하는 Databricks 도구 및 SDK를 사용하여 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.

Go

계정 수준 작업의 경우 기본 인증:

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

직접 구성의 retrieve 경우(자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 Azure KeyVault와 같은 다른 구성 저장소에서 값을 검색합니다). 이 경우 Azure Databricks 계정 콘솔 URL은 다음과 같습니다 https://accounts.azuredatabricks.net.

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:         retrieveAccountConsoleUrl(),
  AccountId:    retrieveAccountId(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

작업 영역 수준 작업의 경우 기본 인증:

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

직접 구성의 retrieve 경우(자리 표시자를 사용자 고유의 구현으로 바꿔서 콘솔 또는 Azure KeyVault와 같은 다른 구성 저장소에서 값을 검색합니다). 이 경우 호스트는 Azure Databricks 작업 영역별 URL입니다. 예를 들면 다음과 같습니다 https://adb-1234567890123456.7.azuredatabricks.net.

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

Go를 사용하고 Databricks 클라이언트 통합 인증을 구현하는 Databricks 도구 및 SDK를 사용하여 인증하는 방법에 대한 자세한 내용은 Azure Databricks 계정 또는 작업 영역으로 Go용 Databricks SDK 인증을 참조하세요.

OAuth M2M(컴퓨터 대 컴퓨터) 인증을 위한 액세스 토큰을 수동으로 생성 및 사용

Databricks 클라이언트 통합 인증 표준을 구현 하는 Azure Databricks 도구 및 SDK는 OAuth M2M 인증 에 필요한 경우 사용자를 대신하여 Azure Databricks OAuth 액세스 토큰을 자동으로 생성, 새로 고침 및 사용합니다.

어떤 이유로 OAuth M2M 인증을 위해 Azure Databricks OAuth 액세스 토큰을 수동으로 생성, 새로 고침 또는 사용해야 하는 경우 이 섹션의 지침을 따릅니다.

1단계: 서비스 주체 및 OAuth 비밀 만들기

Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체 및 해당 Azure Databricks OAuth 비밀이 아직 없는 경우 이 문서의 시작 부분에서 1-5단계를 완료하여 만듭니다.

2단계: 수동으로 액세스 토큰 생성

Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체의 클라이언트 ID 및 Azure Databricks OAuth 비밀을 사용하여 Azure Databricks OAuth 액세스 토큰을 요청하여 계정 수준 REST API 및 작업 영역 수준 REST API 모두에 인증할 수 있습니다. 토큰은 1시간 후에 만료됩니다. 만료 후 새 Azure Databricks OAuth 액세스 토큰을 요청해야 합니다. OAuth 액세스 토큰의 범위는 토큰을 만드는 수준에 따라 달라집니다. 다음과 같이 계정 수준 또는 작업 영역 수준에서 토큰을 만들 수 있습니다.

  • Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체가 액세스할 수 있는 계정 및 작업 영역 수준 REST API를 호출하려면 계정 수준에서 액세스 토큰을 수동으로 생성합니다.
    • Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체가 액세스할 수 있는 하나의 작업 영역 내에서 REST API를 호출하려면 해당 작업 영역에 대해서만 작업 영역 수준에서 액세스 토큰을 수동으로 생성할 수 있습니다.

계정 수준 액세스 토큰 수동 생성

계정 수준에서 만든 Azure Databricks OAuth 액세스 토큰은 계정의 Databricks REST API 및 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체가 할당된 모든 작업 영역에서 사용할 수 있습니다.

  1. 계정 관리자 권한으로 계정 콘솔에 로그인합니다.

  2. 오른쪽 위 모서리에 있는 사용자 이름 옆에 있는 아래쪽 화살표를 클릭합니다.

  3. 계정 ID를 복사합니다.

  4. 다음 URL을 복사한 계정 ID로 바꿔 <my-account-id> 토큰 엔드포인트 URL을 생성합니다.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. 토큰 엔드포인트 URL, Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체의 클라이언트 ID(애플리케이션 ID라고도 함) 및 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대해 만든 Azure Databricks OAuth 비밀을 사용하여 Azure Databricks OAuth 액세스 토큰을 요청하는 등의 curl 클라이언트를 사용합니다. 범위는 all-apis Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대한 액세스 권한이 부여된 모든 Databricks REST API에 액세스하는 데 사용할 수 있는 Azure Databricks OAuth 액세스 토큰을 요청합니다.

    • 위의 토큰 엔드포인트 URL로 바꿉다 <token-endpoint-URL> .
    • 애플리케이션 ID라고도 하는 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체의 클라이언트 ID로 바꿉 <client-id> 니다.
    • Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대해 만든 Azure Databricks OAuth 비밀로 바꿉 <client-secret> 니다.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    다음과 유사한 응답이 생성됩니다.

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "scope": "all-apis",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    access_token 응답에서 복사합니다.

    Azure Databricks OAuth 액세스 토큰은 1시간 후에 만료됩니다. 만료 후 새 Azure Databricks OAuth 액세스 토큰을 수동으로 생성해야 합니다.

  6. 3단계: Databricks REST API 호출로 건너뜁니다.

작업 영역 수준 액세스 토큰 수동으로 생성

Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체가 계정 관리자이거나 다른 작업 영역의 구성원인 경우에도 작업 영역 수준에서 만든 Azure Databricks OAuth 액세스 토큰은 해당 작업 영역의 REST API에만 액세스할 수 있습니다.

  1. Azure Databricks 배포의 작업 영역 URL로 바꿔 https://<databricks-instance> 토큰 엔드포인트 URL을 생성합니다.

    https://<databricks-instance>/oidc/v1/token
    
  2. 토큰 엔드포인트 URL, Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체의 클라이언트 ID(애플리케이션 ID라고도 함) 및 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대해 만든 Azure Databricks OAuth 비밀을 사용하여 Azure Databricks OAuth 액세스 토큰을 요청하는 등의 curl 클라이언트를 사용합니다. 범위는 all-apis Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체가 토큰을 요청하는 작업 영역 내에서 액세스 권한을 부여받은 모든 Databricks REST API에 액세스하는 데 사용할 수 있는 Azure Databricks OAuth 액세스 토큰을 요청합니다.

    • 위의 토큰 엔드포인트 URL로 바꿉다 <token-endpoint-URL> .

    • 애플리케이션 ID라고도 하는 Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체의 클라이언트 ID로 바꿉 <client-id> 니다.

    • Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대해 만든 Azure Databricks OAuth 비밀로 바꿉 <client-secret> 니다.

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      

      다음과 유사한 응답이 생성됩니다.

      {
        "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
        "scope": "all-apis",
        "token_type": "Bearer",
        "expires_in": 3600
      }
      

      access_token 응답에서 복사합니다.

      Azure Databricks OAuth 액세스 토큰은 1시간 후에 만료됩니다. 만료 후 새 Azure Databricks OAuth 액세스 토큰을 수동으로 생성해야 합니다.

3단계: Databricks REST API 호출

이제 Azure Databricks OAuth 액세스 토큰을 사용하여 Azure Databricks 계정 수준 REST API 및 작업 영역 수준 REST API에 인증할 수 있습니다. Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체는 계정 수준 REST API를 호출하는 계정 관리자여야 합니다.

Bearer 인증을 사용하여 헤더에 토큰을 포함할 수 있습니다. 이 방법은 curl에서 또는 사용자가 빌드한 클라이언트에서 사용할 수 있습니다.

계정 수준 REST API 요청 예제

이 예제에서는 인증을 사용하여 Bearer 계정과 연결된 모든 작업 영역 목록을 가져옵니다.

  • Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대한 Azure Databricks OAuth 액세스 토큰으로 바꿉 <oauth-access-token> 니다.
  • 계정 ID로 대체 <account-id> 합니다.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces'

작업 영역 수준 REST API 요청 예제

이 예제에서는 Bearer 인증을 사용하여 지정된 작업 영역에 모든 사용 가능한 클러스터를 나열합니다.

  • Azure Databricks 관리 서비스 주체 또는 Microsoft Entra ID 관리 서비스 주체에 대한 Azure Databricks OAuth 액세스 토큰으로 바꿉 <oauth-access-token> 니다.

  • 다음과 비슷한 형식의 기본 작업 영역 URL로 adb-1111111111111111.1.azuredatabricks.net바꿉 <workspace-URL> 다.

    export OAUTH_TOKEN=<oauth-access-token>
    
    curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
    'https://<workspace-URL>/api/2.0/clusters/list'