다음을 통해 공유


Azure 서비스 주체를 비밀번호 기반 인증으로 사용

서비스 주체를 만들 때 사용하는 로그인 인증 유형을 선택합니다. Azure 서비스 주체에 사용할 수 있는 인증 유형에는 암호 기반 인증 및 인증서 기반 인증의 두 가지 유형이 있습니다. 암호 기반 인증은 서비스 주체에 대해 학습할 때 사용하는 것이 좋지만 애플리케이션에 인증서 기반 인증 을 사용하는 것이 좋습니다.

자습서의 이 단계에서는 서비스 주체 암호를 사용하여 Azure 리소스에 액세스하는 방법을 설명합니다.

암호를 포함하는 서비스 주체 만들기

az ad sp create-for-rbac의 기본 동작은 임의 암호로 서비스 주체를 만드는 것입니다.

az ad sp create-for-rbac --name myServicePrincipalName \
                         --role reader \
                         --scopes /subscriptions/mySubscriptionId/resourceGroups/myResourceGroupName

출력 콘솔:

{
  "appId": "myServicePrincipalId",
  "displayName": "myServicePrincipalName",
  "password": "myServicePrincipalPassword",
  "tenant": "myOrganizationTenantId"
}

암호 인증을 사용하는 서비스 주체의 출력에는 password 키가 포함됩니다. 이 값을 복사해야 합니다. 다시 가져올 수 없습니다. 암호를 분실한 경우, 서비스 주체 자격 증명을 다시초기화하십시오.

서비스 주체 계정을 사용하여 비밀번호로 로그인하세요.

로그인하여 새 서비스 주체의 자격 증명 및 권한을 테스트합니다. 서비스 주체로 로그인하려면 appId (서비스 주체 ID, 사용자 이름 또는 담당자라고도 함), tenant, 및 password가 필요합니다. 예제는 다음과 같습니다.

az login --service-principal \
         --username myServicePrincipalId \
         --password myServicePrincipalPassword \
         --tenant myOrganizationTenantID

알 수 없는 appId 또는 --tenant가 있는 경우 az ad sp list 명령을 사용하여 확인하세요.

spID=$(az ad sp list --display-name myServicePrincipalName --query "[].{spID:appId}" --output tsv)
tenantID=$(az ad sp list --display-name myServicePrincipalName --query "[].{tenant:appOwnerOrganizationId}" --output tsv)
echo "Using appId $spID in tenant $tenantID"

az login --service-principal \
         --username $spID \
         --password {paste your password here} \
         --tenant $tenantID

2단계 인증이 필요한 조직에서 테스트하는 경우 오류 메시지 "... 대화형 인증이 필요합니다..." 가 표시됩니다. 또는 인증서 또는 관리 ID를 사용합니다.

중요합니다

콘솔에 암호를 표시하지 않고 az login을(를) 대화형으로 사용하는 경우, read -s 명령을 bash에서 사용하십시오.

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>

PowerShell에서 Get-Credential cmdlet을 사용합니다.

$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>

다음 단계

이제 암호를 사용하여 서비스 주체를 사용하는 방법을 배웠으므로 다음 단계를 진행하여 인증서 기반 인증에서 서비스 주체를 사용하는 방법을 알아봅니다.