共用方式為


向 Azure 地圖服務驗證

Azure 地圖服務 支援三種驗證方法:共用密鑰、Microsoft Entra ID 和共用存取簽章 (SAS) 令牌。 本文說明這些驗證方法,包括帳戶控件的詳細數據,例如停用 Azure 原則 和跨原始來源資源分享的本機驗證(CORS)。

注意

為了改善與 Azure 地圖服務的安全通訊,我們現在支援傳輸層安全性 (TLS) 1.2,並淘汰 TLS 1.0 和 1.1 的支援。 如果您目前使用 TLS 1.x,請評估 TLS 1.2 整備程度,並使用解決 TLS 1.0 問題中所述的測試來開發移轉計畫。

共用金鑰驗證

如需在 Azure 入口網站中檢視金鑰的相關資訊,請參閱檢視驗證詳細資料

建立 Azure 地圖服務 帳戶時,會自動產生主要和次要密鑰。 當您使用共用金鑰驗證呼叫 Azure 地圖服務時,建議您使用主要金鑰做為訂用帳戶金鑰。 共用金鑰驗證會將 Azure 地圖服務帳戶所產生的金鑰傳遞至 Azure 地圖服務。 對於 Azure 地圖服務的每個要求,請將訂用帳戶金鑰新增為 URL 的參數。 在輪替金鑰變更等情節中,可以使用次要金鑰。

在 URL 中使用訂用帳戶金鑰做為參數的範例:

https://atlas.microsoft.com/map/tile?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2024-04-01&tilesetId=microsoft.base.road&zoom=15&x=5236&y=12665&tileSize=256

重要

主要和次要金鑰應該視為敏感性資料。 共用金鑰可用來驗證所有 Azure 地圖服務 REST API。 使用共用金鑰的使用者應該透過環境變數或安全祕密儲存體,將 API 金鑰抽象化,以便集中管理。

Microsoft Entra 驗證

Azure 訂用帳戶會與 Microsoft Entra 租用戶一起提供,以實現更精細的存取控制。 Azure 地圖服務會使用 Microsoft Entra ID 為 Azure 地圖服務提供驗證。 Microsoft Entra ID 會為在 Microsoft Entra 租用戶中註冊的使用者和應用程式提供身分識別型驗證。

針對與包含 Azure 地圖服務帳戶的 Azure 訂用帳戶相關聯的 Microsoft Entra 租用戶,Azure 地圖服務可接受 OAuth 2.0 存取權杖。 Azure 地圖服務也可接受下列項目的權杖:

  • Microsoft Entra 使用者
  • 使用使用者所委派權限的合作夥伴應用程式
  • 適用於 Azure 資源的受控識別

Azure 地圖服務會為每個 Azure 地圖服務帳戶產生「唯一識別碼 (用戶端識別碼)」。 當您將此用戶端識別碼與其他參數結合時,您可以從 Microsoft Entra ID 要求權杖。

如需如何為 Azure 地圖服務設定 Microsoft Entra ID 和要求權杖的詳細資訊,請參閱管理 Azure 地圖服務中的驗證

如需使用 Microsoft Entra ID 進行驗證的一般資訊,請參閱驗證與授權

Azure 資源和 Azure 地圖服務的受控識別

適用於 Azure 資源的受控識別可為 Azure 服務提供可向 Microsoft Entra ID 進行驗證的自動受控應用程式型安全性主體。 透過 Azure 角色型存取控制 (Azure RBAC),受控識別安全性主體可以獲授權存取 Azure 地圖服務。 受控識別的一些範例包括:Azure App 服務、Azure Functions 和 Azure 虛擬機器。 如需受控識別的清單,請參閱可以使用受控識別來存取其他服務的 Azure 服務。 如需受控識別的詳細資訊,請參閱管理 Azure 地圖服務中的驗證

設定應用程式 Microsoft Entra 驗證

