본문 바로가기
CLOUD/AZURE

Azure에서 사용하는 ID 와 인증방식

by Rainbound-IT 2025. 2. 21.
반응형

Azure에서 사용하는 ID 유형

Azure에서 사용되는 ID는 크게 사용자 ID, 애플리케이션 ID, 서비스 ID, 관리 ID 등으로 분류됩니다.

ID 유형설명예제

User ID (사용자 ID) Azure AD에 등록된 사용자의 고유 식별자 user@domain.com
Service Principal ID (서비스 프린시플 ID) Azure AD에서 특정 애플리케이션이 인증을 받을 때 사용되는 ID 7642c9a7-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Client ID (클라이언트 ID, 애플리케이션 ID) Azure AD에 등록된 애플리케이션의 고유 식별자 5500b6f8-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Managed Identity (매니지드 ID) Azure 서비스가 다른 Azure 리소스에 접근할 때 사용하는 ID Managed Identity의 Principal ID
Tenant ID (테넌트 ID) Azure AD 디렉터리(테넌트)의 고유한 ID 72f988bf-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Object ID (오브젝트 ID) Azure AD에서 개별 사용자, 그룹, 애플리케이션을 고유하게 식별하는 ID 37e96e2b-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Subscription ID (구독 ID) 특정 Azure 구독을 식별하는 고유한 ID 0a1b2c3d-xxxx-xxxx-xxxx-xxxxxxxxxxxx

 Azure에서 사용하는 인증 방식

Azure에서 제공하는 인증 방식은 크게 사용자 인증, 애플리케이션 인증, 서비스 간 인증으로 나뉩니다.

1. 사용자 인증 방식

사용자가 Azure 리소스 및 애플리케이션에 로그인할 때 사용하는 방식입니다.

1.1 Azure Active Directory (Azure AD)

Azure AD는 Microsoft의 클라우드 기반 ID 및 액세스 관리 시스템으로, 사용자를 인증하고 애플리케이션 및 리소스에 대한 권한을 부여합니다.

  • 사용자 이름/비밀번호 인증
    • user@domain.com과 같은 Azure AD 계정을 사용하여 로그인
    • MFA(다중 요소 인증)와 함께 사용 가능
  • 싱글 사인온 (SSO, Single Sign-On)
    • 한 번 로그인하면 여러 애플리케이션에 접근 가능
    • Microsoft 365, Azure Portal, SaaS 애플리케이션 등에 적용
  • 다중 요소 인증 (MFA, Multi-Factor Authentication)
    • 비밀번호 외에 추가 보안 요소(OTP, Microsoft Authenticator 앱, SMS 등)를 사용
    • 보안 강화를 위해 필수적
  • Windows Hello for Business
    • 생체 인식(지문, 얼굴 인식) 또는 PIN을 사용하여 Azure AD에 로그인
  • Conditional Access (조건부 액세스)
    • 위치, 디바이스 상태, 로그인 위험도에 따라 인증을 제어

2. 애플리케이션 및 서비스 간 인증 방식

Azure의 API, 서비스, 애플리케이션 간 인증을 위한 방식입니다.

 2.1 OAuth 2.0 + OpenID Connect

  • OAuth 2.0은 Azure AD가 애플리케이션과 API 간의 인증 및 권한 부여를 처리하는 프로토콜입니다.
  • OpenID Connect는 OAuth 2.0을 기반으로 한 인증 프로토콜이며, ID 토큰(ID Token)을 제공하여 사용자를 인증합니다.

🔹 OAuth 2.0 인증 흐름

  1. 애플리케이션이 Azure AD에 Client ID와 함께 인증 요청을 보냄
  2. Azure AD가 사용자를 인증하고 액세스 토큰을 발급
  3. 애플리케이션이 액세스 토큰을 사용해 API 요청 수행

 2.2 Service Principal (서비스 프린시플) 인증

Azure에서 특정 애플리케이션이 Azure AD에서 인증을 받고 Azure 리소스에 접근할 때 사용하는 ID입니다.

  • Client ID (애플리케이션 ID) + Client Secret 또는 **Certificate (인증서)**를 사용하여 인증
  • RBAC (Role-Based Access Control)과 함께 사용되어 특정 리소스에 대한 권한을 부여 가능

🔹 서비스 프린시플을 사용한 인증 예제

az login --service-principal -u <CLIENT_ID> -p <CLIENT_SECRET> --tenant <TENANT_ID>

 2.3 Managed Identity 

Azure 리소스(VM, Azure Functions 등)가 다른 Azure 서비스에 안전하게 인증할 수 있도록 하는 기능입니다.

  • 비밀번호 없이 Azure AD에서 자동으로 인증을 수행
  • VM, Logic Apps, Azure Functions 등에서 Azure Key Vault, Azure Storage 등에 접근할 때 사용됨

🔹 Managed Identity 인증 흐름

  1. Azure 서비스(VM, Function 등)에 Managed Identity 할당
  2. 서비스가 Azure AD에 토큰 요청
  3. Azure AD가 해당 Managed Identity를 인증하고 토큰 발급
  4. 서비스가 발급된 토큰을 사용하여 Azure 리소스에 접근

🔹 Managed Identity를 사용한 Azure Key Vault 인증

 
from azure.identity import ManagedIdentityCredential
from azure.keyvault.secrets import SecretClient

credential = ManagedIdentityCredential()
key_vault_url = "https://<your-keyvault-name>.vault.azure.net"
client = SecretClient(vault_url=key_vault_url, credential=credential)

secret = client.get_secret("my-secret")
print(secret.value)

 Azure에서 API 인증 방식

Azure API에 대한 인증은 OAuth 2.0Shared Key, API Key 등을 사용할 수 있습니다.

 3.1 Azure REST API 인증

Azure REST API를 호출하려면 Azure AD 액세스 토큰을 발급받아야 합니다.

Azure CLI로 API 인증 (OAuth 2.0 사용)

az account get-access-token --resource=https://management.azure.com

Azure API 요청 예제

curl -X GET "https://management.azure.com/subscriptions//resourceGroups?api-version=2021-04-01" \ -H "Authorization: Bearer <ACCESS_TOKEN>"

 Azure에서 ID 및 인증 방식 정리

 

유형 설명 인증방식
사용자 ID Azure AD에서 개별 사용자를 식별 비밀번호, MFA, SSO, Windows Hello
Client ID (애플리케이션 ID) Azure AD에 등록된 애플리케이션을 식별 OAuth 2.0, OpenID Connect
Service Principal ID 애플리케이션이 Azure 리소스에 접근할 때 사용 Client ID + Secret / Certificate
Managed Identity Azure 서비스가 다른 Azure 리소스에 접근할 때 사용 Azure AD에서 자동 인증
Tenant ID Azure AD 테넌트를 식별하는 ID Azure AD 기반 인증
Subscription ID Azure 구독을 식별하는 ID Azure 리소스 관리

 

반응형

댓글