Aracılığıyla paylaş


Başka bir API'den API çağırma

Geliştirici olarak, başka bir API'yi çağırması gereken bir API'niz olduğunda Sıfır Güven nasıl emin olursunuz? Bu makalede, bir kullanıcı adına çalışırken uygulamanızı güvenli bir şekilde geliştirmeyi öğreneceksiniz.

Kullanıcı bir uygulamanın kullanıcı arabirimini kullandığında, API'nin uygulamanın kimin adına çalıştığını bilmesi için temsilci izni kullanabilir. Uygulamanın API'yi çağırırken sağladığı erişim belirtecindeki konu (alt) talebi veya nesne kimliği (oid) ve kiracı kimliği (tid) taleplerini inceler. API güvenilmeyen uygulamaya güvenmez. Bu yalnızca ağ üzerinde bir yerden gelen bir çağrıdır. Bunun yerine, API'nin yalnızca Microsoft Entra Kimliğinin doğrulanmış olduğu uygulama kullanıcısı adına çalıştığından emin olmak için belirteci doğrular.

Bir API (Özgün API olarak adlandırıyoruz) başka bir API çağırdığında, çağırdığımız API'nin (Aşağı Akış API'si olarak adlandırıyoruz) yukarıda açıklanan doğrulama işlemini takip etmek çok önemlidir. Aşağı Akış API'sinde güvenilmeyen bir ağ kaynağı kullanılamaz. Doğrulanmış bir erişim belirtecinden kullanıcı kimliğini alması gerekir.

Aşağı Akış API'sinin doğru doğrulama işlemini izlememesi durumunda, Aşağı Akış API'sinin kullanıcının kimliğini başka bir şekilde sağlamak için Özgün API'ye güvenmesi gerekir. Aşağı Akış API'si, işlemi gerçekleştirmek için yanlış bir uygulama izni kullanabilir. Ardından Özgün API, kullanıcıların Aşağı Akış API'sine karşı hangi sonuçları elde edebileceğine ilişkin tek yetkili olacaktır. Özgün API, kullanıcının başka bir şekilde gerçekleştiremediği bir görevi kasıtlı olarak (veya istemeden) gerçekleştirmesine izin verebilir. Örneğin, bir kullanıcı başka bir kullanıcının ayrıntılarını değiştirebilir veya kullanıcının erişim izni olmayan belgeleri okuyup güncelleştirebilir. Yanlış doğrulama ciddi güvenlik sorunlarına neden olabilir.

Daha iyi güvenlik için Özgün API, Özgün API çağrı yaptığında Aşağı Akış API'sine sağlamak üzere bir temsilci izin erişim belirteci alır. Şimdi bunun nasıl çalıştığını inceleyelim.

İstemci Uygulaması, Özgün API'yi çağırmak için erişim belirteci alır

Aşağıdaki diyagramda İstemci Uygulaması ve Özgün API gösterilmektedir.

Diyagram, kimlik ve erişim belirteçlerine sahip İstemci Uygulamasını ve yetkilendirme gerektiren Özgün API'yi gösterir.

İstemci Uygulaması, Özgün API'ye bir temsilci izin erişim belirteci (pentagon şekli tarafından "A" etiketiyle gösterilir) aldı. Temsilci izin erişim belirteci, yetkilendirme gerektiren Özgün API'yi çağırmak için kullanıcı adına çalışmasına olanak tanır.

İstemci Uygulaması Özgün API'ye erişim belirteci verir

Aşağıdaki animasyonda, özgün API'ye erişim belirteci veren İstemci Uygulaması gösterilmektedir. Özgün API, İstemci Uygulaması kullanıcısının kimliğini belirlemek için erişim belirtecini tam olarak doğrular ve inceler.

Animasyonlu diyagramda İstemci Uygulaması'nın Özgün API'ye yetkilendirme gerektiren bir erişim belirteci verdiği gösterilir.

Özgün API, belirteç doğrulama ve zorlama gerçekleştirir

Sonraki animasyonda, İstemci Uygulaması Özgün API'ye erişim belirtecini verdikten sonra Özgün API'nin belirteç doğrulama ve zorlama gerçekleştirdiğini gösterir. Her şey yolundaysa, API devam eder ve İstemci Uygulaması isteğine hizmet eder.

Animasyonlu diyagram, sol tarafta Kimlik belirtecine sahip İstemci Uygulaması'nı gösterir ve sağ tarafta Özgün API'ye erişim belirteci verir.

Özgün API, Aşağı Akış API'sini çağırmak için erişim belirtecini kullanamıyor

Aşağıdaki animasyonda, Özgün API'nin artık aşağı akış API'sini çağırmak istediği gösterilmektedir. Ancak Özgün API, Aşağı Akış API'sini çağırmak için erişim belirtecini kullanamaz.

Animasyonlu diyagram, özgün API'ye erişim belirteci veren İstemci Uygulamasını gösterir. Yetkilendirme Gerekli, Özgün API'nin Aşağı Akış API'sine belirteç vermesini engeller.

Özgün API, Microsoft Entra Id'ye geri döner

Aşağıdaki animasyonda Özgün API'nin Microsoft Entra Id'ye geri dönmesi gerekir. Kullanıcı adına Aşağı Akış API'sini çağırmak için bir erişim belirteci gerekir.

Animasyonlu diyagramda, Aşağı Akış API'sini çağırmak için Microsoft Entra Id'den doğrulama gerektiren Özgün API'ye erişim belirteci veren İstemci Uygulaması gösterilmektedir.

Sonraki animasyonda Özgün API'nin İstemci Uygulamasından aldığı belirteci ve Özgün API'nin istemci kimlik bilgilerini sağlayan Özgün API gösterilir.

Animasyonlu diyagramda, Aşağı Akış API'sini çağırmak için Microsoft Entra Kimliği'nden doğrulama alan Özgün API'ye erişim belirteci veren İstemci Uygulaması gösterilmektedir.

Microsoft Entra ID, onay veya koşullu erişim zorlaması gibi şeyleri denetler. Çağrı istemcinize geri dönmeniz ve belirteci alamamak için bir neden sağlamanız gerekebilir. Genellikle onay alınmamasıyla ilgili bilgilerle (koşullu erişim ilkeleriyle ilgili olmak gibi) çağrı uygulamasına geri dönmek için talep sınaması işlemi kullanırsınız.

Microsoft Entra Id denetimler gerçekleştirir

Aşağıdaki animasyonda, Microsoft Entra Id denetimlerini gerçekleştirir. Her şey yolundaysa, Microsoft Entra Id kullanıcı adına Aşağı Akış API'sini çağırmak için Özgün API'ye bir erişim belirteci verir.

Animasyonlu diyagram, Microsoft Entra Id ile doğruladıktan sonra Aşağı Akış API'sine erişim belirteci veren Özgün API'yi gösterir.

Özgün API' nin, Adına Akış ile kullanıcı bağlamı vardır

Aşağıdaki animasyonda, bir API'nin Aşağı Akış API'sini çağırdıkça kullanıcı bağlamını almaya devam etmesini sağlayan Ad-Adına akış (OBO) işlemi gösterilmektedir.

Animasyonlu diyagram, Aşağı Akış API'sine erişim belirteci veren Özgün API'yi gösterir.

Özgün API Aşağı Akış API'lerini çağırır

Sonraki animasyonda Aşağı Akış API'sini çağıracağız. Aşağı Akış API'sinin aldığı belirteç, Aşağı Akış API'sini gösteren uygun hedef kitle (aud) talebine sahiptir.

Animasyonlu diyagramda Özgün API'den erişim belirtecini doğrulayarak Aşağı Akış API'si gösterilmektedir.

Belirteç, verilen onay için kapsamları ve özgün uygulama kullanıcı kimliğini içerir. Aşağı Akış API'si, tanımlanan kullanıcının istenen görevi gerçekleştirme iznine sahip olduğundan emin olmak için etkili izinleri düzgün bir şekilde uygulayabilir. Kullanıcı bağlamının tüm Aşağı Akış API'lerine geçtiğinden emin olmak üzere başka bir API'yi çağırmak üzere bir API için belirteç almak için akış adına değerini kullanmak istiyorsunuz.

En iyi seçenek: Özgün API, Adına Akış gerçekleştirir

Bu son animasyon, Özgün API'nin Adına Akış (OBO) gerçekleştirmesi için en iyi seçeneğin olduğunu gösterir. Aşağı Akış API'si doğru belirteci alırsa doğru yanıt verebilir.

Animasyonlu diyagram, Özgün API'den erişim belirteci alan Aşağı Akış API'lerini gösterir.

Bir API bir kullanıcı adına hareket ettiğinde ve başka bir API çağırması gerektiğinde, API'nin kullanıcı adına Aşağı Akış API'sini çağırmak üzere temsilcili izin erişim belirteci almak için OBO kullanması gerekir. API'ler bir kullanıcı adına hareket ederken Aşağı Akış API'lerini çağırmak için hiçbir zaman uygulama izinlerini kullanmamalıdır.

Sonraki adımlar

  • Microsoft kimlik platformu kimlik doğrulama akışları ve uygulama senaryoları, kimlik doğrulama akışlarını ve bunların kullanıldığı uygulama senaryolarını açıklar.
  • API Koruması, api'nizi kayıt, izin ve onay tanımlama ve Sıfır Güven hedeflerinize ulaşmak için erişimi zorlama yoluyla korumaya yönelik en iyi yöntemleri açıklar.
  • Microsoft kimlik onayı çerçevesi tarafından korunan API örneği, en iyi kullanıcı deneyimi için en az ayrıcalıklı uygulama izinleri stratejileri tasarlamanıza yardımcı olur.
  • Belirteçleri özelleştirme, Microsoft Entra belirteçlerinde alabileceğiniz bilgileri açıklar. En az ayrıcalıkla uygulama sıfır güven güvenliğini artırırken esnekliği ve denetimi geliştirmek için belirteçlerin nasıl özelleştirileceği açıklanır.
  • Microsoft Identity Learn ile özel API'lerin güvenliğini sağlama modülü, Microsoft kimliğiyle bir web API'sinin güvenliğini sağlamayı ve bunu başka bir uygulamadan çağırmayı açıklar.
  • Uygulama özellikleri için en iyi güvenlik yöntemleri yeniden yönlendirme URI'sini, erişim belirteçlerini (örtük akışlar için kullanılır), sertifikaları ve gizli dizileri, uygulama kimliği URI'sini ve uygulama sahipliğini açıklar.
  • Microsoft kimlik platformu kimlik doğrulama kitaplıkları, çeşitli uygulama türleri için Microsoft Kimlik Doğrulama Kitaplığı desteğini açıklar.