B2B Solution/트러블슈팅

AADSTS700016 오류 해결: 앱 등록 테넌트 불일치 완벽 가이드

SangPedia 2026. 3. 24. 09:08
반응형
AADSTS700016 오류 해결: 앱 등록 테넌트 불일치 완벽 가이드

AADSTS700016 오류 해결: 앱 등록 테넌트 불일치 완벽 가이드

Azure Active Directory (Azure AD)를 사용하다 보면 예기치 않은 오류가 발생할 수 있습니다. 그중 하나가 AADSTS700016 오류입니다. 이 오류는 애플리케이션 ID가 특정 디렉터리에서 발견되지 않았음을 나타내며, 앱 등록 정보와 관련된 테넌트 불일치에서 비롯되는 경우가 많습니다. 이 글에서는 AADSTS700016 오류의 원인을 분석하고, 단계별 해결 방법을 제시하여 IT 관리자/엔지니어가 실무에서 겪는 어려움을 해소하고자 합니다.

에러 현상

다음과 같은 오류 메시지가 표시될 수 있습니다.

AADSTS700016: Application with identifier '{application_id}' was not found in the directory '{directory_id}'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You might have sent your authentication request to the wrong tenant.

이 오류는 주로 다음과 같은 환경에서 발생합니다.

  • Azure Portal을 통해 애플리케이션을 등록하고 구성하는 과정
  • PowerShell 또는 Azure CLI를 사용하여 Azure AD와 상호 작용하는 스크립트 실행
  • 다중 테넌트 애플리케이션을 개발하고 배포하는 과정
  • SAML 기반 Single Sign-On (SSO) 설정

원인 분석

AADSTS700016 오류는 다양한 원인으로 인해 발생할 수 있지만, 주로 다음과 같은 세 가지 시나리오에서 나타납니다.

1. 잘못된 애플리케이션 (클라이언트) ID 또는 테넌트 ID

가장 흔한 원인 중 하나는 애플리케이션 등록 시 잘못된 애플리케이션 ID (클라이언트 ID) 또는 테넌트 ID를 사용하는 것입니다. 이는 오타, 복사/붙여넣기 오류, 또는 구성 파일의 잘못된 설정으로 인해 발생할 수 있습니다. 애플리케이션이 등록된 테넌트와 로그인하려는 테넌트가 일치하지 않으면 이 오류가 발생합니다. 특히 개발/테스트 환경과 프로덕션 환경 간에 ID를 혼동하는 경우에 자주 발생합니다.

2. 애플리케이션이 테넌트에 등록되지 않음

애플리케이션이 특정 테넌트에 등록되지 않았거나, 등록 과정에서 오류가 발생한 경우에도 AADSTS700016 오류가 발생할 수 있습니다. 이는 앱 등록 과정에서 필요한 권한이 부여되지 않았거나, 등록 절차가 완료되지 않았을 때 나타납니다. 특히 다중 테넌트 애플리케이션의 경우, 각 테넌트에 대한 명시적인 등록 또는 동의가 필요합니다.

3. 사용자 동의 부족 또는 관리자 동의 필요

애플리케이션이 요청하는 권한에 대해 사용자가 동의하지 않았거나, 관리자 동의가 필요한 권한을 요청하는 경우에도 이 오류가 발생할 수 있습니다. 특히 애플리케이션이 민감한 데이터에 접근하거나, 사용자를 대신하여 작업을 수행하는 경우 관리자 동의가 필요할 수 있습니다. 사용자 동의가 필요한 경우, 사용자는 애플리케이션에 대한 권한을 명시적으로 부여해야 합니다.

Mermaid diagram: graph TD

해결 방법

각 원인별로 AADSTS700016 오류를 해결하는 방법을 단계별로 안내합니다.

1. 애플리케이션 (클라이언트) ID 및 테넌트 ID 확인

Azure Portal에서 애플리케이션 등록 정보를 확인하고, 애플리케이션 (클라이언트) ID와 테넌트 ID가 올바른지 확인합니다.

  1. Azure Portal에 로그인합니다.
  2. "Azure Active Directory"를 검색하여 선택합니다.
  3. "앱 등록"을 선택하고, 문제의 애플리케이션을 찾습니다.
  4. 개요 페이지에서 애플리케이션 (클라이언트) ID와 테넌트 ID를 확인합니다.
  5. 코드 또는 구성 파일에서 사용 중인 ID와 비교하여 일치하는지 확인합니다.
# PowerShell을 사용하여 테넌트 ID 확인
Get-AzureADTenantDetail | Select-Object TenantId

# Azure CLI를 사용하여 테넌트 ID 확인
az account show --output json | ConvertFrom-Json | Select-Object tenantId

위 명령어를 실행하여 실제 테넌트 ID를 확인하고, 애플리케이션 등록 정보와 일치하는지 확인합니다. 불일치하는 경우, 애플리케이션 등록 정보를 수정하거나, 코드/구성 파일을 업데이트합니다.

2. 애플리케이션 등록 확인 및 등록