應用程式會使用 Microsoft Entra ID 提供的一或多個支援情節,向 Microsoft Entra 租用戶進行驗證。 每個 Microsoft Entra 應用程式情節都會根據業務需求來代表不同的需求。 某些應用程式可能需要使用者登入體驗,而其他應用程式可能需要應用程式登入體驗。 如需詳細資訊,請參閱驗證流程和應用程式情節

應用程式收到存取權杖之後,SDK 和/或應用程式除了其他 REST API HTTP 標頭之外,還會傳送具有下列一組必要 HTTP 標頭的 HTTPS 要求:

標頭名稱
x-ms-client-id 30d7cc…9f55
授權 Bearer eyJ0e…HNIVN

注意

x-ms-client-id 是以 Azure 地圖服務帳戶為基礎的 GUID,其顯示在 Azure 地圖服務的驗證頁面上。

以下是使用 Microsoft Entra ID OAuth 持有人權杖的 Azure 地圖服務路由要求範例:

GET /route/directions/json?api-version=1.0&query=52.50931,13.42936:52.50274,13.43872
Host: atlas.microsoft.com
x-ms-client-id: 30d7cc….9f55
Authorization: Bearer eyJ0e…HNIVN

如需檢視用戶端識別碼的相關資訊,請參閱檢視驗證詳細資料

提示

以程式設計方式取得用戶端識別碼

使用 PowerShell 時,用戶端識別碼會儲存為 IMapsAccount 物件中的 UniqueId 屬性。 您可以使用 Get-AzMapsAccount 擷取此屬性,例如:

$maps = Get-AzMapsAccount -Name {Azure-Maps_Account-Name} -ResourceGroupName {Resource-Group-Name} -SubscriptionId {SubscriptionId}
$ClientId = $maps.UniqueId

例如,使用 Azure CLI,將 az maps account show 命令與 --query 參數搭配使用時:

$ClientId = az maps account show --name {Azure-Maps_Account-Name} --resource-group {Resource-Group-Name} --subscription {SubscriptionId} --query properties.uniqueId

使用角色型存取控制進行授權

必要條件

如果您是 Azure RBAC 的新手,Azure 角色型存取控制 (Azure RBAC) 概觀提供已授與一組權限的主體型別,也稱為角色定義。 角色定義提供 REST API 動作的權限。 Azure 地圖服務支援存取 Azure 角色型存取控制 (Azure RBAC) 的所有主體型別,包括:個別的 Microsoft Entra 使用者、群組、應用程式、Azure 資源和 Azure 受控識別。 將存取權套用至一或多個 Azure 地圖服務帳戶稱為範圍。 套用主體、角色定義和範圍時,即會建立角色指派。

概觀

下一節將討論 Azure 地圖服務與 Azure RBAC 整合的概念和元件。 在設定 Azure 地圖服務帳戶的過程中,Microsoft Entra 目錄會與 Azure 地圖服務帳戶所在的 Azure 訂用帳戶相關聯。

當您設定 Azure RBAC 時,您可以選擇安全性主體,並將其套用至角色指派。 若要瞭解如何在 Azure 入口網站上新增角色指派,請參閱使用 Azure 入口網站指派 Azure 角色

挑選角色定義

下列角色定義類型存在,可支援應用程式情節。

Azure 角色定義 描述
Azure 地圖服務搜尋及轉譯器資料讀取器 僅提供搜尋和轉譯 Azure 地圖服務 REST API 的存取權,以限制對基本網頁瀏覽器使用案例的存取。
Azure 地圖服務資料讀者 提供不可變 Azure 地圖服務 REST API 的存取權。
Azure 地圖服務資料參與者 提供不可變 Azure 地圖服務 REST API 的存取權。 可變動性是由動作所定義:寫入和刪除。
Azure 地圖服務資料讀取和批次角色 此角色可用來在 Azure 地圖服務上指派讀取和批次動作。
自訂角色定義 建立製作的角色,以彈性地限制對 Azure 地圖服務 REST API 的存取。

