다음을 통해 공유


OAuth(OAuth U2M)를 사용하여 사용자 계정으로 Azure Databricks에 액세스 인증

Azure Databricks는 OAuth U2M(사용자 대 머신) 인증을 사용하여 사용자를 대신하여 Azure Databricks 계정 및 작업 영역 리소스에 대한 CLI 및 API 액세스를 사용하도록 설정합니다. 사용자가 처음에 로그인하고 OAuth 인증 요청에 동의하면 해당 시점부터 사용자를 대신하여 토큰 기반 인증을 수행하기 위해 참여 도구 또는 SDK에 OAuth 토큰이 제공됩니다. OAuth 토큰의 수명은 한 시간이며, 그 다음에는 도구 또는 SDK가 새 토큰을 가져오기 위해 자동 백그라운드 시도를 수행하는데 이 새 토큰도 한 시간 동안 유효합니다.

Azure Databricks는 OAuth를 사용하여 사용자 계정에 대한 액세스를 인증하는 두 가지 방법을 지원합니다.

  • 대부분 자동으로 Databricks 통합 클라이언트 인증 지원을 사용합니다. 특정 Azure Databricks SDK(예: Databricks Terraform SDK) 및 도구를 사용하는 경우 이 간소화된 방법을 사용합니다. 지원되는 도구 및 SDK는 Databricks 통합 클라이언트 인증에 나열됩니다.
  • 수동으로 OAuth 코드 검증 도구/챌린지 쌍 및 인증 코드를 직접 생성하고 이를 사용하여 구성에서 제공할 초기 OAuth 토큰을 만듭니다. Databricks 통합 클라이언트 인증에서 지원하는 API를 사용하지 않는 경우 이 방법을 사용합니다. 자세한 내용은 OAuth U2M(사용자 대 컴퓨터) 인증에 대한 액세스 토큰을 수동으로 생성 및 사용을 참조하세요.

Databricks 통합 클라이언트 인증을 사용한 U2M 인증

참고 항목

인증 구성을 시작하기 전에 작업 영역 개체에 대한 특정 작업 범주에 대한 ACL 권한을 검토하고 계정에 필요한 액세스 수준이 있는지 결정합니다. 추가 세부 정보는 액세스 제어 목록을 참조하세요.

Azure Databricks SDK 및 통합 클라이언트 인증을 지원하는 도구를 사용하여 OAuth U2M 인증을 수행하려면 코드 내에 다음을 통합합니다.

Environment

