Microsoft Entra ID 및 Azure Maps REST API를 사용하여 입력 제한 디바이스 보호
이 가이드에서는 비밀을 안전하게 저장하거나 브라우저 입력을 수락할 수 없는 퍼블릭 애플리케이션이나 디바이스를 보호하는 방법을 설명합니다. 이러한 유형의 애플리케이션은 IoT(사물 인터넷) 범주에 속합니다. 예로는 스마트 TV, 애플리케이션을 내보내는 센서 데이터가 있습니다.
Azure Portal에서 Azure Maps 계정 인증 세부 정보를 보려면 다음을 수행합니다.
Azure Portal에 로그인합니다.
Azure Portal 메뉴로 이동합니다. 모든 리소스를 선택한 다음, Azure Maps 계정을 선택합니다.
왼쪽 창의 설정에서 인증을 선택합니다.
Azure Maps 계정을 만들 때 세 가지 값이 생성됩니다. 해당 값은 Azure Maps의 두 가지 인증 유형을 지원하는 데 사용됩니다.
- Microsoft Entra 인증:
Client ID
는 REST API 요청에 사용되는 계정을 나타냅니다.Client ID
값은 애플리케이션 구성에 저장되며, Microsoft Entra 인증을 사용하는 Azure Maps HTTP 요청을 수행하기 전에 검색해야 합니다. - 공유 키 인증:
Primary Key
와Secondary Key
가 공유 키 인증의 구독 키로 사용됩니다. 공유 키 인증은 각 요청과 함께 Azure Maps 계정에서 생성된 키를 Azure Maps에 전달합니다. 키를 정기적으로 다시 생성하는 것이 좋습니다. 다시 생성하는 동안 현재 연결을 유지하기 위해 두 개의 키가 제공됩니다. 하나의 키를 다시 생성하는 동안 다른 키를 사용할 수 있습니다. 키를 다시 생성하는 경우 이 계정에 액세스하는 모든 애플리케이션이 새 키를 사용하도록 업데이트해야 합니다. 자세한 내용은 Azure Maps 인증을 참조하세요.
Microsoft Entra ID에서 애플리케이션 등록 만들기
참고 항목
- 필수 조건 읽기:시나리오: 웹 API를 호출하는 데스크톱 앱
- 다음 시나리오는 토큰을 획득하기 위해 웹 브라우저가 포함되지 않은 디바이스 코드 흐름을 사용합니다.
Microsoft Entra ID에서 디바이스 기반 애플리케이션을 만들어 Azure Maps REST API에 대한 액세스 권한이 부여된 Microsoft Entra 로그인을 사용하도록 설정합니다.
Azure Portal의 Azure 서비스 목록에서 Microsoft Entra ID>앱 등록>새 등록을 선택합니다.
이름을 입력하고 지원되는 계정 유형으로 이 조직 디렉터리의 계정만을 선택합니다. 리디렉션 URI에서 퍼블릭 클라이언트/기본(모바일 및 데스크톱)을 지정한 다음,
https://login.microsoftonline.com/common/oauth2/nativeclient
를 값에 추가합니다. 자세한 내용은 Microsoft Entra ID 웹 API를 호출하는 데스크톱 앱: 앱 등록을 참조하세요. 그런 다음, 애플리케이션을 등록합니다.인증으로 이동하고 애플리케이션을 퍼블릭 클라이언트로 처리를 사용하도록 설정하여 Microsoft Entra ID를 통한 디바이스 코드 인증을 설정합니다.
위임된 API 권한을 Azure Maps에 할당하려면 애플리케이션으로 이동합니다. 그런 다음, API 권한>권한 추가를 선택합니다. 내 조직에서 사용하는 API에서 Azure Maps를 검색하고 선택합니다.
Azure Maps에 액세스 옆의 확인란을 선택한 다음 권한 추가를 선택합니다.
사용자 또는 그룹에 대해 Azure RBAC(Azure 역할 기반 액세스 제어)를 구성합니다. 자세한 내용은 사용자에게 Azure Maps 역할 기반 액세스 권한 부여를 참조하세요.
애플리케이션에서 토큰 흐름을 획득하기 위한 코드를 추가합니다. 구현 세부 정보는 디바이스 코드 흐름을 참조하세요. 토큰을 획득할 때 이전 단계에서 선택한 범위인
user_impersonation
을 참조합니다.팁
MSAL(Microsoft 인증 라이브러리)을 사용하여 액세스 토큰을 획득합니다. 자세한 내용은 Active Directory 설명서의 웹 API를 호출하는 데스크톱 앱: 코드 구성을 참조하세요.
Microsoft Entra ID에서 획득한 토큰을 사용하여 HTTP 요청을 작성하고 유효한 HTTP 클라이언트를 사용하여 전송된 요청을 보냅니다.
샘플 요청
다음은 중심점과 반경을 사용하여 원 기하 도형으로 표시된 단순 지오펜스를 업로드하기 위한 샘플 요청 본문입니다.
POST /mapData?api-version=2.0&dataFormat=geojson
Host: us.atlas.microsoft.com
x-ms-client-id: 30d7cc….9f55
Authorization: Bearer eyJ0e….HNIVN
다음 샘플 요청 본문은 GeoJSON에 있습니다.
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.126986, 47.639754]
},
"properties": {
"geometryId": "001",
"radius": 500
}
}]
}
응답 헤더 샘플
Operation-Location: https://us.atlas.microsoft.com/mapData/operations/{udid}?api-version=2.0
Access-Control-Expose-Headers: Operation-Location
사용자에게 Azure Maps에 대한 역할 기반 액세스 권한 부여
Microsoft Entra 그룹 또는 보안 주체를 하나 이상의 Azure Maps 역할 정의에 할당하여 Azure RBAC(Azure 역할 기반 액세스 제어)를 부여할 수 있습니다.
Azure Maps에 대한 사용 가능한 Azure 역할 정의를 보려면 기본 제공 Azure Maps 역할 정의 보기를 참조하세요.
만든 관리 ID 또는 서비스 주체에 사용 가능한 Azure Maps 역할을 할당하는 방법에 대한 자세한 단계는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.
Azure Maps 앱 및 대규모 사용자의 리소스 액세스를 효율적으로 관리하려면 Microsoft Entra 그룹을 참조하세요.
Important
사용자가 애플리케이션에 인증할 수 있으려면 먼저 Microsoft Entra ID에서 사용자를 만들어야 합니다. 자세한 내용은 Microsoft Entra ID를 사용한 사용자 추가 및 삭제를 참조하세요.
사용자를 위해 대규모 디렉터리를 효과적으로 관리하는 방법에 대해 알아보려면 Microsoft Entra ID를 참조하세요.
Warning
Azure Maps 기본 제공 역할 정의는 많은 Azure Maps REST API에 강력한 액세스 권한을 부여합니다. API 액세스를 최소한으로 제한하려면 사용자 지정 역할 정의 만들기를 참조하고 시스템 할당 ID를 사용자 지정 역할 정의에 할당합니다. 이렇게 하면 애플리케이션에서 Azure Maps에 액세스하는 데 필요한 최소 권한을 사용할 수 있습니다.
다음 단계
Azure Maps 계정에 대한 API 사용 현황 메트릭을 확인하는 방법을 알아봅니다.