某些 Azure 地圖服務 服務需要更高的許可權,才能在 Azure 地圖服務 REST API 上執行寫入或刪除動作。 服務需要 Azure 地圖服務資料參與者角色,以提供寫入或刪除動作。 下表說明在使用寫入或刪除動作時,Azure 地圖服務資料參與者適用哪些服務。 只需要讀取動作時,可以使用 Azure 地圖服務資料讀取者角色來取代 Azure 地圖服務資料參與者角色。

Azure 地圖服務 Azure 地圖服務角色定義
Creator (已取代1) Azure 地圖服務資料參與者
空間 (已取代1) Azure 地圖服務資料參與者
批次搜尋路由 Azure 地圖服務資料參與者

1 Azure 地圖服務 Creator 及資料登錄和空間服務現已被取代,將於 9/30/25 被取代。

如需檢視 Azure RBAC 設定的相關資訊,請參閱如何設定 Azure 地圖服務的 Azure RBAC

自訂角色定義

應用程式安全性的其中一個層面是最低權限原則,做法是將存取權限限制為目前的作業所需要的權限。 若要限制存取權限,請建立支援使用案例的自訂角色定義,這需要更精細的存取控制。 若要建立自訂角色定義,請選取要包含或排除定義的特定資料動作。

然後,自訂角色定義可以用於任何安全性主體的角色指派中。 若要深入瞭解 Azure 自訂角色定義,請參閱 Azure 自訂角色

以下是自訂角色可以改善應用程式安全性的一些範例情節。

案例 自訂角色數據動作
具有基底地圖底圖的公開或互動式登入網頁,且沒有其他 REST API。 Microsoft.Maps/accounts/services/render/read
只需要反向地理編碼且不需要其他 REST API 的應用程式。 Microsoft.Maps/accounts/services/search/read
安全性主體的角色,要求讀取以 Azure 地圖服務建立者為基礎的地圖資料和基底地圖底圖 REST API。 Microsoft.Maps/accounts/services/data/read, Microsoft.Maps/accounts/services/render/read
安全性主體的角色,需要讀取、寫入和刪除以建立者為基礎的地圖資料。 定義為地圖資料編輯器角色,不允許存取基底地圖底圖之類的其他 REST API。 Microsoft.Maps/accounts/services/data/read、 、 Microsoft.Maps/accounts/services/data/writeMicrosoft.Maps/accounts/services/data/delete

了解範圍

角色指派是在 Azure 資源階層中定義,從最上層管理群組到最低層級,例如 Azure 地圖服務 帳戶。

將角色指派指派給資源群組,可以存取群組中的多個 Azure 地圖服務帳戶或資源。

提示

Microsoft 的一般建議是將存取權指派給 Azure 地圖服務帳戶範圍,因為其可防止非預期存取相同 Azure 訂用帳戶中現有的其他Azure 地圖服務帳戶。

停用本機驗證

Azure 地圖服務帳戶針對名為 disableLocalAuthMicrosoft.Maps/accounts,在管理 API 中支援標準 Azure 屬性。 當為 true,Azure 地圖服務 數據平面 REST API 的所有驗證都會停用,但 Microsoft Entra 驗證除外。 這是使用Azure 原則來設定,以控制共用金鑰和 SAS 權杖的散發和管理。 如需詳細資訊,請參閱何謂 Azure 原則?

停用本地驗證不會立即生效。 允許服務的幾分鐘來封鎖未來的驗證要求。 若要重新啟用本機驗證,請將 屬性設定為 false ,並在幾分鐘后繼續本機驗證。

{
  // omitted other properties for brevity.
  "properties": {
    "disableLocalAuth": true
  }
}

共用存取簽章權杖驗證

共用存取簽章 (SAS) 令牌是使用 JSON Web 令牌 (JWT) 格式建立的驗證令牌。 這些令牌會以密碼編譯方式簽署,以使用 Azure 地圖服務 REST API 驗證應用程式。 這些 SAS 令牌是藉由整合使用者指派的受控識別與 Azure 訂用帳戶中的 Azure 地圖服務 帳戶來建立。 使用者指派的受控識別會使用內建或自訂角色定義,透過 Azure RBAC 授與 Azure 地圖服務帳戶的授權。