도구 또는 SDK를 사용하여 특정 Azure Databricks 인증 유형에 환경 변수를 사용하려면 Azure Databricks 리소스에 대한 액세스 인증이나 도구 또는 SDK 설명서를 참조하세요. 클라이언트 통합 인증에 대한 환경 변수 및 필드클라이언트 통합 인증에 대한 기본 메서드도 참조하세요.

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

  • DATABRICKS_HOST, Azure Databricks 계정 콘솔 URL의 값인 https://accounts.azuredatabricks.net으로 설정합니다.
  • DATABRICKS_ACCOUNT_ID

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

  • DATABRICKS_HOST, Azure Databricks 작업 영역별 URL의 값(예: https://adb-1234567890123456.7.azuredatabricks.net)으로 설정합니다.

프로필

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

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

[<some-unique-configuration-profile-name>]
host       = <account-console-url>
account_id = <account-id>

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

[<some-unique-configuration-profile-name>]
host = <workspace-url>

CLI

Databricks CLI의 경우 다음 옵션을 사용하여 databricks auth login 명령을 실행합니다.

이 명령을 실행한 후 웹 브라우저의 지침에 따라 Azure Databricks 계정 또는 작업 영역에 로그인합니다.

추가 세부 정보는 Databricks CLI를 사용한 OAuth U2M 인증을 참조하세요.

연결

참고 항목

OAuth U2M 인증은 다음 Databricks Connect 버전에서 지원됩니다.

  • Python의 경우 Databricks Runtime 13.1 이상 버전용 Databricks Connect.
  • Scala의 경우 Databricks Runtime 13.3 LTS 이상 버전용 Databricks Connect.

Databricks Connect의 경우 다음 중 하나를 수행할 수 있습니다.

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

.databrickscfg 파일의 값은 항상 환경 변수보다 우선 순위를 갖습니다.

파일에서 이러한 환경 변수 또는 값을 사용하여 Databricks Connect 클라이언트를 초기화하려면 Databricks Connect에 대한 컴퓨팅 구성을 참조하세요.databrickscfg.

VS Code

Visual Studio Code용 Databricks 익스텐션의 경우 다음을 수행하세요.

  1. 구성 창에서 Databricks 구성을 클릭합니다.
  2. 명령 팔레트Databricks 호스트작업 영역별 URL(예: https://adb-1234567890123456.7.azuredatabricks.net)을 입력한 다음 Enter를 누릅니다.
  3. OAuth(사용자 대 컴퓨터)를 선택합니다.
  4. 웹 브라우저 내에서 화면상의 지침을 완료하여 Azure Databricks 계정으로 인증을 완료하고 모든 API 액세스를 허용합니다.

추가 세부 정보는 Databricks CLI를 사용한 OAuth U2M 인증을 참조하세요.

Terraform

참고 항목

OAuth U2M 인증은 아직 지원되지 않습니다.

Python

계정 수준작업 영역 수준 작업의 경우 Python 코드를 실행하기 전에 Databricks CLI를 사용하여 다음 명령을 실행해야 합니다. 이 명령은 Databricks CLI에 컴퓨터의 사용자 홈 폴더 내 경로 .databricks/token-cache.json에 필요한 OAuth 토큰을 생성하고 캐시하도록 지시합니다.

Databricks 계정 수준 작업 구성

databricks auth login --host <account-console-url> --account-id <account-id>

다음 자리 표시자를 바꿉니다.

  • <account-console-url>https://accounts.azuredatabricks.net 값으로 바꿉니다. (Azure Databricks 작업 영역 URL의 값으로 설정하지 마세요.)
  • <account-id>를 Azure Databricks 계정의 값으로 바꿉니다. 계정 ID 찾기를 참조하세요.

참고 항목

이미 설정된 hostaccount_id 필드가 있는 기존 Azure Databricks 구성 프로필이 있는 경우, --host <account-console-url> --account-id <account-id>--profile <profile-name>으로 대체할 수 있습니다.

auth login 명령을 실행한 후 계정 로그인 URL 및 계정 ID를 Azure Databricks 구성 프로필로 저장하라는 메시지가 표시됩니다. 메시지가 표시되면 .databrickscfg 파일에 새 프로필 또는 기존 프로필의 이름을 입력합니다. .databrickscfg 파일에서 이름이 같은 기존 프로필을 덮어씁니다.

메시지가 표시되면 웹 브라우저의 화면상의 지침을 완료하여 로그인을 완료합니다. 그런 다음, 다음 코드 조각 중 하나와 유사한 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       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

Databricks 작업 영역 수준 작업 구성

databricks auth login --host <worskpace-url>

자리 표시자 <workspace-url>을 대상 Azure Databricks 작업 영역별 URL로 바꿉니다(예: https://adb-1234567890123456.7.azuredatabricks.net).

참고 항목

이미 설정된 host 필드가 있는 기존 Azure Databricks 구성 프로필이 있는 경우, --host <workspace-url>--profile <profile-name>으로 대체할 수 있습니다.

auth login 명령을 실행한 후 작업 영역 URL을 Azure Databricks 구성 프로필로 저장하라는 메시지가 표시됩니다. 메시지가 표시되면 .databrickscfg 파일에 새 프로필 또는 기존 프로필의 이름을 입력합니다. .databrickscfg 파일에서 이름이 같은 기존 프로필을 덮어씁니다.

메시지가 표시되면 웹 브라우저의 화면상의 지침을 완료하여 로그인을 완료합니다. 그런 다음, 다음 코드 조각 중 하나와 유사한 Python 코드를 사용합니다.

기본 인증의 경우는 다음과 같습니다.

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 = retrieveWorkspaceUrl())
# ...

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

Java

계정 수준작업 영역 수준 작업의 경우 Java 코드를 실행하기 전에 Databricks CLI를 사용하여 다음 명령을 실행해야 합니다. 이 명령은 Databricks CLI에 컴퓨터의 사용자 홈 폴더 내 경로 .databricks/token-cache.json내에 필요한 OAuth 토큰을 생성하고 캐시하도록 지시합니다.

Databricks 계정 수준 작업 구성

databricks auth login --host <account-console-url> --account-id <account-id>

다음 자리 표시자를 바꿉니다.

  • <account-console-url>https://accounts.azuredatabricks.net 값으로 바꿉니다. (Azure Databricks 작업 영역 URL의 값으로 설정하지 마세요.)
  • <account-id>를 Azure Databricks 계정의 값으로 바꿉니다. 계정 ID 찾기를 참조하세요.

참고 항목

이미 설정된 hostaccount_id 필드가 있는 기존 Azure Databricks 구성 프로필이 있는 경우, --host <account-console-url> --account-id <account-id>--profile <profile-name>으로 대체할 수 있습니다.

auth login 명령을 실행한 후 계정 로그인 URL 및 계정 ID를 Azure Databricks 구성 프로필로 저장하라는 메시지가 표시됩니다. 메시지가 표시되면 .databrickscfg 파일에 새 프로필 또는 기존 프로필의 이름을 입력합니다. .databrickscfg 파일에서 이름이 같은 기존 프로필을 덮어씁니다.

메시지가 표시되면 웹 브라우저의 화면상의 지침을 완료하여 로그인을 완료합니다. 그런 다음, 다음 코드 조각 중 하나와 유사한 Java 코드를 사용합니다.

기본 인증의 경우는 다음과 같습니다.

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

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

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

Databricks 작업 영역 수준 작업 구성

작업 영역 수준 작업의 경우 Java 코드를 실행하기 전에 먼저 Databricks CLI를 사용하여 다음 명령을 실행해야 합니다. 이 명령은 Databricks CLI에 컴퓨터의 사용자 홈 폴더 내 경로 .databricks/token-cache.json에 필요한 OAuth 토큰을 생성하고 캐시하도록 지시합니다.

databricks auth login --host <worskpace-url>

자리 표시자 <workspace-url>을 대상 Azure Databricks 작업 영역별 URL로 바꿉니다(예: https://adb-1234567890123456.7.azuredatabricks.net).

참고 항목

이미 설정된 host 필드가 있는 기존 Azure Databricks 구성 프로필이 있는 경우, --host <workspace-url>--profile <profile-name>으로 대체할 수 있습니다.

auth login 명령을 실행한 후 작업 영역 URL을 Azure Databricks 구성 프로필로 저장하라는 메시지가 표시됩니다. 메시지가 표시되면 .databrickscfg 파일에 새 프로필 또는 기존 프로필의 이름을 입력합니다. .databrickscfg 파일에서 이름이 같은 기존 프로필을 덮어씁니다.

메시지가 표시되면 웹 브라우저의 화면상의 지침을 완료하여 로그인을 완료합니다. 그런 다음, 다음 코드 조각 중 하나와 유사한 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())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

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

Go

계정 수준작업 영역 수준 작업의 경우 Go 코드를 실행하기 전에 Databricks CLI를 사용하여 다음 명령을 실행해야 합니다. 이 명령은 Databricks CLI에 컴퓨터의 사용자 홈 폴더 내 경로 .databricks/token-cache.json에 필요한 OAuth 토큰을 생성하고 캐시하도록 지시합니다.

Databricks 계정 수준 작업 구성

databricks auth login --host <account-login-url> --account-id <account-id>

다음 자리 표시자를 바꿉니다.

  • <account-console-url>https://accounts.azuredatabricks.net 값으로 바꿉니다. (Azure Databricks 작업 영역 URL의 값으로 설정하지 마세요.)
  • <account-id>를 Azure Databricks 계정의 값으로 바꿉니다. 계정 ID 찾기를 참조하세요.

참고 항목

이미 설정된 hostaccount_id 필드가 있는 기존 Azure Databricks 구성 프로필이 있는 경우, --host <account-console-url> --account-id <account-id>--profile <profile-name>으로 대체할 수 있습니다.

auth login 명령을 실행한 후 계정 로그인 URL 및 계정 ID를 Azure Databricks 구성 프로필로 저장하라는 메시지가 표시됩니다. 메시지가 표시되면 .databrickscfg 파일에 새 프로필 또는 기존 프로필의 이름을 입력합니다. .databrickscfg 파일에서 이름이 같은 기존 프로필을 덮어씁니다.

메시지가 표시되면 웹 브라우저의 화면상의 지침을 완료하여 로그인을 완료합니다. 그런 다음, 다음 코드 조각 중 하나와 유사한 Go 코드를 사용합니다.

기본 인증의 경우는 다음과 같습니다.

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

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

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

Databricks 작업 영역 수준 작업 구성

작업 영역 수준 작업의 경우 Go 코드를 실행하기 전에 먼저 Databricks CLI를 사용하여 다음 명령을 실행해야 합니다. 이 명령은 Databricks CLI에 컴퓨터의 사용자 홈 폴더 내 경로 .databricks/token-cache.json에 필요한 OAuth 토큰을 생성하고 캐시하도록 지시합니다.

databricks auth login --host <worskpace-url>

자리 표시자 <workspace-url>을 대상 Azure Databricks 작업 영역별 URL로 바꿉니다(예: https://adb-1234567890123456.7.azuredatabricks.net).

참고 항목

이미 설정된 host 필드가 있는 기존 Azure Databricks 구성 프로필이 있는 경우, --host <workspace-url>--profile <profile-name>으로 대체할 수 있습니다.

auth login 명령을 실행한 후 작업 영역 URL을 Azure Databricks 구성 프로필로 저장하라는 메시지가 표시됩니다. 메시지가 표시되면 .databrickscfg 파일에 새 프로필 또는 기존 프로필의 이름을 입력합니다. .databrickscfg 파일에서 이름이 같은 기존 프로필을 덮어씁니다.

메시지가 표시되면 웹 브라우저의 화면상의 지침을 완료하여 로그인을 완료합니다. 그런 다음, 다음 코드 조각 중 하나와 유사한 Go 코드를 사용합니다.

기본 인증의 경우는 다음과 같습니다.

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

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

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

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

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

참고 항목

이 섹션은 Databricks 클라이언트 통합 인증 표준과 작동하지 않는 타사 도구 또는 서비스를 사용하는 사용자를 위해 제공됩니다.

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

1단계: OAuth 코드 검증 도구 및 코드 챌린지 쌍 생성

OAuth U2M 인증을 위해 액세스 토큰을 수동으로 생성하고 사용하려면 먼저 코드 검증 도구에서 파생된 OAuth 코드 검증 도구와 OAuth 코드 챌린지가 있어야 합니다. 2단계의 코드 챌린지를 사용하여 OAuth 인증 코드를 생성합니다. 3단계의 코드 검증 도구와 인증 코드를 사용하여 OAuth 액세스 토큰을 생성합니다.

참고 항목

코드 검증 도구 및 코드 챌린지에 대해 인코딩되지 않은 일반 텍스트 문자열을 기술적으로 사용할 수 있지만 그보다는 Databricks에서는 코드 검증 도구 및 코드 챌린지를 생성하는 OAuth 표준을 따를 것을 강력히 권장합니다.

특히 코드 검증 도구는 43자에서 128자 길이 사이의 집합 A-Z, a-z, 0-9 및 문장 부호 문자 -._~(하이픈, 마침표, 밑줄 및 물결표)를 사용하는 암호화된 임의 문자열이어야 합니다. 코드 챌린지는 코드 검증 도구의 SHA256 해시의 Base64-URL로 인코딩된 문자열이어야 합니다. 자세한 내용은 인증 요청을 참조하세요.

다음 Python 스크립트를 실행하여 고유한 코드 검증 도구 및 코드 챌린지 쌍을 신속하게 생성할 수 있습니다. 이 생성된 코드 검증 도구 및 코드 챌린지 쌍을 여러 번 다시 사용할 수 있지만, Databricks에서는 OAuth U2M 인증을 위한 액세스 토큰을 수동으로 생성할 때마다 새 코드 검증 도구 및 코드 챌린지 쌍을 생성하는 것이 좋습니다.

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

2단계: 인증 코드 생성

OAuth 인증 코드를 사용하여 Azure Databricks OAuth 액세스 토큰을 생성합니다. 인증 코드는 이를 사용하여 Azure Databricks OAuth 액세스 토큰을 생성한 후에 즉시 만료됩니다. 인증 코드의 범위는 생성한 수준에 따라 달라집니다. 다음과 같이 Azure Databricks 계정 수준 또는 작업 영역 수준에서 인증 코드를 생성할 수 있습니다.

계정 수준 인증 코드 생성

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

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

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

  4. 웹 브라우저의 주소 표시줄에서 다음 URL을 찾습니다. 가독성을 위해 줄 바꿈이 추가되었습니다. URL에 이러한 줄 바꿈이 포함되어서는 안 됩니다.

    다음 URL에서 다음을 바꿉니다.

    • <account-id>를 복사한 계정 ID로 바꿉니다.
    • <redirect-url>을 로컬 컴퓨터에 대한 리디렉션 URL로 대체합니다(예: http://localhost:8020).
    • <state>를 인증 코드의 무결성을 확인하는 데 사용할 수 있는 일부 일반 텍스트 문자열로 바꿉니다.
    • <code-challenge>를 1단계에서 생성한 코드 챌린지로 바꿉니다.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. 메시지가 표시되면 화면상의 지시에 따라 Azure Databricks 계정에 로그인합니다.

  6. 웹 브라우저의 주소 표시줄에서 인증 코드를 복사합니다. 인증 코드는 URL의 code= 문자와 & 문자 사이의 전체 문자열입니다. 예를 들어 다음 URL의 인증 코드는 dcod...7fe6입니다.

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    이 응답 URL의 <state> 값이 요청 URL에서 제공한 state 값과 일치하는지 시각적으로 확인하여 이 인증 코드의 무결성을 확인해야 합니다. 값이 다른 경우 손상될 수 있으므로 이 인증 코드를 사용하면 안 됩니다.

  7. 계정 수준 액세스 토큰 생성으로 건너뜁니다.

작업 영역 수준 인증 코드 생성

  1. 웹 브라우저의 주소 표시줄에서 다음 URL을 찾습니다. 가독성을 위해 줄 바꿈이 추가되었습니다. URL에 이러한 줄 바꿈이 포함되어서는 안 됩니다.

    다음 URL에서 다음을 바꿉니다.

    • <databricks-instance>를 Azure Databricks 작업 영역 인스턴스 이름으로 바꿉니다(예: adb-1234567890123456.7.azuredatabricks.net).
    • <redirect-url>을 로컬 컴퓨터에 대한 리디렉션 URL로 대체합니다(예: http://localhost:8020).
    • <state>를 인증 코드의 무결성을 확인하는 데 사용할 수 있는 일부 일반 텍스트 문자열로 바꿉니다.
    • <code-challenge>를 1단계에서 생성한 코드 챌린지로 바꿉니다.
    https://<databricks-instance>/oidc/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  2. 메시지가 표시되면 화면상의 지시에 따라 Azure Databricks 작업 영역에 로그인합니다.

  3. 웹 브라우저의 주소 표시줄에서 인증 코드를 복사합니다. 인증 코드는 URL의 code= 문자와 & 문자 사이의 전체 문자열입니다. 예를 들어 다음 URL의 인증 코드는 dcod...7fe6입니다.

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    이 응답 URL의 <state> 값이 요청 URL에서 제공한 state 값과 일치하는지 시각적으로 확인하여 이 인증 코드의 무결성을 확인해야 합니다. 값이 다른 경우 손상될 수 있으므로 이 인증 코드를 사용하면 안 됩니다.

3단계: 인증 코드를 사용하여 OAuth 액세스 토큰 생성

다음과 같이 이전 단계의 OAuth 인증 코드를 사용하여 Azure Databricks OAuth 액세스 토큰을 생성합니다.

계정 수준 액세스 토큰 생성

  1. 계정 수준 인증 코드와 함께 curl과 같은 클라이언트를 사용하여 계정 수준 OAuth 액세스 토큰을 생성합니다. 다음 curl 호출에서 다음 자리 표시자를 바꿉니다.

    • <account-id>를 2단계의 계정 ID로 바꿉니다.
    • <redirect-url>을 2단계의 리디렉션 URL로 바꿉니다.
    • <code-verifier>를 1단계에서 생성한 코드 검증 도구로 바꿉니다.
    • <authorization-code>를 2단계에서 생성한 계정 수준 인증 코드로 바꿉니다.
    curl --request POST \
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. 응답에서 계정 수준 OAuth 액세스 토큰을 복사합니다. 액세스 토큰은 access_token 개체의 전체 문자 문자열입니다. 예를 들어 다음 응답의 액세스 토큰은 eyJr...Dkag입니다.

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    이 액세스 토큰은 한 시간 안에 만료됩니다. 새 액세스 토큰을 생성하려면 1단계부터 이 절차를 반복합니다.

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

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

  1. 작업 영역 수준 인증 코드와 함께 curl과 같은 클라이언트를 사용하여 작업 영역 수준 OAuth 액세스 토큰을 생성합니다. 다음 curl 호출에서 다음 자리 표시자를 바꿉니다.

    • <databricks-instance>를 Azure Databricks 작업 영역 인스턴스 이름으로 바꿉니다(예: adb-1234567890123456.7.azuredatabricks.net).
    • <redirect-url>을 2단계의 리디렉션 URL로 바꿉니다.
    • <code-verifier>를 1단계에서 생성한 코드 검증 도구로 바꿉니다.
    • <authorization-code>를 2단계에서 생성한 작업 영역 수준 인증 코드로 바꿉니다.
    curl --request POST \
    https://<databricks-instance>/oidc/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. 응답에서 작업 영역 수준 OAuth 액세스 토큰을 복사합니다. 액세스 토큰은 access_token 개체의 전체 문자 문자열입니다. 예를 들어 다음 응답의 액세스 토큰은 eyJr...Dkag입니다.

    {
     "access_token": "eyJr...Dkag",
     "refresh_token": "doau...f26e",
     "scope": "all-apis offline_access",
     "token_type": "Bearer",
     "expires_in": 3600
    }
    

    이 액세스 토큰은 한 시간 안에 만료됩니다. 새 액세스 토큰을 생성하려면 1단계부터 이 절차를 반복합니다.

4단계: Databricks REST API 호출

계정 수준 또는 작업 영역 수준 OAuth 액세스 토큰을 사용하여 액세스 토큰의 범위에 따라 Azure Databricks 계정 수준 REST API 및 작업 영역 수준 REST API에 인증합니다. Azure Databricks 사용자 계정은 계정 수준 REST API를 호출하는 계정 관리자여야 합니다.

계정 수준 REST API 요청 예제

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

  • <oauth-access-token>을 계정 수준 OAuth 액세스 토큰으로 바꿉니다.
  • <account-id>를 계정 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 인증과 함께 curl을 사용하여 지정된 작업 영역에 모든 가용 클러스터를 나열합니다.

  • <oauth-access-token>을 계정 수준 또는 작업 영역 수준 OAuth 액세스 토큰으로 바꿉니다.
  • <databricks-instance>를 Azure Databricks 작업 영역 인스턴스 이름으로 바꿉니다(예: adb-1234567890123456.7.azuredatabricks.net).
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"