애플리케이션이 대상 테넌트에 등록되어 있는지 확인하고, 필요한 경우 등록 절차를 완료합니다.

  1. Azure Portal에서 "엔터프라이즈 애플리케이션"을 검색하여 선택합니다.
  2. 애플리케이션이 목록에 있는지 확인합니다. 없는 경우, 애플리케이션 등록이 필요합니다.
  3. "앱 등록"으로 돌아가서, "모든 애플리케이션"을 선택하고, 애플리케이션을 찾습니다.
  4. 애플리케이션을 선택하고, "관리" 섹션에서 "엔터프라이즈 애플리케이션"을 선택합니다.
  5. "사용자 및 그룹"을 추가하여 애플리케이션에 대한 액세스 권한을 부여합니다.
# Azure CLI를 사용하여 애플리케이션 등록
az ad app create --display-name "YourAppName" --available-to-other-tenants true --reply-urls "https://localhost"

# 등록 후, 출력되는 appId(클라이언트 ID)와 tenantId를 기록

애플리케이션이 등록되어 있지 않은 경우, 위 명령어를 사용하여 애플리케이션을 등록하고, 필요한 권한을 부여합니다.

3. 사용자 동의 및 관리자 동의 획득

애플리케이션이 요청하는 권한에 대해 사용자가 동의했는지 확인하고, 필요한 경우 관리자 동의를 획득합니다.

  1. 애플리케이션이 요청하는 권한 목록을 확인합니다. Azure Portal의 "API 권한" 섹션에서 확인할 수 있습니다.
  2. 사용자에게 애플리케이션에 대한 동의를 요청합니다. 이는 애플리케이션에 로그인할 때 표시되는 동의 프롬프트를 통해 이루어집니다.
  3. 관리자 동의가 필요한 경우, 관리자에게 동의를 요청합니다. 이는 Azure Portal의 "API 권한" 섹션에서 "관리자 동의 부여" 버튼을 클릭하여 수행할 수 있습니다.
# PowerShell을 사용하여 관리자 동의 부여
Connect-AzureAD -TenantId "YourTenantId"
$AppId = "YourAppId"
$Resource = "https://graph.microsoft.com"
$Permission = "User.Read.All"

New-AzureADServicePrincipal -AppId $AppId
Start-Process -FilePath "https://login.microsoftonline.com/YourTenantId/adminconsent?client_id=$AppId&state=12345&redirect_uri=https://localhost"

위 명령어를 사용하여 관리자 동의를 부여하고, 애플리케이션이 필요한 권한을 획득하도록 합니다.

Mermaid diagram: sequenceDiagram

예방 조치

AADSTS700016 오류를 예방하기 위해 다음과 같은 조치를 취할 수 있습니다.

  • 애플리케이션 등록 정보를 정확하게 유지하고, 정기적으로 검토합니다.
  • 개발/테스트 환경과 프로덕션 환경 간에 애플리케이션 ID와 테넌트 ID를 명확하게 구분합니다.
  • 다중 테넌트 애플리케이션의 경우, 각 테넌트에 대한 등록 및 동의 절차를 명확하게 정의합니다.
  • 사용자에게 올바른 계정으로 로그인하도록 안내하고, 다중 인증 (MFA)을 활성화하여 보안을 강화합니다.
  • 다음과 같은 모니터링 스크립트를 사용하여 애플리케이션 등록 상태를 주기적으로 확인합니다.
# PowerShell을 사용하여 애플리케이션 등록 상태 모니터링
$AppId = "YourAppId"
$TenantId = "YourTenantId"

try {
    Get-AzureADApplication -ObjectId $AppId -ErrorAction Stop
    Write-Host "Application $AppId is registered in tenant $TenantId"
} catch {
    Write-Host "Application $AppId is NOT registered in tenant $TenantId"
}

이 스크립트를 정기적으로 실행하여 애플리케이션 등록 상태를 확인하고, 오류 발생 시 즉시 대응할 수 있도록 합니다.

FAQ

  1. AADSTS700016 오류는 왜 발생하나요?
    AADSTS700016 오류는 애플리케이션이 등록된 테넌트와 사용자가 로그인하려는 테넌트가 일치하지 않을 때 발생합니다. 이는 앱 등록 정보가 잘못되었거나, 사용자가 잘못된 계정으로 로그인했거나, 테넌트 간의 앱 동의가 제대로 이루어지지 않았을 때 나타날 수 있습니다.

  2. AADSTS700016 오류를 해결하기 위해 가장 먼저 확인해야 할 사항은 무엇인가요?
    가장 먼저 애플리케이션(클라이언트) ID와 테넌트 ID가 올바른지 확인해야 합니다. Azure Portal에서 앱 등록 정보를 확인하고, 코드 또는 구성 파일에 사용된 ID와 일치하는지 검토하세요. 또한 사용자가 올바른 계정으로 로그인했는지 확인하는 것도 중요합니다.

  3. AADSTS700016 오류를 예방하기 위한 모범 사례는 무엇인가요?
    애플리케이션 등록 정보를 정확하게 유지하고, 테넌트 간의 앱 동의 프로세스를 명확하게 정의해야 합니다. 또한, 사용자에게 올바른 계정으로 로그인하도록 안내하고, 다중 테넌트 애플리케이션의 경우 테넌트 격리를 강화하는 것이 좋습니다. 정기적인 감사를 통해 구성 오류를 사전에 방지할 수 있습니다.


반응형