Aracılığıyla paylaş


Azure Haritalar ile kimlik doğrulaması

Azure Haritalar isteklerin kimliğini doğrulamanın üç yolunu destekler: Paylaşılan Anahtar kimlik doğrulaması, Microsoft Entra Id kimlik doğrulaması ve Paylaşılan Erişim İmzası (SAS) Belirteci kimlik doğrulaması. Bu makalede, Azure Haritalar hizmetleri uygulamanıza yardımcı olacak kimlik doğrulama yöntemleri açıklanmaktadır. Makalede, Azure İlkesi için yerel kimlik doğrulamasını devre dışı bırakma ve Çıkış Noktaları Arası Kaynak Paylaşımı (CORS) gibi diğer hesap denetimleri de açıklanmaktadır.

Not

Azure Haritalar ile güvenli iletişimi geliştirmek için artık Aktarım Katmanı Güvenliği (TLS) 1.2'yi destekliyoruz ve TLS 1.0 ve 1.1 desteğini kaldırıyoruz. Şu anda TLS 1.x kullanıyorsanız TLS 1.2 hazırlığınızı değerlendirin ve TLS 1.0 Sorununu Çözme bölümünde açıklanan testle bir geçiş planı geliştirin.

Paylaşılan Anahtar kimlik doğrulaması

Anahtarlarınızı Azure portalında görüntüleme hakkında bilgi için bkz . Kimlik doğrulama ayrıntılarını görüntüleme.

Birincil ve ikincil anahtarlar, Azure Haritalar hesabı oluşturulduktan sonra oluşturulur. Paylaşılan anahtar kimlik doğrulamasıyla Azure Haritalar çağırırken abonelik anahtarı olarak birincil anahtarı kullanmanız tavsiye edilir. Paylaşılan Anahtar kimlik doğrulaması, Azure Haritalar hesabı tarafından oluşturulan bir anahtarı bir Azure Haritalar hizmetine geçirir. Hizmetleri Azure Haritalar her istek için abonelik anahtarını URL'ye parametre olarak ekleyin. İkincil anahtar, sıralı anahtar değişiklikleri gibi senaryolarda kullanılabilir.

URL'nizde parametre olarak abonelik anahtarını kullanma örneği:

https://atlas.microsoft.com/mapData/upload?api-version=1.0&dataFormat=zip&subscription-key={Your-Azure-Maps-Subscription-key}

Önemli

Birincil ve İkincil anahtarlar hassas veriler olarak ele alınmalıdır. Paylaşılan anahtar, tüm Azure Haritalar REST API'sinin kimliğini doğrulamak için kullanılır. Paylaşılan anahtar kullanan kullanıcıların API anahtarını ortam değişkenleri veya güvenli gizli depolama aracılığıyla soyutlamaları gerekir ve burada merkezi olarak yönetilebilir.

Microsoft Entra doğrulaması

Azure Abonelikleri, ayrıntılı erişim denetimini etkinleştirmek için bir Microsoft Entra kiracısı ile sağlanır. Azure Haritalar, Microsoft Entra Id kullanarak Azure Haritalar hizmetleri için kimlik doğrulaması sunar. Microsoft Entra Id, Microsoft Entra kiracısında kayıtlı kullanıcılar ve uygulamalar için kimlik tabanlı kimlik doğrulaması sağlar.

Azure Haritalar kabul eder Azure Haritalar hesabı içeren bir Azure aboneliğiyle ilişkili Microsoft Entra kiracıları için OAuth 2.0 erişim belirteçleri. Azure Haritalar ayrıca şu belirteçleri kabul eder:

  • Microsoft Entra kullanıcıları
  • Kullanıcılar tarafından atanan izinleri kullanan iş ortağı uygulamaları
  • Azure kaynakları için yönetilen kimlikler

Azure Haritalar, her Azure Haritalar hesabı için benzersiz bir tanımlayıcı (istemci kimliği) oluşturur. Bu istemci kimliğini diğer parametrelerle birleştirdiğinizde Microsoft Entra Id'den belirteç isteyebilirsiniz.

Azure Haritalar için Microsoft Entra Kimliğini yapılandırma ve belirteç isteme hakkında daha fazla bilgi için bkz. Azure Haritalar kimlik doğrulamasını yönetme.

Microsoft Entra Id ile kimlik doğrulaması hakkında genel bilgi için bkz . Kimlik doğrulaması ve yetkilendirme.

Azure kaynakları ve Azure Haritalar için yönetilen kimlikler

Azure kaynakları için yönetilen kimlikler, Azure hizmetlerine Microsoft Entra Kimliği ile kimlik doğrulaması yapabilen otomatik olarak yönetilen uygulama tabanlı bir güvenlik sorumlusu sağlar. Azure rol tabanlı erişim denetimi (Azure RBAC) ile yönetilen kimlik güvenlik sorumlusu Azure Haritalar hizmetlere erişme yetkisine sahip olabilir. Yönetilen kimliklere örnek olarak Azure Uygulaması Hizmeti, Azure İşlevleri ve Azure Sanal Makineler verilebilir. Yönetilen kimliklerin listesi için bkz . Diğer hizmetlere erişmek için yönetilen kimlikleri kullanabilen Azure hizmetleri. Yönetilen kimlikler hakkında daha fazla bilgi için bkz. Azure Haritalar kimlik doğrulamasını yönetme.

Uygulama Microsoft Entra kimlik doğrulamayı yapılandırma

Uygulamalar, Microsoft Entra Kimliği tarafından sağlanan bir veya daha fazla desteklenen senaryoyu kullanarak Microsoft Entra kiracısıyla kimlik doğrulaması yapar. Her Microsoft Entra uygulama senaryosu, iş gereksinimlerine göre farklı gereksinimleri temsil eder. Bazı uygulamalar kullanıcı oturum açma deneyimleri gerektirebilir ve diğer uygulamalar bir uygulama oturum açma deneyimi gerektirebilir. Daha fazla bilgi için bkz. Kimlik doğrulama akışları ve uygulama senaryoları.

Uygulama bir erişim belirteci aldıktan sonra SDK ve/veya uygulama, diğer REST API HTTP üst bilgilerine ek olarak aşağıdaki gerekli HTTP üst bilgileri kümesini içeren bir HTTPS isteği gönderir:

Üst Bilgi Adı Değer
x-ms-client-id 30d7cc... 9f55
Yetkilendirme Taşıyıcı eyJ0e... HNIVN

Not

x-ms-client-idAzure Haritalar kimlik doğrulaması sayfasında görüntülenen Azure Haritalar hesap tabanlı GUID'dir.

Aşağıda Microsoft Entra ID OAuth Taşıyıcı belirtecini kullanan bir Azure Haritalar yol isteği örneği verilmiştir:

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

İstemci kimliğinizi görüntüleme hakkında bilgi için bkz . Kimlik doğrulama ayrıntılarını görüntüleme.

İpucu

İstemci Kimliğini program aracılığıyla alma

PowerShell kullanılırken İstemci Kimliği nesnesinde IMapsAccount Özellik olarak UniqueId depolanır. Bu özelliği kullanarak Get-AzMapsAccountalırsınız, örneğin:

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

Azure CLI kullanırken parametresiyle komutunu --query kullanınaz maps account show, örneğin:

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

Rol tabanlı erişim denetimiyle yetkilendirme

Önkoşullar

Azure RBAC'yi yeni kullanıyorsanız, Azure rol tabanlı erişim denetimine (Azure RBAC) genel bakış, Sorumlu türlerine rol tanımı olarak da bilinen bir dizi izin verilir. Rol tanımı REST API eylemleri için izinler sağlar. Azure Haritalar için tüm sorumlu türlerine erişimi desteklerAzure rol tabanlı erişim denetimi (Azure RBAC) şunları içerir: bireysel Microsoft Entra kullanıcıları, grupları, uygulamaları, Azure kaynakları ve Azure yönetilen kimlikleri. Bir veya daha fazla Azure Haritalar hesabına erişim uygulamak kapsam olarak bilinir. Bir sorumlu, rol tanımı ve kapsam uygulandığında rol ataması oluşturulur.

Genel bakış

Sonraki bölümlerde Azure RBAC ile Azure Haritalar tümleştirmesinin kavramları ve bileşenleri ele alınmaktadır. Azure Haritalar hesabınızı ayarlama işleminin bir parçası olarak, Azure Haritalar hesabının bulunduğu Azure aboneliğiyle bir Microsoft Entra dizini ilişkilendirilir.

Azure RBAC'yi yapılandırırken bir güvenlik sorumlusu seçer ve bunu bir rol atamasına uygularsınız. Azure portalında rol atamaları eklemeyi öğrenmek için bkz . Azure portalını kullanarak Azure rolleri atama.

Rol tanımı seçme

Uygulama senaryolarını desteklemek için aşağıdaki rol tanımı türleri vardır.

Azure Rol Tanımı Açıklama
Veri Okuyucusu'Azure Haritalar Arama ve İşleme Temel web tarayıcısı kullanım örneklerine erişimi sınırlamak için yalnızca arama ve işleme Azure Haritalar REST API'lerine erişim sağlar.
veri okuyucu Azure Haritalar Sabit Azure Haritalar REST API'lerine erişim sağlar.
veri katkıda bulunanı Azure Haritalar Değiştirilebilir Azure Haritalar REST API'lerine erişim sağlar. Eylemler tarafından tanımlanan mutability: yazma ve silme.
Veri Okuma ve Toplu İş Rolünü Azure Haritalar Bu rol, Azure Haritalar üzerinde okuma ve toplu işlem eylemleri atamak için kullanılabilir.
Özel Rol Tanımı Azure Haritalar REST API'lerine esnek kısıtlı erişimi etkinleştirmek için hazırlanmış bir rol oluşturun.

Bazı Azure Haritalar hizmetleri, Azure Haritalar REST API'lerinde yazma veya silme eylemleri gerçekleştirmek için yükseltilmiş ayrıcalıklar gerektirebilir. Azure Haritalar Veri Katkıda Bulunanı rolü, yazma veya silme eylemleri sağlayan hizmetler için gereklidir. Aşağıdaki tabloda, yazma veya silme eylemleri kullanılırken Veri Katkıda Bulunanı Azure Haritalar hangi hizmetlerin geçerli olduğu açıklanmaktadır. Yalnızca okuma eylemleri gerektiğinde, Azure Haritalar Veri Katılımcısı rolü yerine Azure Haritalar Veri Okuyucusu rolü kullanılabilir.

Azure Haritalar hizmeti rol tanımını Azure Haritalar
Veri veri katkıda bulunanı Azure Haritalar
Yaratıcısı veri katkıda bulunanı Azure Haritalar
Uzamsal veri katkıda bulunanı Azure Haritalar
Toplu Arama ve Yönlendirme veri katkıda bulunanı Azure Haritalar

Azure RBAC ayarlarınızı görüntüleme hakkında bilgi için bkz. Azure Haritalar için Azure RBAC'yi yapılandırma.

Özel rol tanımları

Uygulama güvenliğinin bir yönü, erişim haklarını geçerli iş için gerekli haklara sınırlama uygulaması olan en düşük ayrıcalık ilkesidir. Erişim haklarını sınırlamak, erişim denetimi için daha ayrıntılılık gerektiren kullanım örneklerini destekleyen özel rol tanımları oluşturularak gerçekleştirilir. Özel rol tanımı oluşturmak için, tanım için dahil etmek veya dışlamak üzere belirli veri eylemlerini seçin.

Özel rol tanımı daha sonra herhangi bir güvenlik sorumlusu için rol atamasında kullanılabilir. Azure özel rol tanımları hakkında daha fazla bilgi edinmek için bkz . Azure özel rolleri.

Özel rollerin uygulama güvenliğini geliştirebileceği bazı örnek senaryolar aşağıda verilmiştir.

Senaryo Özel Rol Verileri Eylemleri
Temel harita kutucukları ve başka REST API'leri olmayan genel kullanıma yönelik veya etkileşimli oturum açma web sayfası. Microsoft.Maps/accounts/services/render/read
Yalnızca ters coğrafi kodlama gerektiren ve başka REST API'leri gerektirmeyen bir uygulama. Microsoft.Maps/accounts/services/search/read
Azure Haritalar Oluşturucu tabanlı harita verilerinin ve temel harita kutucuğu REST API'lerinin okunmasını isteyen bir güvenlik sorumlusu rolü. Microsoft.Maps/accounts/services/data/read, Microsoft.Maps/accounts/services/render/read
Oluşturucu tabanlı harita verilerinin okunmasını, yazmasını ve silinmesini gerektiren bir güvenlik sorumlusu rolü. Temel harita kutucukları gibi diğer REST API'lere erişime izin vermeyen bir harita veri düzenleyicisi rolü olarak tanımlanır. Microsoft.Maps/accounts/services/data/read, Microsoft.Maps/accounts/services/data/write, Microsoft.Maps/accounts/services/data/delete

Kapsamı anlama

Rol ataması oluşturulurken Azure kaynak hiyerarşisinde tanımlanır. Hiyerarşinin üst kısmı bir yönetim grubu, en düşük ise Azure Haritalar hesabı gibi bir Azure kaynağıdır. Bir kaynak grubuna rol ataması atamak, gruptaki birden çok Azure Haritalar hesabına veya kaynağına erişimi etkinleştirebilir.

İpucu

Microsoft'un genel önerisi, aynı Azure aboneliğinde bulunan diğer Azure Haritalar hesaplarına istenmeyen erişimi engellediği için Azure Haritalar hesap kapsamına erişim atamaktır.

Yerel kimlik doğrulamayı devre dışı bırakma

Azure Haritalar hesapları,adlı yönetim Microsoft.Maps/accounts API'si.disableLocalAuth olduğundatrue, Microsoft Entra kimlik doğrulaması dışında Azure Haritalar veri düzlemi REST API'sinde tüm kimlik doğrulaması devre dışı bırakılır. Bu, paylaşılan anahtarların ve SAS belirteçlerinin dağıtımını ve yönetimini denetlemek için Azure İlkesi kullanılarak yapılandırılır. Daha fazla bilgi için bkz. Azure İlkesi nedir?.

Yerel kimlik doğrulamasının devre dışı bırakılması hemen geçerli olmaz. Hizmetin gelecekteki kimlik doğrulama isteklerini engellemesi için birkaç dakika bekleyin. Yerel kimlik doğrulamasını yeniden etkinleştirmek için özelliği false olarak ayarlayın ve birkaç dakika sonra yerel kimlik doğrulaması sürdürülür.

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

Paylaşılan erişim imzası belirteci kimlik doğrulaması

Paylaşılan erişim imzası (SAS) belirteçleri, JSON Web belirteci (JWT) biçimi kullanılarak oluşturulan kimlik doğrulama belirteçleridir ve Azure Haritalar REST API'sinde bir uygulama için kimlik doğrulamasını kanıtlamak için şifresel olarak imzalanır. Kullanıcı tarafından atanan yönetilen kimliği Azure aboneliğinizdeki bir Azure Haritalar hesabıyla tümleştirerek oluşturulan SAS belirteci. Kullanıcı tarafından atanan yönetilen kimliğe, yerleşik veya özel rol tanımları kullanılarak Azure RBAC aracılığıyla Azure Haritalar hesabı için yetkilendirme verilir.

SAS belirtecinin Microsoft Entra erişim belirteçlerinden işlevsel önemli farkları:

  • En fazla bir gün (24 saat) süre sonu için belirtecin ömrü.
  • Belirteç başına Azure konumu ve coğrafya erişim denetimi.
  • Saniyede yaklaşık 1 ila 500 istek için belirteç başına hız sınırları.
  • Belirtecin özel anahtarları, bir Azure Haritalar hesabı kaynağının birincil ve ikincil anahtarlarıdır.
  • Yetkilendirme için Hizmet Sorumlusu nesnesi, kullanıcı tarafından atanan yönetilen kimlik tarafından sağlanır.

SAS belirteçleri sabittir. Bu, bir belirteç oluşturulduktan sonra, SAS belirtecinin süre sonu karşılanıncaya kadar geçerli olacağı ve izin verilen bölgelerin, hız sınırlarının ve kullanıcı tarafından atanan yönetilen kimliğin yapılandırılmasının değiştirilebileceği anlamına gelir. SAS belirteci iptali için erişim denetimini ve erişim denetimindeki değişiklikleri anlama hakkında daha fazla bilgi edinin.

SAS belirteci hız sınırlarını anlama

SAS belirteci en yüksek hız sınırı, Azure Haritalar kaynağın faturalamasını denetleyebiliyor

Belirteçte (maxRatePerSecond ) bir maksimum hız sınırı belirtilirken, fazla ücretler hesaba faturalandırılmaz ve bu sayede belirteci kullanırken hesap için faturalanabilir işlemlerin üst sınırını ayarlayabilirsiniz. Ancak uygulama, sınıra ulaşıldıktan sonra tüm işlemler için ile 429 (TooManyRequests) istemci hatası yanıtları alır. SAS belirteçlerinin yeniden denenip dağıtılmasını yönetmek uygulamanın sorumluluğundadır. Bir hesap için kaç SAS belirteci oluşturulabileceğine ilişkin bir sınır yoktur. Mevcut bir belirtecin sınırında artışa veya azalmaya izin vermek için; yeni bir SAS belirteci oluşturulmalıdır. Eski SAS belirteci süresi dolana kadar geçerli olmaya devam eder.

Tahmini Örnek:

Saniye Başına Yaklaşık En Yüksek Hız Saniye Başına Gerçek Hız Saniye cinsinden sürekli oranın süresi Toplam faturalanabilir işlemler
10 20 600 6.000

Gerçek hız sınırları, belirli bir süre içinde tutarlılığı zorlama Azure Haritalar göre değişir. Ancak bu, faturalama maliyetinin önleyici olarak denetlenmesini sağlar.

Hız sınırları genel veya coğrafi olarak değil Azure konumu başına uygulanır

Örneğin, konumdaki East US aktarım hızını sınırlamak için 10'a sahip tek bir maxRatePerSecond SAS belirteci kullanılabilir. aynı belirteç içinde West US 2kullanılıyorsa, konumundan bağımsız East US olarak aktarım hızını bu konumdaki 10 ile sınırlandırmak için yeni bir sayaç oluşturulur. Maliyetleri denetlemek ve öngörülebilirliği geliştirmek için şunları öneririz:

  1. Hedeflenen coğrafya için izin verilen Azure konumlarıyla SAS belirteçleri oluşturun. SAS belirteçleri oluşturmayı anlamak için okumaya devam edin.
  2. Coğrafi veri düzlemi REST API uç noktalarını https://us.atlas.microsoft.com veya https://eu.atlas.microsoft.comkullanın.

Uç noktanın https://us.atlas.microsoft.com , West Central USveya West US 2gibi East USAzure Haritalar hizmetlerinin barındırıldığı aynı ABD konumlarına yönlendirildiği uygulama topolojisini düşünün. Aynı fikir ile North Europearasında West Europe gibi https://eu.atlas.microsoft.com diğer coğrafi uç noktalar için de geçerlidir. Beklenmeyen yetkilendirme engellemelerini önlemek için uygulamanın kullandığı Azure konumlarını kullanan bir SAS belirteci kullanın. Uç nokta konumu, Azure Haritalar Yönetimi REST API'sini kullanarak tanımlanır.

Varsayılan hız sınırları SAS belirteci hız sınırlarına göre önceliklidir

Azure Haritalar hız sınırlarında açıklandığı gibi, tek tek hizmet teklifleri, hesabın bir toplamı olarak zorunlu kılınan değişen hız sınırlarına sahiptir.

Aşağıdaki tablolar için saniyede 250 sorgu (QPS) sınırıyla Arama hizmeti - Toplu İşlem Dışı Ters Çevirme durumunu göz önünde bulundurun. Her tablo, örnek kullanımdan tahmini toplam başarılı işlemleri temsil eder.

İlk tabloda saniyede en fazla 500 istek içeren bir belirteç gösterilir ve uygulamanın gerçek kullanımı 60 saniye boyunca saniyede 500 istektir. Arama hizmeti - Toplu İşlem Dışı Ters Işlem 250 hız sınırına sahiptir; yani 60 saniyede yapılan toplam 30.000 istek; bu isteklerin 15.000'i faturalanabilir işlemlerdir. Kalan istekler durum koduyla 429 (TooManyRequests)sonuçlanır.

Veri Akışı Adı Saniye Başına Yaklaşık En Yüksek Hız Saniye Başına Gerçek Hız Saniye cinsinden sürekli oranın süresi Yaklaşık toplam başarılı işlemler
token 500 500 60 Yaklaşık 15.000

Örneğin, içinde iki SAS belirteci oluşturulursa ve bir Azure Haritalar hesabıyla aynı konumu kullanırsa, her belirteç artık varsayılan 250 QPS hız sınırını paylaşır. Her belirteç aynı anda aynı aktarım hızı belirteci 1 ile kullanılırsa ve belirteç 2 başarılı bir şekilde her biri 7500 başarılı işlem verir.

Veri Akışı Adı Saniye Başına Yaklaşık En Yüksek Hız Saniye Başına Gerçek Hız Saniye cinsinden sürekli oranın süresi Yaklaşık toplam başarılı işlemler
belirteç 1 250 250 60 ~7500
belirteç 2 250 250 60 ~7500

SAS belirteci erişim denetimini anlama

SAS belirteçleri, REST API'ye erişimi denetlemek için RBAC kullanır. SAS belirteci oluşturduğunuzda, Eşleme Hesabı'nda önkoşul yönetilen kimliğine belirli REST API eylemlerine erişim izni veren bir Azure RBAC rolü atanır. Uygulamanın hangi API'lere izin verdiğine karar vermek için bkz . Rol tanımı seçme.

SAS belirtecinin süresi dolmadan önce için geçici erişim atamak ve erişimini kaldırmak istiyorsanız belirteci iptal edin. Erişimi iptal etmek için diğer nedenler, belirtecin istemeden rol atamasıyla Azure Maps Data Contributor dağıtılması ve SAS belirtecine sahip herkesin hassas verileri veya kullanımdan kaynaklanan beklenmeyen finansal maliyeti ortaya çıkarabilecek Azure Haritalar REST API'lerine veri okuyup yazabilmesi olabilir.

SAS belirteçlerine erişimi iptal etmek için iki seçenek vardır:

  1. Eşleme hesabının SAS belirteci veya ikincil Anahtarı tarafından kullanılan anahtarı yeniden oluşturun.
  2. İlişkili eşleme hesabındaki yönetilen kimlik için rol atamasını kaldırın.

Uyarı

SAS belirteci tarafından kullanılan yönetilen kimliği silmek veya yönetilen kimliğin erişim denetimini iptal etmek, SAS belirtecini ve yönetilen kimliği kullanan uygulamanızın örneklerinin kasıtlı olarak Azure Haritalar REST API'lerinden döndürülerek 401 Unauthorized403 Forbidden uygulama kesintisine neden olmasına neden olur.

Kesintiyi önlemek için:

  1. Eşleme Hesabına ikinci bir yönetilen kimlik ekleyin ve yeni yönetilen kimliğe doğru rol atamasını verin.
  2. kullanarak bir SAS belirteci secondaryKeyveya öncekinden farklı bir yönetilen kimlik oluşturun ve signingKey yeni SAS belirtecini uygulamaya dağıtın.
  3. Birincil anahtarı yeniden oluşturun, hesaptan yönetilen kimliği kaldırın ve yönetilen kimlik için rol atamasını kaldırın.

SAS belirteçleri oluşturma

SAS belirteçleri oluşturmak için hem Azure Haritalar hesaplarını hem de Azure aboneliğinde kullanıcı tarafından atanan kimlikleri yönetmek için rol erişimine sahip Contributor olmanız gerekir.

Önemli

Azure konumunda global oluşturulan mevcut Azure Haritalar hesapları yönetilen kimlikleri desteklemez.

İlk olarak, Azure Haritalar hesabıyla aynı konumda kullanıcı tarafından atanan bir yönetilen kimlik oluşturmanız gerekir.

İpucu

Hem yönetilen kimlik hem de Azure Haritalar hesabı için aynı konumu kullanmanız gerekir.

Yönetilen kimlik oluşturulduktan sonra, Azure Haritalar hesabı oluşturabilir veya güncelleştirebilir ve ekleyebilirsiniz. Daha fazla bilgi için bkz. Azure Haritalar hesabınızı yönetme.

Hesap başarıyla oluşturulduktan veya yönetilen kimlikle güncelleştirildikten sonra; yönetilen kimlik için rol tabanlı erişim denetimini hesap kapsamındaki bir Azure Haritalar veri rolüne atayın. Bu, yönetilen kimliğe harita hesabınız için Azure Haritalar REST API'sine erişim verilmesini sağlar.

Ardından Azure Yönetim SDK'sı araçlarını, Hesap Yönetimi API'sinde SAS'yi listeleme işlemini veya Eşleme hesabı kaynağının Azure portalı Paylaşılan Erişim İmzası sayfasını kullanarak bir SAS belirteci oluşturun.

SAS belirteci parametreleri:

Parametre Adı Örnek Değer Açıklama
Signingkey primaryKey Gerekli, signingKey primaryKeyiçin dize sabit listesi değeri veya yönetilen kimlik SAS'nin secondaryKey imzasını oluşturmak için kullanılır.
principalId <GUID> Gerekli, principalId eşleme hesabına eklenen kullanıcı tarafından atanan yönetilen kimliğin Nesne (sorumlu) kimliğidir.
bölgeler [ "eastus", "westus2", "westcentralus" ] İsteğe bağlı olarak, varsayılan değer şeklindedir null. Bölgeler, SAS belirtecinin Azure Haritalar REST veri düzlemi API'sinde hangi bölgelerin kullanılabileceğini denetler. Bölgelerin atlanması parametresi, SAS belirtecinin herhangi bir kısıtlama olmadan kullanılmasını sağlar. gibi us.atlas.microsoft.com bir Azure Haritalar veri düzlemi coğrafi uç noktasıyla birlikte kullanıldığında ve eu.atlas.microsoft.com uygulamanın belirtilen coğrafyadaki kullanımı denetlemesine olanak tanır. Bu, diğer coğrafyalarda kullanımın önlenmesine olanak tanır.
maxRatePerSecond 500 Gerekli, SAS belirtecinin verildiği saniyede belirtilen yaklaşık maksimum istek. Sınıra ulaşıldıktan sonra, HTTP durum kodu 429 (TooManyRequests)ile daha fazla aktarım hızı sınırlıdır.
start 2021-05-24T10:42:03.1567373Z Gerekli, belirtecin etkin hale geldiği tarih ve saati belirten bir UTC tarihi.
expiry 2021-05-24T11:42:03.1567373Z Gerekli, belirtecin süresinin dolduğunu tarih ve saati belirten bir UTC tarihi. Başlangıç ve süre sonu arasındaki süre 24 saatten uzun olamaz.

UYGULAMAYı SAS belirteci ile yapılandırma

Uygulama bir SAS belirteci aldıktan sonra Azure Haritalar SDK ve/veya uygulamaları, diğer REST API HTTP üst bilgilerine ek olarak aşağıdaki gerekli HTTP üst bilgisine sahip bir HTTPS isteği gönderir:

Üst Bilgi Adı Değer
Yetkilendirme jwt-sas eyJ0e....HNIVN

Not

jwt-sas , SAS belirtecinin kullanıldığı kimlik doğrulama düzenidir. Veya diğer Yetkilendirme üst bilgilerini veya subscription-key sorgu dizesi parametresini eklemeyinx-ms-client-id.

Çıkış noktaları arası kaynak paylaşımı (CORS)

CORS , bir etki alanı altında çalışan bir web uygulamasının başka bir etki alanındaki kaynaklara erişmesini sağlayan bir HTTP protokolüdür. Web tarayıcıları, web sayfasının farklı bir etki alanındaki API'leri çağırmasını engelleyen, aynı kaynak ilkesi olarak bilinen bir güvenlik kısıtlaması uygular; CORS, bir etki alanının (kaynak etki alanı) başka bir etki alanındaki API'leri çağırmasına izin vermek için güvenli bir yol sağlar. Azure Haritalar hesabı kaynağını kullanarak uygulamalarınızdan Azure Haritalar REST API'sine erişmesine izin verilen kaynakları yapılandırabilirsiniz.

Önemli

CORS bir yetkilendirme mekanizması değildir. REST API kullanılarak bir harita hesabına yapılan tüm istekler, CORS etkinleştirildiğinde Paylaşılan Anahtar, Microsoft Entra Kimliği veya SAS belirteci gibi geçerli bir harita hesabı kimlik doğrulama şemasına da ihtiyaç duyar.

CORS tüm harita hesabı fiyatlandırma katmanları, veri düzlemi uç noktaları ve konumlar için desteklenir.

Önkoşullar

İstemcide kötü amaçlı kod yürütülmesini önlemek için modern tarayıcılar, web uygulamalarından ayrı bir etki alanında çalışan kaynaklara yönelik istekleri engeller.

  • CORS'yi bilmiyorsanız bkz. Çıkış noktaları arası kaynak paylaşımı (CORS), üst Access-Control-Allow-Origin bilginin bir Azure Haritalar hesabının uç noktalarını çağırmasına izin verilen kaynakları bildirmesine olanak tanır. CORS protokolü Azure Haritalar özgü değildir.

CORS istekleri

Kaynak etki alanından gelen cors isteği iki ayrı istekten oluşabilir:

  • Hizmet tarafından uygulanan CORS kısıtlamalarını sorgulayan bir denetim öncesi isteği. İstek standart yöntem GET, HEAD, POST veya istek üst bilgisi içeren Authorization istekler olmadığı sürece denetim öncesi isteği gereklidir.

  • İstenen kaynakta yapılan gerçek istek.

Denetim öncesi isteği

Denetim öncesi isteği yalnızca sunucunun gerçek istekte gönderilen yöntemi ve üst bilgileri anlamasını ve sunucunun isteğin kaynağını bildiğinden ve güvendiğinden emin olmak için bir güvenlik önlemi olarak yapılmaz, aynı zamanda harita hesabı için oluşturulan CORS kısıtlamalarını sorgular. Web tarayıcısı (veya diğer kullanıcı aracısı), istek üst bilgilerini, yöntemini ve kaynak etki alanını içeren bir OPTIONS isteği gönderir. Hesap kimlik doğrulaması CORS denetim öncesi protokolü aracılığıyla mümkünse, harita hesabı hizmeti herhangi bir CORS kuralını getirmeye çalışır.

Kimlik doğrulaması mümkün değilse, haritalar hizmeti, haritalar hizmetine yönelik gerçek bir istekte hangi kaynak etki alanlarının, istek yöntemlerinin ve istek üst bilgilerinin belirtilebileceğini belirten önceden yapılandırılmış bir CORS kuralları kümesini değerlendirir. Varsayılan olarak, bir haritalar hesabı tüm çıkış noktalarının web tarayıcılarıyla sorunsuz tümleştirmeyi etkinleştirmesine izin verecek şekilde yapılandırılır.

Hizmet, aşağıdaki ölçütlere uyulup uyulmadığını öğrenmek için gerekli Erişim Denetimi üst bilgileriyle denetim öncesi isteğine yanıt verir:

  1. OPTIONS isteği gerekli CORS üst bilgilerini içerir (Origin ve Access-Control-Request-Method üst bilgileri)
  2. Kimlik doğrulaması başarılı oldu ve denetim öncesi isteğiyle eşleşen hesap için bir CORS kuralı etkinleştirildi.
  3. Denetim öncesi istekte belirtilmeyen gerekli Authorization istek üst bilgileri nedeniyle kimlik doğrulaması atlandı.

Denetim öncesi isteği başarılı olduğunda, hizmet durum koduyla 200 (OK)yanıt verir ve yanıta gerekli Access-Control üst bilgilerini ekler.

Aşağıdaki koşullar oluşursa hizmet denetim öncesi isteklerini reddeder:

  1. OPTIONS isteği gerekli CORS üst bilgilerini (Origin ve Access-Control-Request-Method üst bilgileri) içermiyorsa, hizmet durum koduyla 400 (Bad request)yanıt verir.
  2. Ön kontrol isteğinde kimlik doğrulaması başarılı olduysa ve hiçbir CORS kuralı denetim öncesi isteğiyle eşleşmiyorsa, hizmet durum koduyla 403 (Forbidden)yanıt verir. CorS kuralı geçerli tarayıcı istemci kaynağı istek üst bilgisi ile eşleşmeyen bir kaynağı kabul etmek üzere yapılandırılmışsa bu durum oluşabilir.

Not

Bir denetim öncesi isteği, istenen kaynağa karşı değil hizmet tarafından değerlendirilir. İsteğin başarılı olması için hesap sahibinin uygun hesap özelliklerini ayarlayarak CORS'yi etkinleştirmiş olması gerekir.

Gerçek istek

Denetim öncesi isteği kabul edildikten ve yanıt döndürüldükten sonra tarayıcı gerçek isteği harita hizmetine karşı iletir. Denetim öncesi isteği reddedilirse tarayıcı gerçek isteği hemen reddeder.

Gerçek istek, harita hizmetine karşı normal bir istek olarak kabul edilir. Üst bilginin varlığı Origin isteğin bir CORS isteği olduğunu ve hizmetin CORS kurallarına göre doğrulandığını gösterir. Eşleşme bulunursa, Access-Control üst bilgileri yanıta eklenir ve istemciye geri gönderilir. Eşleşme bulunamazsa, yanıt CORS kaynak hatasını belirten bir 403 (Forbidden) döndürür.

CORS ilkesini etkinleştirme

Bir Harita hesabı oluşturulduğunda veya güncelleştirildiğinde, bu hesabın özellikleri yapılandırılacak izin verilen çıkış noktalarını belirtir. Azure Haritalar Yönetim SDK'sı, Azure Haritalar Yönetim REST API'si ve portal aracılığıyla Azure Haritalar hesabı özelliklerinde bir CORS kuralı ayarlayabilirsiniz. Hizmet için CORS kuralını ayarladıktan sonra, farklı bir etki alanından hizmete yapılan doğru yetkilendirilmiş istek, belirttiğiniz kurala göre izin verilip verilmeyeceğini belirlemek üzere değerlendirilir. Örneğin:

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

İzin verilen çıkış noktaları listesine sahip yalnızca bir CORS kuralı belirtilebilir. Her kaynak, http isteğinin belirtilen kaynağın web tarayıcısında AZURE HARITALAR REST API'sine yapılmasını sağlar.

CORS ilkesini kaldırma

CORS'yi kaldırabilirsiniz:

  • Azure portalında el ile
  • Program aracılığıyla:
    • Azure Haritalar SDK
    • Azure Haritalar yönetimi REST API'sini
    • ARM şablonu

İpucu

Azure Haritalar yönetimi REST API'sini kullanıyorsanız veya PATCH istek gövdesinde boş corsRule bir listeyle kullanınPUT.

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

Faturalama işlemlerini anlama

Azure Haritalar faturalama işlemlerini saymıyor:

  • 5xx HTTP Durum Kodları
  • 401 (Yetkisiz)
  • 403 (Yasak)
  • 408 (Zaman Aşımı)
  • 429 (TooManyRequests)
  • CORS denetim öncesi istekleri

Faturalama işlemleri ve diğer Azure Haritalar fiyatlandırma bilgileri hakkında daha fazla bilgi için bkz. fiyatlandırma Azure Haritalar.

Sonraki adımlar

En iyi güvenlik uygulamaları hakkında daha fazla bilgi edinmek için bkz:

Microsoft Entra Id ve Azure Haritalar ile bir uygulamanın kimliğini doğrulama hakkında daha fazla bilgi edinmek için bkz:

Azure Haritalar Denetiminin kimliğini Microsoft Entra Id ile doğrulama hakkında daha fazla bilgi edinmek için bkz: