使用 Microsoft Entra ID 和 Azure 地圖服務 REST API 保護輸入限制裝置

本指南討論如何保護無法安全儲存祕密或接受瀏覽器輸入的公用應用程式或裝置。 這些類型的應用程式屬於物聯網 (IoT) 類別。 範例包括智慧型電視與感應器資料發出應用程式。

若要在 Azure 入口網站中檢視 Azure 地圖服務的帳戶驗證詳細資料:

  1. 登入 Azure 入口網站

  2. 瀏覽至 Azure 入口網站功能表。 選取 [所有資源],然後選取您的 Azure 地圖服務帳戶。

  3. 在左窗格中的 [設定] 下選取 [驗證]

    Screenshot showing your Azure Maps authentication options in the Azure portal.

建立 Azure 地圖服務帳戶時,系統會建立三個值。 其會用來支援 Azure 地圖服務中兩種類型的驗證:

  • Microsoft Entra 驗證Client ID 代表要用於 REST API 要求的帳戶。 Client ID 的值應儲存在應用程式設定中,且應先擷取該值,再提出使用 Microsoft Entra 驗證的 Azure 地圖服務 HTTP 要求。
  • 共用金鑰驗證: Primary KeySecondary Key 會用作共用金鑰驗證的訂用帳戶金鑰。 共用金鑰驗證需依靠由 Azure 地圖服務帳戶所產生的金鑰連同每個要求,傳遞至 Azure 地圖服務。 建議您定期重新產生金鑰。 為了在重新產生作業期間維護目前的連線,系統會提供兩個金鑰。 您可以在重新產生作業期間,使用已重新產生的金鑰。 當您重新產生金鑰時,必須更新任何存取此帳戶的應用程式,以使用新的金鑰。 如需詳細資訊,請參閱驗證 Azure 地圖服務

在 Microsoft Entra ID 中建立應用程式註冊

注意

在 Microsoft Entra ID 中建立裝置型應用程式,以啟用 Microsoft Entra 登入,此登入獲授與 Azure 地圖服務 REST API 的存取權。

  1. 在 Azure 入口網站的 Azure 服務清單中,選取 [Microsoft Entra ID]>[應用程式註冊]>[新增註冊]

    A screenshot showing application registration in Microsoft Entra ID.

  2. 輸入名稱,選擇 [僅限此組織目錄中的帳戶] 作為 [支援的帳戶類型]。 在 [重新導向 URI] 中,指定 [公用用戶端/原生 (行動與桌面)],然後將 https://login.microsoftonline.com/common/oauth2/nativeclient 新增至值。 如需詳細資訊,請參閱 Microsoft Entra ID 呼叫 Web API 的桌面應用程式:應用程式註冊。 然後註冊應用程式。

    A screenshot showing the settings used to register an application.

  3. 瀏覽至 [驗證] 並啟用 [將應用程式視為公用用戶端],以啟用使用 Microsoft Entra ID 進行裝置程式碼驗證。

    A screenshot showing the advanced settings used to specify treating the application as a public client.

  4. 若要將委派的 API 權限指派給 Azure 地圖服務,請移至應用程式。 然後選取 [API 權限]> [新增權限]。 在 [組織使用的 API] 底下,搜尋並選取 [Azure 地圖服務]

    A screenshot showing where you request API permissions.

  5. 選取 [存取 Azure 地圖服務] 旁的核取方塊,並接著選取 [新增權限]

    A screenshot showing where you specify the app permissions you require.

  6. 為使用者或群組設定 Azure 角色型存取控制 (Azure RBAC)。 如需詳細資訊,請參閱將使用者的角色型存取權授與 Azure 地圖服務

  7. 在應用程式中新增用於取得權杖流程的代碼,如需實作詳細資料,請參閱裝置碼流程。 取得權杖時,請參考在先前步驟上選取的範圍:user_impersonation

    提示

    使用 Microsoft 驗證程式庫 (MSAL) 來取得存取權杖。 如需詳細資訊,請參閱 Active Directory 文件中的呼叫 Web API 的桌面應用程式:程式碼設定

  8. 使用從 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 地圖服務

您可以將 Microsoft Entra 群組或安全性主體,指派給一或多個 Azure 地圖服務角色定義,來授與 Azure 角色型存取控制 (Azure RBAC)

若要檢視 Azure 地圖服務的可用 Azure 角色定義,請參閱檢視內建的 Azure 地圖服務角色定義

如需將可用 Azure 地圖服務角色,指派給已建立的受控識別或服務主體詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色

若要有效率地管理大量使用者的 Azure 地圖服務應用程式和資源存取權,請參閱 Microsoft Entra 群組

重要

若要允許使用者驗證應用程式,必須先在 Microsoft Entra ID 中建立該使用者。 如需詳細資訊,請參閱使用 Microsoft Entra ID 新增或刪除使用者

若要了解如何有效管理使用者的大型目錄,請參閱 Microsoft Entra ID

警告

Azure 地圖服務的內建角色定義,可為許多 Azure 地圖服務 REST API 提供廣泛的授權存取權。 若要將 API 的存取權限制到最低限度,請參閱建立自訂角色定義,並將系統指派的身分識別指派給自訂角色定義。 這可讓應用程式獲得存取 Azure 地圖服務所需的最低權限。

下一步

尋找 Azure 地圖服務帳戶的 API 使用計量: