암호 기반 인증에 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
"사용자 이름" 또는 "담당자"라고도 함) 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를 사용합니다.
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>
다음 단계
이제 암호를 사용하여 서비스 주체를 사용하는 방법을 배웠으므로 다음 단계를 진행하여 인증서 기반 인증에서 서비스 주체를 사용하는 방법을 알아봅니다.
Azure CLI