다음을 통해 공유


Azure Resource Manager 워크로드 ID 서비스 연결 문제 해결

워크로드 ID 서비스 연결과 관련된 일반적인 문제를 디버깅하는 데 도움을 받으세요. 필요한 경우 서비스 연결을 수동으로 만드는 방법도 알아봅니다.

문제 해결 검사 목록

다음 검사 목록을 사용하여 워크로드 ID 서비스 연결 문제를 해결합니다.

  • 파이프라인 작업을 검토하여 워크로드 ID를 지원하는지 확인합니다.
  • 워크로드 ID 페더레이션이 테넌트에 대해 활성화되어 있는지 확인합니다.
  • 발급자 URL 및 페더레이션 주체 식별자가 정확한지 확인합니다.

다음 섹션에서는 문제와 해결 방법을 설명합니다.

파이프라인 작업 검토

모든 파이프라인 작업이 워크로드 ID를 지원하는 것은 아닙니다. 특히 작업의 Azure Resource Manager 서비스 연결 속성만 워크로드 ID 페더레이션을 사용합니다. 아래 표에서는 Azure DevOps에 포함된 작업에 대한 워크로드 ID 페더레이션 지원을 나열합니다. 마켓플레이스에서 설치된 작업의 경우 익스텐션 게시자에게 지원을 요청하세요.

작업 워크로드 ID 페더레이션 지원
AutomatedAnalysis@0 Y
AzureAppServiceManage@0 Y
AzureAppServiceSettings@1 Y
AzureCLI@1 Y
AzureCLI@2 Y
AzureCloudPowerShellDeployment@1 AzureCloudPowerShellDeployment@2 사용
AzureCloudPowerShellDeployment@2 Y
AzureContainerApps@0 Y
AzureContainerApps@1 Y
AzureFileCopy@1 AzureFileCopy@6 사용
AzureFileCopy@2 AzureFileCopy@6 사용
AzureFileCopy@3 AzureFileCopy@6 사용
AzureFileCopy@4 AzureFileCopy@6 사용
AzureFileCopy@5 AzureFileCopy@6 사용
AzureFileCopy@6 Y
AzureFunctionApp@1 Y
AzureFunctionApp@2 Y
AzureFunctionAppContainer@1 Y
AzureFunctionOnKubernetes@0 AzureFunctionOnKubernetes@1 사용
AzureFunctionOnKubernetes@1 Y
AzureIoTEdge@2 Y
AzureKeyVault@1 Y
AzureKeyVault@2 Y
AzureMonitor@0 AzureMonitor@1 사용
AzureMonitor@1 Y
AzureMysqlDeployment@1 Y
AzureNLBManagement@1 N
AzurePolicyCheckGate@0 Y
AzurePowerShell@2 Y
AzurePowerShell@3 Y
AzurePowerShell@4 Y
AzurePowerShell@5 Y
AzureResourceGroupDeployment@2 Y
AzureResourceManagerTemplateDeployment@3 Y
AzureRmWebAppDeployment@3 Y
AzureRmWebAppDeployment@4 Y
AzureSpringCloud@0 Y
AzureVmssDeployment@0 Y
AzureWebApp@1 Y
AzureWebAppContainer@1 Y
ContainerBuild@0 Y
ContainerStructureTest@0 Y
Docker@0 Y
Docker@1 Azure 서비스 연결: Y
Docker 레지스트리 서비스 연결: N
Docker@2 Y
DockerCompose@0 Y
DockerCompose@1 Y
DotNetCoreCLI@2 Y
HelmDeploy@0 Azure 서비스 연결: Y
HelmDeploy@1 Azure 서비스 연결: Y
InvokeRESTAPI@1 Y
JavaToolInstaller@0 Y
JenkinsDownloadArtifacts@1 Y
Kubernetes@0 Kubernetes@1 사용
Kubernetes@1 Y
KubernetesManifest@0 KubernetesManifest@1 사용
KubernetesManifest@1 Y
Maven@4 Y
Notation@0 Y
PackerBuild@0 PackerBuild@1 사용
PackerBuild@1 Y
PublishToAzureServiceBus@1 Azure 서비스 연결에서 PublishToAzureServiceBus@2 사용
PublishToAzureServiceBus@2 Y
ServiceFabricComposeDeploy@0 N
ServiceFabricDeploy@1 N
SqlAzureDacpacDeployment@1 Y
VSTest@3 Y

