Azure Key Vault에 인증
Key Vault를 사용한 인증은 지정된 보안 주체의 ID를 인증하는 Microsoft Entra ID에서 작동합니다. 보안 주체는 Azure 리소스에 대한 액세스를 요청할 수 있는 모든 항목입니다. 여기에는 다음이 포함됩니다.
- 사용자 – Microsoft Entra ID에 계정이 있는 실제 사용자입니다.
- 그룹 – 사용자 컬렉션입니다. 그룹에 부여된 사용 권한은 모든 구성원에게 적용됩니다.
- 서비스 주체 – 앱 또는 서비스(사람 아님)를 나타냅니다. 앱의 사용자 계정처럼 생각하세요.
애플리케이션의 경우 서비스 주체를 가져오는 두 가지 주요 방법이 있습니다.
관리 ID 사용(권장): Azure는 서비스 주체를 만들고 관리합니다. 앱은 자격 증명을 저장하지 않고도 다른 Azure 서비스에 안전하게 액세스할 수 있습니다. App Service, Azure Functions 및 Virtual Machines와 같은 서비스에서 작동합니다.
앱을 수동으로 등록합니다. Microsoft Entra ID에 앱을 등록합니다. 이렇게 하면 모든 테넌트에서 앱을 식별하는 서비스 주체 및 앱 개체가 만들어집니다.
메모
시스템 할당 관리 ID를 사용하는 것이 좋습니다.
애플리케이션 코드에서 Key Vault에 대한 인증
Key Vault SDK는 Azure ID 클라이언트 라이브러리를 사용하여 동일한 코드가 있는 환경에서 Key Vault에 대한 원활한 인증을 허용합니다. 다음 표에서는 Azure ID 클라이언트 라이브러리에 대한 정보를 제공합니다.
| 닷넷 | 파이썬 | 자바 | JavaScript |
|---|---|---|---|
| Azure Identity SDK .NET | Azure ID SDK Python | Azure ID SDK Java | Azure Identity SDK JavaScript |
REST를 사용하여 Key Vault에 대한 인증
HTTP 권한 부여 헤더를 사용하여 서비스에 액세스 토큰을 보내야 합니다.
PUT /keys/MYKEY?api-version=<api_version> HTTP/1.1
Authorization: Bearer <access_token>
액세스 토큰이 제공되지 않거나 서비스에서 토큰 HTTP 401 을 거부하는 경우 오류가 클라이언트에 반환되고 헤더가 WWW-Authenticate 포함됩니다. 예를 들면 다음과 같습니다.
401 Not Authorized
WWW-Authenticate: Bearer authorization="…", resource="…"
WWW-Authenticate 헤더의 매개 변수는 다음과 같습니다.
권한 부여: 요청에 대한 액세스 토큰을 가져오는 데 사용할 수 있는 OAuth2 권한 부여 서비스의 주소입니다.
resource: 권한 부여 요청에 사용할 리소스(
https://vault.azure.net)의 이름입니다.