SAS 權杖與 Microsoft Entra 存取權杖的功能主要差異:

  • 權杖的存留期上限為一天 (24 小時)。
  • 每個權杖的 Azure 位置和地理位置存取控制。
  • 每個權杖的速率限制大約每秒 1 到 500 個要求。
  • 權杖的私密金鑰是 Azure 地圖服務帳戶資源的主要和次要金鑰。
  • 授權的服務主體物件是由使用者指派的受控識別所提供。

SAS 權杖是不可變的。 建立之後,它們會保持有效,直到到期為止,以及其設定,例如允許的區域、速率限制和使用者指派的受控識別都無法改變。 如需 SAS 令牌撤銷和存取控制修改的詳細資訊,請參閱 瞭解訪問控制

瞭解 SAS 權杖速率限制

SAS 權杖最大速率限制可以控制Azure 地圖服務資源的計費

在令牌上設定最大速率限制時,maxRatePerSecond超過此限制的任何費率都不會計費給帳戶,讓您能夠建立可計費交易的上限。 不過,一旦達到該限制,應用程式就會收到所有 429 (TooManyRequests) 交易的用戶端錯誤回應。 這是應用程式負責管理 SAS 令牌的重試和散發。 對於可以針對帳戶建立的SAS令牌數目沒有任何限制。 若要修改現有令牌的限制,必須產生新的 SAS 令牌。 舊的 SAS 令牌會維持有效狀態,直到到期為止。

估計範例:

每秒速率上限近似值 每秒實際速率 持續速率的持續時間 (以秒為單位) 可計費交易總數
10 20 600 6,000

實際速率限制會視 Azure 地圖服務在一段時間內強制執行一致性的能力而有所不同。 不過,這允許對計費成本進行預防性控制。

每個 Azure 位置 (而不是全域或地理位置) 都會強制執行速率限制

例如,具有 10 個 maxRatePerSecond 的單一 SAS 權杖可用來限制 East US 位置中的輸送量。 如果在 West US 2 中使用相同的權杖,則會建立新的計數器,以將該位置的輸送量限制為 10,與 East US 位置無關。 控制成本並改善可預測性的建議:

  1. 為目標地理位置建立具有指定允許的 Azure 位置的 SAS 令牌
  2. 使用地理資料平面 REST API 端點 (https://us.atlas.microsoft.comhttps://eu.atlas.microsoft.com)。

請考慮應用程式拓撲,其中端點 https://us.atlas.microsoft.com 會路由至裝載 Azure 地圖服務的相同美國位置,例如 East USWest Central USWest US 2。 相同的概念適用於其他地理端點,例如介於 West EuropeNorth Europe 之間的 https://eu.atlas.microsoft.com。 若要防止非預期的授權拒絕,請使用其 Azure 位置與應用程式取用位置相同的 SAS 權杖。 端點位置是使用 Azure 地圖服務管理 REST API 來定義。

預設速率限制優先於 SAS 權杖速率限制

如 Azure 地圖服務 費率限制中所述,個別服務供應專案的費率限制會集體在帳戶層級強制執行。

請考慮搜尋服務 - 非批次反向案例,其限制為下表的每秒 250 個查詢 (QPS)。 每個資料表都代表範例使用方式中預估的成功交易總數。

第一個資料表顯示一個權杖,其每秒要求上限為 500,然後應用程式的實際使用量為每秒 500 個要求,持續時間為 60 秒。 搜尋服務 - 非批次反向的速率限制為 250,這表示在 60 秒內發出的要求總計為 30000 個;15000 個要求將會是可計費的交易。 其餘要求將會導致狀態碼 429 (TooManyRequests)

名稱 每秒速率上限近似值 每秒實際速率 持續速率的持續時間 (以秒為單位) 大約的成功交易總計
token 500 500 60 ~15,000

例如,如果建立兩個SAS令牌並使用與 Azure 地圖服務 帳戶相同的位置,則每個令牌都會共用預設速率限制 250 QPS。 如果兩個令牌同時使用相同的輸送量,則每個令牌都會授與 7,500 個成功的交易。

名稱 每秒速率上限近似值 每秒實際速率 持續速率的持續時間 (以秒為單位) 大約的成功交易總計
權杖 1 250 250 60 ~7500
權杖 2 250 250 60 ~7500

瞭解 SAS 權杖存取控制

SAS 權杖會使用 RBAC 來控制 REST API 的存取。 當您建立 SAS 權杖時,地圖帳戶上的必要條件受控識別會獲指派 Azure RBAC 角色,以授與特定 REST API 動作的存取權。 請參閱挑選角色定義,以判斷應用程式允許的 API。

若要指派暫時存取權,並在 SAS 令牌到期之前將其移除,請撤銷令牌。 撤銷存取權的另一個原因是,如果令牌無意中以 Azure 地圖服務 數據參與者角色散發,這可允許未經授權的數據讀取/寫入 Azure 地圖服務 REST API,導致敏感數據暴露或非預期成本。

有兩個選項可撤銷 SAS 令牌的存取權:

  1. 重新產生 SAS 權杖所使用的金鑰,或地圖帳戶的 secondaryKey。
  2. 移除相關聯地圖帳戶上受控識別的角色指派。

警告

刪除 SAS 令牌所使用的受控識別,或撤銷受控識別的訪問控制,可能會導致應用程式實例使用 SAS 令牌和受控識別來傳回或從 #DED450C2151464C0A966DFE6DBF311787 REST API 傳回或403 Forbidden傳回401 Unauthorized,而導致潛在的應用程式中斷。

若要避免中斷:

  1. 將第二個受控識別新增至地圖帳戶,並將正確的角色指派授與新的受控識別。
  2. 使用 secondaryKey 建立 SAS 權杖 (或與先前不同的受控識別) 作為 signingKey,並將新的 SAS 權杖散發至應用程式。
  3. 重新產生主索引鍵、從帳戶移除受控識別,以及移除受控識別的角色指派。

建立 SAS 權杖

若要建立 SAS 權杖,您必須具備 Contributor 角色存取權,以在 Azure 訂用帳戶中管理 Azure 地圖服務帳戶和使用者指派的身分識別。

重要

在 Azure 位置 global 中建立的現有Azure 地圖服務帳戶不支援受控識別。

首先,您應該在與 Azure 地圖服務 帳戶相同的位置建立使用者指派的受控識別

提示

您應該針對受控識別和 Azure 地圖服務帳戶使用相同的位置。

建立受控識別之後,您可以建立或更新 Azure 地圖服務帳戶並加以連結。 如需詳細資訊,請參閱管理 Azure 地圖服務帳戶

使用受控識別成功建立或更新帳戶之後,將受控識別的角色型存取控制指派給帳戶範圍 Azure 地圖服務資料角色。 這可讓受控識別存取地圖帳戶的 Azure 地圖服務 REST API。

接下來,請使用 Azure 管理 SDK 工具、在帳戶管理 API 上列出 SAS 作業,或地圖帳戶資源的 [Azure 入口網站共用存取簽章] 頁面來建立 SAS 權杖。

SAS 權杖參數:

參數名稱 範例值 描述
signingKey primaryKey 必要,使用 signingKey 的字串列舉值 (primaryKeysecondaryKey 或受控識別) 來建立 SAS 的簽章。
principalId <GUID> 必要,principalId 是附加至地圖帳戶之使用者指派受控識別的物件 (主體) 識別碼。
區域 [ "eastus", "westus2", "westcentralus" ] 選擇性;預設值為 null。 區域會控制哪些區域允許 SAS 權杖用於 Azure 地圖服務 REST 資料平面 API。 省略區域參數可允許使用 SAS 權杖,而不需要任何條件約束。 將 us.atlas.microsoft.comeu.atlas.microsoft.com 之類的 Azure 地圖服務資料平面地理端點搭配使用時,可讓應用程式控制指定地理位置的使用方式。 這可防止在其他地理位置使用。
maxRatePerSecond 500 必要,指定授與 SAS 權杖的每秒要求數上限近似值。 達到限制之後,其他輸送量會受到 HTTP 狀態碼 429 (TooManyRequests) 的速率限制。
start 2021-05-24T10:42:03.1567373Z 必要,指定權杖變成作用中的日期和時間的 UTC 日期。
expiry 2021-05-24T11:42:03.1567373Z 必要,指定權杖過期的日期和時間的 UTC 日期。 開始和到期之間的持續時間不能超過 24 小時。

使用 SAS 權杖設定應用程式

應用程式收到 SAS 權杖之後,Azure 地圖服務 SDK 和/或應用程式除了其他 REST API HTTP 標頭之外,還會傳送具有下列一組必要 HTTP 標頭的 HTTPS 要求:

標頭名稱
授權 jwt-sas eyJ0e….HNIVN

注意

jwt-sas 是使用 SAS 權杖表示的驗證配置。 請勿包含 x-ms-client-id 或其他授權標頭或 subscription-key 查詢字串參數。

跨原點資源共用 (CORS)

CORS 是一項 HTTP 通訊協定,可讓 Web 應用程式在某個網域下執行,以存取其他網域中的資源。 網頁瀏覽器會實作稱為 相同原始原則 的安全性限制,它可防止網頁呼叫不同網域中的 API;CORS 則提供了一個安全的方式,可讓一個網域 (原始網域) 能夠呼叫其他網域中的 API。 使用 Azure 地圖服務帳戶資源,您可以設定允許哪些原點從您的應用程式存取 Azure 地圖服務 REST API。

重要

CORS 不是授權機制。 啟用 CORS 時,使用 REST API 對對應帳戶提出的要求也需要有效的對應帳戶驗證配置,例如共用密鑰、Microsoft Entra ID 或 SAS 令牌。

所有地圖帳戶定價層、資料平面端點和位置都支援 CORS。

必要條件

為了防止在用戶端上執行惡意程式碼,新式瀏覽器會封鎖來自 Web 應用程式對在個別網域中執行之資源的要求。

  • 如果您不熟悉 CORS,請參閱跨原點資源共用 (CORS),其會讓 Access-Control-Allow-Origin 標頭宣告哪些原點可以呼叫 Azure 地圖服務帳戶的端點。 CORS 通訊協定不是 Azure 地圖服務特有的。

CORS 要求

來自原始網域的 CORS 要求可能包含兩個不同要求:

  • 預檢要求,其會查詢服務所加諸的 CORS 限制。 除非要求是標準方法 GET、HEAD、POST 或包含 Authorization 要求標頭的要求,否則需要預檢要求。

  • 對所需資源提出的實際要求。

預檢要求

預檢要求是安全性措施,但也可確保伺服器了解實際要求中傳送的方法和標頭、驗證要求的來源,以及查詢針對對應帳戶建立的 CORS 限制。 網頁瀏覽器(或其他使用者代理程式)會傳送 OPTIONS 要求,其中包含要求標頭、方法和原始網域。 如果帳戶驗證可能透過 CORS 預檢通訊協定,地圖帳戶服務會嘗試擷取任何 CORS 規則。

如果無法驗證,地圖服務會評估一組預先設定的 CORS 規則,這些規則會指定需在對地圖服務提出的實際要求上指定哪些原點網域、要求方法和要求標頭。 根據預設,地圖帳戶會設定為允許所有原點順暢地整合到網頁瀏覽器。

如果符合下列準則,服務會以所需的 Access-Control 標頭回應預檢要求:

  1. OPTIONS 要求包含所需的 CORS 標頭 (來源和 Access-Control-Request-Method 標頭)
  2. 驗證成功,且已為符合預檢要求的帳戶啟用 CORS 規則。
  3. 已略過驗證,因為無法在預檢要求上指定必要的 Authorization 要求標頭。

當預檢要求成功時,服務會使用狀態碼 200 (OK) 回應,並在回應中包含必要的 Access-Control 標頭。

如果發生下列狀況,服務會拒絕預檢要求:

  1. 如果 OPTIONS 要求未包含必要的 CORS 標頭 (原點和 Access-Control-Request-Method 標頭),服務會使用狀態碼 400 (Bad request) 回應。
  2. 如果在預檢要求上成功驗證,且沒有 CORS 規則符合預檢要求,則服務會使用狀態碼 403 (Forbidden) 回應。 如果 CORS 規則設定為接受與目前瀏覽器用戶端原始要求標頭不符的原點,就可能發生此情況。

注意

預檢要求是針對服務 (而不是針對要求的資源) 進行評估。 帳戶擁有者必須透過設定合適的帳戶服務屬性來啟用 CORS ,才能讓要求成功。

實際要求

一旦接受預檢要求並傳回回應之後,瀏覽器便會對地圖服務發送實際要求。 如果預檢要求遭到拒絕,瀏覽器會立即拒絕實際要求。

實際要求會被視為對地圖服務提出的一般要求。 Origin 標頭的目前狀態表示要求是 CORS 要求,而服務會針對 CORS 規則進行驗證。 如果找到相符項目,就會將 Access-Control 標頭加入回應並傳送回用戶端。 如果找不到相符項目,回應會傳回 403 (Forbidden),指出 CORS 原點錯誤。

啟用 CORS 原則

建立或更新地圖帳戶時,其屬性會定義允許的來源。 CORS 規則可以透過 Azure 地圖服務 管理 SDK、Azure 地圖服務 管理 REST API 和入口網站,在 Azure 地圖服務 帳戶屬性上設定。 設定服務的 CORS 規則之後,會評估來自不同網域的授權要求,以確保符合指定的規則。 例如:

{
  "location": "eastus",
  "sku": {
    "name": "G2"
  },
  "kind": "Gen2",
  "properties": {
    "cors": {
      "corsRules": [
        {
          "allowedOrigins": [
            "https://www.azure.com",
            "https://www.microsoft.com"
          ]
        }
      ]
    }
  }
}

只能指定一個具有允許原點清單的 CORS 規則。 每個原點允許在指定原點的網頁瀏覽器中向 Azure 地圖服務 REST API 提出的 HTTP 要求。

移除 CORS 原則

您可以移除 CORS:

  • 在 Azure 入口網站中查詢
  • 以程式設計方式使用:
    • Azure 地圖服務 SDK
    • Azure 地圖服務管理 REST API
    • ARM 範本

提示

如果您使用 Azure 地圖服務 管理 REST API,請在PUT要求本文中使用 或 PATCH 搭配空白corsRule清單。

{
  "location": "eastus",
  "sku": {
    "name": "G2"
  },
  "kind": "Gen2",
  "properties": {
        "cors": {
          "corsRules": []
        }
    }
  }
}

瞭解計費交易

Azure 地圖服務不會計算以下項目的計費交易:

  • 5xx HTTP 狀態碼
  • 401 (未經授權)
  • 403 (禁止)
  • 408 (逾時)
  • 429 (TooManyRequests)
  • CORS 預檢要求

如需計費交易和其他 Azure 地圖服務定價資訊的詳細資訊,請參閱 Azure 地圖服務定價

下一步

若要深入瞭解安全性最佳做法,請參閱:

若要深入瞭解如何向 Microsoft Entra ID 和 Azure 地圖服務驗證應用程式,請參閱:

若要深入瞭解如何向 Microsoft Entra ID 驗證 Azure 地圖服務控制項,請參閱: