다음을 통해 공유


서비스 주체를 사용하여 작업 영역에서 인증

대화형 인증을 사용하거나 사용자 계정으로 인증하는 것이 부적절한 경우도 있습니다. 이러한 경우는 웹 서비스, 다른 작업자 역할 또는 자동화된 시스템에서 작업을 제출하려고 할 때 발생할 수 있습니다. 한 가지 옵션은 설명하는 관리 ID를 구성하는 것이고, 이 문서에서 설명하는 서비스 주체를 사용하여 인증하는 옵션도 있습니다.

필수 구성 요소: 서비스 주체 및 애플리케이션 비밀 만들기

서비스 주체로 인증하려면 먼저 서비스 주체를 만들어야 합니다.

서비스 주체를 만들고 액세스 권한을 할당하고 자격 증명을 만들려면 다음을 수행합니다.

  1. Azure AD 애플리케이션 만들기:

    참고 항목

    리디렉션 URI를 설정할 필요가 없습니다.

    1. 만든 후에는 애플리케이션(클라이언트) ID 및 디렉터리(테넌트) ID적어 씁니다.
  2. 애플리케이션으로 로그인하려면 자격 증명을 만듭니다.

    1. 애플리케이션에 대한 설정에서 인증서 및 비밀을 선택합니다.
    2. 클라이언트 비밀에서 새 비밀 만들기를 선택합니다.
    3. 설명 및 기간을 입력한 다음 추가를 선택합니다.
    4. 비밀 값을 안전한 장소에 즉시 복사합니다. 다시 볼 수 없습니다!
  3. 서비스 주체에게 작업 영역에 액세스할 수 있는 권한을 부여합니다.

    1. Azure Portal을 엽니다.
    2. 검색 창에서 작업 영역을 만든 리소스 그룹의 이름을 입력합니다. 결과에 올 때 리소스 그룹을 선택합니다.
    3. 리소스 그룹 개요에서 액세스 제어(IAM)를 선택합니다.
    4. 역할 할당 추가를 선택합니다.
    5. 서비스 주체를 검색하여 선택합니다.
    6. 기여자 또는 소유자 역할을 할당합니다.

참고 항목

리소스 그룹 또는 작업 영역에서 역할 할당을 만들려면 역할 할당 범위에서 소유자 또는 사용자 액세스 관리자여야 합니다. 구독에서 서비스 주체를 만들 수 있는 권한이 없는 경우에는 Azure 구독의 ‘소유자’ 또는 ‘관리자’로부터 권한을 요청해야 합니다.

리소스 그룹 또는 작업 영역 수준에서만 권한이 있는 경우 다음을 사용하여 기여자 역할 아래에 서비스 주체를 만들 수 있습니다.

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>

서비스 주체로 인증

옵션 1: 환경 변수 사용: 개체 만들기에 Workspace 사용되는 기본 자격 증명은 여러 유형의 인증을 시도하는 DefaultAzureCredential입니다. 첫 번째는 EnvironmentCredential이며, 다음과 같은 환경 변수를 통해 서비스 주체 자격 증명을 전달합니다.

  • AZURE_TENANT_ID: 서비스 주체 테넌트의 ID입니다. '디렉터리' ID라고도 합니다.
  • AZURE_CLIENT_ID: 서비스 주체의 클라이언트 ID
  • AZURE_CLIENT_SECRET: 서비스 주체의 클라이언트 암호 중 하나

옵션 2: ClientSecretCredential 사용: Workspace 개체를 인스턴스화하는 동안 ClientSecretCredential을 전달하거나 credentials 속성을 설정합니다.

from azure.identity import ClientSecretCredential

tenant_id = os.environ["AZURE_TENANT_ID"]
client_id = os.environ["AZURE_CLIENT_ID"]
client_secret = os.environ["AZURE_CLIENT_SECRET"]
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)

workspace.credentials = credential

참고 항목

workspace.login()메서드는 더 이상 사용되지 않으며 더 이상 필요하지 않습니다. 서비스에 대한 호출이 처음 있을 때 생성자 또는 해당 속성에 전달된 자격 증명을 사용하여 인증을 Workspace 시도합니다 credentials . 자격 증명이 전달되지 않은 경우 DefaultAzureCredential에서 여러 인증 방법을 시도합니다.