다음을 통해 공유


암호 기반 인증에 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 키가 포함됩니다. 이 값은 검색할 수 없으므로 복사해야 합니다. 암호를 분실한 경우 서비스 주체 자격 증명을 다시 설정합니다.

암호를 사용하여 서비스 주체를 사용하여 로그인

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

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를 사용합니다.

Important

콘솔에 암호를 표시하지 않고 대화형으로 사용 az login 하려는 경우 다음 명령을 bash사용합니다read -s.

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>

다음 단계

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