Özel bulutta veya şirket içinde barındırılan bir Uygulama Programlama Arabirimine (API) güvenli erişim sağlamak için Microsoft Entra uygulama ara sunucusunu kullanma
İş mantığı genellikle özel bir Uygulama Programlama Arabiriminde (API) bulunur. API şirket içinde veya özel bir bulutta çalışır. Yerel Android, iOS, Mac veya Windows uygulamalarınızın verileri kullanmak veya kullanıcı etkileşimi sağlamak için API uç noktalarıyla etkileşim kurması gerekir. Microsoft Entra uygulama ara sunucusu ve Microsoft Kimlik Doğrulama Kitaplığı (MSAL), yerel uygulamalarınızın özel bulut API'lerinize güvenli bir şekilde erişmesini sağlar. Microsoft Entra uygulama ara sunucusu, güvenlik duvarı bağlantı noktalarını açmaktan ve uygulama katmanında kimlik doğrulaması ve yetkilendirmeyi denetlemekten daha hızlı ve daha güvenli bir çözümdür.
İpucu
Şirket içi, fiziksel sunucuların şirket ofisinin şirket içinde bulunduğu zamana kadar uzanan eski bir terimdir. Artık birçok şirket içinde barındırılan iş yükü, bir veri merkezinde bulunan bir sanal makinede çalışıyor. Şirket içi ve özel bulut terimi birbirinin yerine kullanılır.
Bu makalede, yerel uygulamaların erişebileceği bir web API'si hizmetini barındırmak için bir Microsoft Entra uygulama ara sunucusu çözümü ayarlama işleminde size yol gösterilir.
Genel bakış
Aşağıdaki diyagramda, şirket içi API'leri yayımlamanın geleneksel bir yolu gösterilmektedir. Bu yaklaşım, 80 ve 443 gelen bağlantı noktalarının açılmasını gerektirir.
Aşağıdaki diyagramda, gelen bağlantı noktalarını açmadan API'leri güvenli bir şekilde yayımlamak için Microsoft Entra uygulama ara sunucusunu nasıl kullanabileceğiniz gösterilmektedir:
Microsoft Entra uygulama ara sunucusu, API erişimi için genel uç nokta olarak çalışarak ve kimlik doğrulaması ve yetkilendirme sağlayarak çözümün omurgasını oluşturur. Microsoft Authentication Library (MSAL) kitaplıklarını kullanarak API'lerinize çok çeşitli platformlardan erişebilirsiniz.
Microsoft Entra uygulama ara sunucusu kimlik doğrulaması ve yetkilendirmesi Microsoft Entra Id'nin üzerine oluşturulduğundan, yalnızca güvenilen cihazların uygulama ara sunucusu aracılığıyla yayımlanan API'lere erişebildiğinden emin olmak için Microsoft Entra Koşullu Erişim'i kullanabilirsiniz. Masaüstü bilgisayarlar için Microsoft Entra katılımını veya Microsoft Entra karma katılımını ve cihazlar için Intune Yönetilen'i kullanın. Ayrıca, Microsoft Entra çok faktörlü kimlik doğrulaması ve makine öğrenmesi destekli Microsoft Entra Kimlik Koruması güvenliği gibi Microsoft Entra Id P1 veya P2 özelliklerinden de yararlanabilirsiniz.
Önkoşullar
Bu kılavuzu izlemek için şunlar gerekir:
- Uygulama oluşturabilen ve kaydedebilen bir hesapla Azure dizinine yönetici erişimi
- Microsoft Kimlik Doğrulama Kitaplığı'ndan (MSAL) örnek web API'si ve yerel istemci uygulamaları
API'yi uygulama ara sunucusu aracılığıyla yayımlama
Uygulama ara sunucusu aracılığıyla intranetinizin dışında bir API yayımlamak için, web uygulamalarını yayımlamak için kullandığınız desenin aynısını izlersiniz. Daha fazla bilgi için bkz . Öğretici: Microsoft Entra Id'de uygulama ara sunucusu aracılığıyla uzaktan erişim için şirket içi uygulama ekleme.
SecretAPI web API'sini uygulama ara sunucusu aracılığıyla yayımlamak için:
Örnek SecretAPI projesini yerel bilgisayarınızda veya intranetinizde ASP.NET bir web uygulaması olarak derleyin ve yayımlayın. Web uygulamasına yerel olarak erişebildiğinizden emin olun.
Microsoft Entra yönetim merkezinde en az Bir Uygulama Yöneticisi olarak oturum açın.
Kimlik>Uygulamaları>Kurumsal uygulamaları'na göz atın.
Kurumsal uygulamalar - Tüm uygulamalar sayfasının üst kısmında Yeni uygulama'yı seçin.
Microsoft Entra Gallery'ye Gözat sayfasında Şirket içi uygulamalar bölümünü bulun ve Şirket içi uygulama ekle'yi seçin. Kendi şirket içi uygulamanızı ekleyin sayfası görüntülenir.
Yüklü bir özel ağ bağlayıcınız yoksa yüklemeniz istenir. Bağlayıcıyı indirip yüklemek için Özel ağ bağlayıcısını indir'i seçin.
Kendi şirket içi uygulamanızı ekleyin sayfasında bilgi ekleyin.
Ad'ın yanına SecretAPI girin.
İç URL'nin yanına, intranetinizin içinden API'ye erişmek için kullandığınız URL'yi girin.
Ön Kimlik Doğrulaması'nın Microsoft Entra Id olarak ayarlandığından emin olun.
Oluştur'u seçin ve uygulamanın oluşturulmasını bekleyin.
Kurumsal uygulamalar - Tüm uygulamalar sayfasında SecretAPI uygulamasını seçin.
SecretAPI - Genel Bakış sayfasında, sol gezinti bölmesinde Özellikler'i seçin.
API'lerin MyApps panelinde son kullanıcıların kullanımına sunulmasını istemezsiniz, bu nedenle Özellikler sayfasının alt kısmındaki Kullanıcılara görünür seçeneğini Hayır olarak ayarlayın ve kaydet'i seçin.
Web API'si artık Microsoft Entra uygulama ara sunucusu aracılığıyla yayımlanır. Ardından, uygulamaya erişebilecek kullanıcıları ekleyin.
SecretAPI - Genel Bakış sayfasında sol gezinti bölmesinde Kullanıcılar ve gruplar'ı seçin.
Kullanıcılar ve gruplar sayfasında Kullanıcı ekle'yi seçin.
Atama ekle sayfasında Kullanıcılar ve gruplar'ı seçin.
Kullanıcılar ve gruplar sayfasında, en azından kendiniz de dahil olmak üzere uygulamaya erişebilen kullanıcıları arayın ve seçin. Tüm kullanıcıları seçtikten sonra Seç'i seçin.
Atama Ekle sayfasına dönüp Ata'yı seçin.
Not
Tümleşik Windows kimlik doğrulaması kullanan API'ler ek adımlar gerektirebilir.
Yerel uygulamayı kaydetme ve API'ye erişim verme
Yerel uygulamalar, belirli bir platformda veya cihazda kullanılmak üzere geliştirilmiş programlardır. Yerel uygulamanızın bir API'ye bağlanabilmesi ve api'ye erişebilmesi için bunu Microsoft Entra Id'ye kaydetmeniz gerekir. Aşağıdaki adımlarda yerel bir uygulamanın nasıl kaydedileceğini ve uygulama ara sunucusu aracılığıyla yayımladığınız web API'sine nasıl erişim verilip verilip verebilirsiniz.
AppProxyNativeAppSample yerel uygulamasını kaydetmek için:
Microsoft Entra yönetim merkezinde en az Bir Uygulama Yöneticisi olarak oturum açın.
Kimlik>Uygulamaları>Kurumsal uygulamalarına> göz atın Uygulama kayıtları.
Yeni kayıt öğesini seçin.
Uygulama kaydetme sayfasına bilgileri girin.
Ad alanına AppProxyNativeAppSample girin.
Desteklenen hesap türleri'nin altında Yalnızca bu kuruluş dizinindeki hesaplar (yalnızca Contoso - Tek kiracı) seçeneğini belirleyin.
Yeniden Yönlendirme URL'si'nin altında açılan menüye gidin ve Genel istemci/yerel (mobil & masaüstü) öğesini seçin ve * *https://login.microsoftonline.com/common/oauth2/nativeclient girin.
Kaydet'i seçin ve uygulamanın başarıyla kaydedilmesini bekleyin.
Uygulama AppProxyNativeAppSample
artık Microsoft Entra Id'de kayıtlıdır. Yerel uygulamanıza web API'sine SecretAPI
erişim verin:
Uygulama kayıtları sayfasında AppProxyNativeAppSample uygulamasını seçin.
AppProxyNativeAppSample sayfasında sol gezinti bölmesinde API izinleri'ni seçin.
API izinleri sayfasında İzin ekle'yi seçin.
İlk API izinlerini iste sayfasında kuruluşumun kullandığı API'ler sekmesini seçin ve ardından SecretAPI'yi arayıp seçin.
Sonraki API izinlerini iste sayfasında, user_impersonation yanındaki onay kutusunu seçin ve ardından İzin ekle'yi seçin.
API izinleri sayfasına dönüp Contoso için yönetici onayı ver'i seçerek diğer kullanıcıların uygulamaya ayrı ayrı onay vermelerini engelleyebilirsiniz.
Yerel uygulama kodunu yapılandırma
Son adım, yerel uygulamayı yapılandırmaktır. Kod, örnek uygulamadaki Form1.cs
dosyaya NativeClient
eklenmelidir. Kod, belirteci almak için MSAL kitaplığını kullanır. Belirteç API çağrısı isteğinde bulunur ve isteğin üst bilgisine ekler. Belirteç taşıyıcı sertifikası olarak eklenir. MSAL hakkında daha fazla bilgi için bkz . Projenize MSAL ekleme ve MSAL başvurusu ekleme.
Form1.cs ad alanını
using Microsoft.Identity.Client;
koda ekleyin.Bu özelleştirilmiş kod örneğini eklemek için yerel uygulama kodunu Microsoft Kimlik Doğrulama Kitaplığı'nın (MSAL) kimlik doğrulama bağlamında düzenleyin.
Yerel uygulamayı Microsoft Entra Id'ye bağlanacak ve uygulama ara sunucusunu kullanarak API'yi çağıracak şekilde yapılandırın. Ardından dosyasındaki App.config
NativeClient sample app
yer tutucu değerlerini Microsoft Entra Id değerleriyle güncelleştirin.
Dizin (kiracı) kimliğini alana yapıştırın
<add key="ida:Tenant" value="" />
. Bu değeri (GUID) uygulamalarınızın genel bakış sayfasında bulabilir ve kopyalayabilirsiniz.Alana AppProxyNativeAppSample Uygulaması (istemci) Kimliğini yapıştırın
<add key="ida:ClientId" value="" />
. Bu değeri (GUID) AppProxyNativeAppSample'ın Genel Bakış sayfasında, Yönet'in altındaki sol gezinti bölmesinde bulabilir ve kopyalayabilirsiniz.AppProxyNativeAppSample Yeniden Yönlendirme URI'sini alana yapıştırın
<add key="ida:RedirectUri" value="" />
. Bu değeri (URI) AppProxyNativeAppSample'ın Kimlik Doğrulaması sayfasında, Yönet'in altındaki sol gezinti bölmesinde bulabilir ve kopyalayabilirsiniz. MSAL, önerilen yanıt Tekdüzen Kaynak Tanımlayıcısı'nı (URI) eklemek için yönteminiPublicClientApplicationBuilder.WithDefaultRedirectUri()
kullandığından bu adım isteğe bağlıdır.SecretAPI Uygulama Kimliği URI'sini alana yapıştırın
<add key="todo:TodoListResourceId" value="" />
. değeri ile aynıdırtodo:TodoListBaseAddress
. URI değeri, uygulamanın API'yi kullanıma sunma sayfasındaSecretAPI
bulunur. Yönet'in altındaki sol gezintiye bakın.SecretAPI Giriş Sayfası URL'sini alana yapıştırın
<add key="todo:TodoListBaseAddress" value="" />
. Bu değeri (URL) SecretAPI Markalama ve özellikler sayfasında, Yönet'in altındaki sol gezinti bölmesinde bulabilir ve kopyalayabilirsiniz.
Not
Çözüm derlenmiyorsa ve geçersiz Resx dosyası hatasını bildiriyorsa, Çözüm Gezgini Özellikler'i genişletin, Resources.resx'e sağ tıklayın ve Kodu Görüntüle'yi seçin. Açıklama satırları 121 ile 123.
Parametreleri yapılandırdıktan sonra yerel uygulamayı derleyin ve çalıştırın. Oturum Aç düğmesini seçtiğinizde, uygulama oturum açmanıza olanak tanır ve secretAPI'ye başarıyla bağlandığını onaylamak için bir başarı ekranı görüntüler.