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 계정 수준 작업의 경우
--host <account-console-url> --account-id <account-id>
입니다. - Azure Databricks 작업 영역 수준 작업의 경우
--host <workspace-url>
입니다.
이 명령을 실행한 후 웹 브라우저의 지침에 따라 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 익스텐션의 경우 다음을 수행하세요.
- 구성 창에서 Databricks 구성을 클릭합니다.
- 명령 팔레트의 Databricks 호스트에 작업 영역별 URL(예:
https://adb-1234567890123456.7.azuredatabricks.net
)을 입력한 다음Enter
를 누릅니다. - OAuth(사용자 대 컴퓨터)를 선택합니다.
- 웹 브라우저 내에서 화면상의 지침을 완료하여 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 찾기를 참조하세요.
참고 항목
이미 설정된 host
와 account_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로 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.
- Python용 Databricks Connect 클라이언트 설정
- Visual Studio Code용 Databricks 확장에 대한 인증 설정
- Azure Databricks 계정 또는 작업 영역을 사용하여 Python용 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 찾기를 참조하세요.
참고 항목
이미 설정된 host
와 account_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로 인증하는 방법에 대한 자세한 내용은 다음을 참조하세요.
- Scala용 Databricks Connect 클라이언트 설정(Scala용 Databricks Connect 클라이언트는 포함된 Java용 Databricks SDK를 인증에 사용)
- Azure Databricks 계정 또는 작업 영역을 사용하여 Java용 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 찾기를 참조하세요.
참고 항목
이미 설정된 host
와 account_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 계정 수준 또는 작업 영역 수준에서 인증 코드를 생성할 수 있습니다.
- Azure Databricks 사용자 계정에 액세스할 수 있는 계정 및 작업 영역 내에서 계정 수준 및 작업 영역 수준 REST API를 호출하려면 계정 수준에서 인증 코드를 생성합니다.
- 사용자 계정에 액세스할 수 있는 하나의 작업 영역 내에서 REST API를 호출하려면 해당 작업 영역에 대해서만 작업 영역 수준에서 인증 코드를 생성할 수 있습니다.
계정 수준 인증 코드 생성
계정 관리자 권한으로 계정 콘솔에 로그인합니다.
오른쪽 위에서 사용자 이름 옆의 아래쪽 화살표를 클릭합니다.
계정 ID를 복사합니다.
웹 브라우저의 주소 표시줄에서 다음 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
메시지가 표시되면 화면상의 지시에 따라 Azure Databricks 계정에 로그인합니다.
웹 브라우저의 주소 표시줄에서 인증 코드를 복사합니다. 인증 코드는 URL의
code=
문자와&
문자 사이의 전체 문자열입니다. 예를 들어 다음 URL의 인증 코드는dcod...7fe6
입니다.http://localhost:8020/?code=dcod...7fe6&state=<state>
이 응답 URL의
<state>
값이 요청 URL에서 제공한state
값과 일치하는지 시각적으로 확인하여 이 인증 코드의 무결성을 확인해야 합니다. 값이 다른 경우 손상될 수 있으므로 이 인증 코드를 사용하면 안 됩니다.계정 수준 액세스 토큰 생성으로 건너뜁니다.
작업 영역 수준 인증 코드 생성
웹 브라우저의 주소 표시줄에서 다음 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
메시지가 표시되면 화면상의 지시에 따라 Azure Databricks 작업 영역에 로그인합니다.
웹 브라우저의 주소 표시줄에서 인증 코드를 복사합니다. 인증 코드는 URL의
code=
문자와&
문자 사이의 전체 문자열입니다. 예를 들어 다음 URL의 인증 코드는dcod...7fe6
입니다.http://localhost:8020/?code=dcod...7fe6&state=<state>
이 응답 URL의
<state>
값이 요청 URL에서 제공한state
값과 일치하는지 시각적으로 확인하여 이 인증 코드의 무결성을 확인해야 합니다. 값이 다른 경우 손상될 수 있으므로 이 인증 코드를 사용하면 안 됩니다.
3단계: 인증 코드를 사용하여 OAuth 액세스 토큰 생성
다음과 같이 이전 단계의 OAuth 인증 코드를 사용하여 Azure Databricks OAuth 액세스 토큰을 생성합니다.
- Azure Databricks 사용자 계정에 액세스할 수 있는 계정 및 작업 영역 내에서 계정 수준 및 작업 영역 수준 REST API를 호출하려면, 계정 수준 인증 코드를 사용하여 계정 수준에서 인증 코드를 생성합니다.
- 사용자 계정에 액세스할 수 있는 하나의 작업 영역 내에서 REST API를 호출하려면 작업 영역 수준 인증 코드를 사용하여 해당 작업 영역에 대해서만 작업 영역 수준에서 액세스 토큰을 생성할 수 있습니다.
계정 수준 액세스 토큰 생성
계정 수준 인증 코드와 함께
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>"
응답에서 계정 수준 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 호출로 건너뜁니다.
작업 영역 수준 액세스 토큰 생성
작업 영역 수준 인증 코드와 함께
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>"
응답에서 작업 영역 수준 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"