共用方式為


透過使用者登入保護單一頁面應用程式

下列指南適用於裝載在內容伺服器上或具有最少網頁伺服器相依性的應用程式。 應用程式僅為 Microsoft Entra 使用者提供受保護的資源。 此案例的目標是讓 Web 應用程式能夠向 Microsoft Entra ID 進行驗證,並代表使用者呼叫 Azure 地圖服務 REST API。

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

  1. 登入 Azure 入口網站

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

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

    螢幕擷取畫面,顯示 Azure 入口網站中的 Azure 地圖服務驗證選項。

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

  • Microsoft Entra 驗證:代表 Client ID 要用於 REST API 要求的帳戶。 該 Client ID 值應該儲存在應用程式設定中,然後應該在提出使用 Microsoft Entra 驗證的 Azure 地圖服務 HTTP 要求之前擷取該值。
  • 共用金鑰驗證Primary KeySecondary Key 被用作共用金鑰驗證的訂閱金鑰。 共用金鑰驗證依賴於在每次要求時,將由 Azure Maps 帳戶生成的金鑰傳遞至 Azure 地圖。 建議您定期重新產生金鑰。 為了在再生期間保持當前連接,提供了兩個鑰匙。 您可以在重新產生作業期間,使用已重新產生的金鑰。 當您重新產生金鑰時,您必須更新存取此帳戶的任何應用程式,才能使用新金鑰。 如需詳細資訊,請參閱 使用 Azure 地圖服務進行驗證

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

在 Microsoft Entra ID 中建立 Web 應用程式,讓使用者登入。 Web 應用程式會委派使用者對 Azure 地圖服務 REST API 的存取權。

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

    顯示 Microsoft Entra ID 中應用程式註冊的螢幕擷取畫面。

  2. 輸入名稱、選擇 [支援帳戶類型],並提供重新導向 URI,此 URI 代表 Microsoft Entra ID 核發權杖的 url,以及裝載地圖控制項的 url。 如需詳細範例,請參閱 Azure 地圖服務 Microsoft Entra ID 範例。 接著,選取 [註冊]

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

    螢幕擷取畫面顯示我的組織使用的 API 清單。

  4. 選取 [存取 Azure 地圖服務] 旁的核取方塊,然後選取 [新增許可權]。

    顯示請求應用程式 API 權限畫面的螢幕擷取畫面。

  5. 啟用 oauth2AllowImplicitFlow。 若要啟用它,請在應用程式註冊的 [資訊清單] 區段中,設定 oauth2AllowImplicitFlowtrue

  6. 從應用程式註冊複製 Microsoft Entra 應用程式識別碼和 Microsoft Entra 租用戶識別碼,以在 Web SDK 中使用。 將 Microsoft Entra 應用程式註冊詳細數據和 x-ms-client-id Azure 地圖帳戶新增至 Web SDK。

        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js" />
        <script>
            var map = new atlas.Map("map", {
                center: [-122.33, 47.64],
                zoom: 12,
                language: "en-US",
                authOptions: {
                    authType: "aad",
                    clientId: "<insert>",  // azure map account client id
                    aadAppId: "<insert>",  // azure ad app registration id
                    aadTenant: "<insert>", // azure ad tenant id
                    aadInstance: "https://login.microsoftonline.com/"
                }
            });
        </script>   
    
  7. 為使用者或群組設定 Azure 角色型存取控制 (Azure RBAC)。 請參閱 下列各節以啟用 Azure RBAC

授與使用者對 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 使用計量:

探索範例,了解如何使用 Azure 地圖服務與 Microsoft Entra ID 整合: