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.
İ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.
Ö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.
Ö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.
Ö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.
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.
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.
Ö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.
Ö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.
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.
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.