워크로드 ID 페더레이션이 활성 상태인지 확인

AADSTS700223 또는 AADSTS700238 오류 메시지가 표시되면 Microsoft Entra 테넌트에서 워크로드 ID 페더레이션을 사용할 수 없습니다.

페더레이션 자격 증명을 차단하는 Microsoft Entra 정책이 없는지 확인합니다.

발급자 URL의 정확도 확인

일치하는 페더레이션 ID 레코드를 찾을 수 없음을 나타내는 메시지가 표시되면 발급자 URL 또는 페더레이션 주체가 일치하지 않습니다. 올바른 발급사 URL은 https://login.microsoftonline.com으로 시작합니다.

서비스 연결을 편집하고 저장하여 발급사 URL을 업데이트하는 방식으로 발급사 URL을 수정할 수 있습니다. Azure DevOps에서 ID를 만들지 않은 경우 발급사 URL을 수동으로 업데이트해야 합니다. Azure ID의 경우 발급사 URL이 자동으로 업데이트됩니다.

일반적인 문제

다음 섹션에서는 일반적인 문제를 식별하고 원인 및 해결을 설명합니다.

Microsoft Entra 테넌트에서 서비스 주체를 만들 수 있는 권한 없음

올바른 권한이 없는 경우 Azure DevOps 서비스 연결 구성 도구를 사용할 수 없습니다. 서비스 주체를 만들 수 있는 권한이 없거나 Azure DevOps 사용자와 다른 Microsoft Entra 테넌트를 사용하는 경우 도구를 사용하기에 권한 수준이 충분하지 않습니다.

앱 등록을 만들려면 Microsoft Entra ID에 권한이 있거나 적절한 역할(예: 애플리케이션 개발자)이 있어야 합니다.

다음 두 가지 문제 해결 옵션이 있습니다.

오류 메시지

다음 표에서는 일반적인 오류 메시지와 이를 생성할 수 있는 문제를 식별합니다.

메시지 가능한 문제
토큰을 요청할 수 없음: 가져오기 ?audience=api://AzureADTokenExchange: unsupported protocol scheme 작업은 워크로드 ID 페더레이션을 지원하지 않습니다.
ID를 찾을 수 없음 작업은 워크로드 ID 페더레이션을 지원하지 않습니다.
Azure에 대한 액세스 토큰을 가져올 수 없음 작업은 워크로드 ID 페더레이션을 지원하지 않습니다.
AADSTS700016: 식별자가 '****'인 애플리케이션을 찾을 수 없습니다. 서비스 연결에 사용되는 ID가 더 이상 존재하지 않거나, 서비스 연결에서 제거되었거나, 잘못 구성되었을 수 있습니다. 미리 만든 ID를 사용하여 서비스 연결을 수동으로 구성하는 경우 올바르게 구성되었는지 확인 appID/clientId 합니다.
AADSTS7000215: 잘못된 클라이언트 암호가 제공되었습니다. 만료된 비밀이 있는 서비스 연결을 사용하고 있습니다. 서비스 연결을 워크로드 ID 페더레이션 으로 변환하고 만료된 비밀을 페더레이션된 자격 증명으로 바꿉니다.
AADSTS700024: 클라이언트 어설션이 유효한 시간 범위 내에 있지 않습니다. 약 1시간 후에 오류가 발생하는 경우 워크로드 ID 페더레이션 및 관리 ID서비스 연결을 대신 사용합니다. 관리 ID 토큰의 수명은 약 24시간입니다.
오류가 1시간 전에 발생하지만 10분 후에 발생하는 경우 액세스 토큰을 요청하는 명령(예: 스크립트의 시작 부분에 Azure Storage 액세스)을 이동합니다. 액세스 토큰은 후속 명령에 대해 캐시됩니다.
AADSTS70021: 제시된 어설션에 대해 일치하는 페더레이션 ID 레코드가 없습니다. 어설션 발급자: https://app.vstoken.visualstudio.com. 페더레이션 자격 증명이 생성되지 않았거나 발급자 URL이 올바르지 않습니다. 올바른 발급자 URL의 형식 https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX은 다음과 같습니다. 서비스 연결을 편집한 다음 저장하여 발급자 URL을 수정할 수 있습니다. Azure DevOps에서 ID를 만들지 않은 경우 발급자를 수동으로 업데이트해야 합니다. 서비스 연결의 편집 대화 상자 또는 REST API를 사용하는 경우 응답에서 올바른 발급자를 찾을 수 있습니다.
AADSTS70021: 제시된 어설션에 대해 일치하는 페더레이션 ID 레코드가 없습니다. 어설션 발급자: https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. 어설션 주체: sc://<org>/<project>/<service-connection>. 발급자 URL 또는 페더레이션 주체가 일치하지 않습니다. Azure DevOps 조직 또는 프로젝트의 이름이 변경되었거나 ID에 대한 페더레이션 주체를 업데이트하지 않고 수동으로 만든 서비스 연결의 이름이 바뀌었습니다.
AADSTS700211: 제시된 어설션 발급자에서 일치하는 페더레이션 ID 레코드가 없습니다. 페더레이션된 자격 증명이 생성되지 않았거나 발급자 URL이 올바르지 않습니다.
AADSTS700213: 제시된 어설션 주체에 대해 일치하는 페더레이션 ID 레코드가 없습니다. 페더레이션 자격 증명이 생성되지 않았거나 주체가 올바르지 않습니다.
AADSTS700223 워크로드 ID 페더레이션은 Microsoft Entra 테넌트에서 제한되거나 사용하지 않도록 설정됩니다. 이 시나리오에서는 대신 페더레이션에 대한 관리 ID를 사용할 수 있습니다. 자세한 내용은 관리 ID가 있는 워크로드 ID를 참조하세요.
AADSTS70025: 클라이언트 애플리케이션에 구성된 페더레이션 ID 자격 증명이 없습니다. 페더레이션된 자격 증명이 앱 등록 또는 관리 ID에 구성되어 있는지 확인합니다.
Microsoft Entra는 오류 코드 AADSTS700238 Azure DevOps에서 발급한 토큰을 거부했습니다. 워크로드 ID 페더레이션은 Microsoft Entra 테넌트에서 제한되었습니다. 조직의 발급자(https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)는 워크로드 ID 페더레이션을 사용할 수 없습니다. Microsoft Entra 테넌트 관리자 또는 관리 팀에 Azure DevOps 조직에 대한 워크로드 ID 페더레이션을 허용하도록 요청합니다.
AADSTS900382: 클라우드 간에서 기밀 클라이언트가 지원되지 않습니다. 일부 소버린 클라우드는 워크로드 ID 페더레이션을 차단합니다.
서비스 주체 클라이언트 ID를 사용하여 JWT(JSON 웹 토큰)를 가져오지 못했습니다. 페더레이션 ID 자격 증명이 잘못 구성되었거나 Microsoft Entra 테넌트가 OIDC(OpenID Connect)를 차단합니다.
오류로 스크립트 실패: UnrecognizedArgumentError: 인식할 수 없는 인수: --federated-token 이전 버전의 Azure CLI가 설치된 에이전트에서 AzureCLI 작업을 사용하고 있습니다. 워크로드 ID 페더레이션에는 Azure CLI 2.30 이상이 필요합니다.
Microsoft Entra ID에서 앱을 만들지 못했습니다. 오류: Microsoft Graph에서 작업을 완료할 수 있는 권한이 부족합니다. 사용자에게 Microsoft Entra 애플리케이션을 만들 수 있는 권한이 있는지 확인합니다. Microsoft Entra 테넌트에서 앱 등록을 만드는 기능을 사용할 수 없습니다 . 서비스 연결을 만드는 사용자에게 애플리케이션 개발자 Microsoft Entra 역할을 할당합니다. 또는 관리 ID를 사용하여 서비스 연결을 수동으로 만듭니다. 자세한 내용은 관리 ID가 있는 워크로드 ID를 참조하세요.

위에 나열되지 않은 AADSTS 오류인가요? Microsoft Entra 인증 및 권한 부여 오류 코드를 확인 합니다.