Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, App Service'te Java'ya özgü güvenlik ayarlarını yapılandırma adımları gösterilmektedir. App Service'te çalışan Java uygulamaları, diğer uygulamalarla aynı güvenlik en iyi yöntemleri kümesine sahiptir.
Azure App Service, tam olarak yönetilen bir hizmette Java web uygulamalarını üç türde çalıştırır:
- Java Standard Edition (SE). Java SE; Spring Boot, Quarkus, Dropwizard gibi ekli bir sunucu içeren bir Java arşiv (JAR) paketi olarak dağıtılan bir uygulamayı ya da katıştırılmış Tomcat veya Jetty sunucusuna sahip bir uygulamayı çalıştırabilir.
- Tomcat. Yerleşik Tomcat sunucusu, web uygulaması arşiv (WAR) paketi olarak dağıtılan bir uygulamayı çalıştırabilir.
- JBoss Kurumsal Uygulama Platformu (EAP): Yerleşik JBoss EAP sunucusu, WAR veya kurumsal arşiv (EAR) paketi olarak dağıtılan bir uygulamayı çalıştırabilir. Bu seçenek Ücretsiz, Premium v3 ve Yalıtılmış v2 içeren bir dizi fiyatlandırma katmanındaki Linux uygulamaları için desteklenir.
Uyarı
App Service'te JBoss EAP artık Kendi Lisansını Getir (KLG) faturalamayı destekliyor. KLG, mevcut Red Hat aboneliklerine sahip müşterilerin bu lisansları Azure App Service'te JBoss EAP dağıtımlarına doğrudan uygulamasına olanak tanır. Daha fazla bilgi için bkz. App Service'te JBoss EAP için KLG Desteği.
Kullanıcıların kimliğini doğrulama (Kolay Kimlik Doğrulaması)
Azure portalında Kimlik Doğrulaması ve Yetkilendirme seçeneğiyle uygulama kimlik doğrulamasını ayarlayın. Buradan Microsoft Entra ID veya Facebook, Google veya GitHub gibi sosyal oturum açma bilgilerini kullanarak kimlik doğrulamasını etkinleştirebilirsiniz. Azure portal yapılandırması yalnızca tek bir kimlik doğrulama sağlayıcısı yapılandırırken çalışır. Daha fazla bilgi için, App Service uygulamanızı Microsoft Entra oturum açma ile kullanacak şekilde yapılandırma ve diğer kimlik sağlayıcılarıyla ilgili makalelere bakın. Birden çok oturum açma sağlayıcısını etkinleştirmeniz gerekiyorsa bkz. Oturum açma ve oturum kapatma özelliklerini özelleştirme.
Spring Boot geliştiricileri, tanıdık Spring Security ek açıklamalarını ve API'lerini kullanarak uygulamaların güvenliğini sağlamak için Microsoft Entra Spring Boot başlatıcısını kullanabilir.
application.properties dosyanızda maksimum üst bilgi boyutunu artırdığınızdan emin olun. değerini 16384öneririz.
Tomcat uygulamanız, Principal nesnesini bir Map nesnesine dönüştürerek kullanıcının taleplerine doğrudan servlet'ten erişebilir.
Map nesnesi, her talep türünü o tür için talep koleksiyonuna eşler. Aşağıdaki kod örneğinde, request, bir HttpServletRequest örneğidir.
Map<String, Collection<String>> map = (Map<String, Collection<String>>) request.getUserPrincipal();
Artık Map nesnesini belirli bir iddia için inceleyebilirsiniz. Örneğin, aşağıdaki kod parçacığı tüm hak taleplerini dolaşır ve her koleksiyonun içeriğini yazdırır.
for (Object key : map.keySet()) {
Object value = map.get(key);
if (value != null && value instanceof Collection {
Collection claims = (Collection) value;
for (Object claim : claims) {
System.out.println(claims);
}
}
}
Kullanıcıların oturumunu kapatmak için /.auth/ext/logout yolunu kullanın. Diğer eylemleri gerçekleştirmek için bkz. Oturum açma ve oturum kapatma işlemlerini özelleştirme. Tomcat HttpServletRequest arabirimi ve yöntemleriyle ilgili resmi belgeler de vardır. Aşağıdaki servlet yöntemleri de App Service yapılandırmanıza göre nemlenir:
public boolean isSecure()
public String getRemoteAddr()
public String getRemoteHost()
public String getScheme()
public int getServerPort()
Bu özelliği devre dışı bırakmak için değerine WEBSITE_AUTH_SKIP_PRINCIPALsahip adlı 1 bir Uygulama Ayarı oluşturun. App Service tarafından eklenen tüm servlet filtrelerini devre dışı bırakmak için değerine WEBSITE_SKIP_FILTERSsahip adlı 1 bir ayar oluşturun.
JBoss EAP için Tomcat sekmesine bakın.
TLS'yi yapılandırma
Mevcut bir TLS sertifikasını karşıya yüklemek ve uygulamanızın etki alanı adına bağlamak için bkz. Azure App Service'te özel bir etki alanı için HTTPS'yi etkinleştirme. Uygulamayı TLS'yi zorunlu kacak şekilde de yapılandırabilirsiniz.
Azure Key Vault başvurularını kullanma
Azure Key Vault , erişim ilkeleri ve denetim geçmişi ile merkezi gizli dizi yönetimi sağlar. Parolalar veya bağlantı dizeleri gibi gizli bilgileri bir anahtar kasasında depolayabilirsiniz. Uygulamanızdaki bu gizli dizilere ortam değişkenleri aracılığıyla erişebilirsiniz.
İlk olarak, uygulamanıza anahtar kasasına erişim izni verin ve Uygulama Ayarları'nda gizli anahtarınıza bir Key Vault referansı yapın. App Service terminaline uzaktan erişirken ortam değişkenini yazdırarak başvurunun gizli diziye çözümlendiğini doğrulayabilirsiniz.
Spring yapılandırma dosyaları için bkz. Dışlaştırılmış Yapılandırma.
Bu gizli dizileri Spring yapılandırma dosyanıza eklemek için ortam değişkeni ekleme söz dizimini (${MY_ENV_VAR}) kullanın.
Bu gizli dizileri Tomcat yapılandırma dosyanıza eklemek için ortam değişkeni ekleme söz dizimini (${MY_ENV_VAR}) kullanın.
Linux'ta Java anahtar depoyu kullanma
Varsayılan olarak, App Service Linux'a yüklenen tüm genel veya özel sertifikalar kapsayıcı başlatıldığında ilgili Java anahtar depolarına yüklenir. Sertifikanızı yükledikten sonra, Java anahtar deposuna yüklenmesini sağlamak için uygulama hizmetinizi yeniden başlatmanız gerekir. Ortak sertifikalar $JRE_HOME/lib/security/cacerts anahtar deposuna yüklenir. Özel sertifikalar içinde $JRE_HOME/lib/security/client.jksdepolanır.
JDBC bağlantınızı Java anahtar deposundaki sertifikalarla şifrelemek için daha fazla yapılandırma gerekebilir:
Linux'ta Java anahtar depounu başlatma
import java.security.KeyStore nesnesini başlatmak için keystore dosyasını parolayla yükleyerek başlatın. Her iki anahtar deposu için de varsayılan parola şeklindedir changeit.
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(
new FileInputStream(System.getenv("JRE_HOME")+"/lib/security/cacerts"),
"changeit".toCharArray());
KeyStore keyStore = KeyStore.getInstance("pkcs12");
keyStore.load(
new FileInputStream(System.getenv("JRE_HOME")+"/lib/security/client.jks"),
"changeit".toCharArray());
Linux'ta anahtar depoyu el ile yükleme
Sertifikaları anahtar deposuna el ile yükleyebilirsiniz. App Service'in sertifikaları anahtar deposuna otomatik olarak yüklemesini devre dışı bırakmak için değerini SKIP_JAVA_KEYSTORE_LOADiçeren bir 1uygulama ayarı oluşturun. Azure portalı kullanılarak App Service'e yüklenen tüm genel sertifikalar altında /var/ssl/certs/depolanır. Özel sertifikalar altında /var/ssl/private/depolanır.
Java Anahtar Aracı ile etkileşime geçmek veya hatalarını ayıklamak için App Service'inize bir SSH bağlantısı açın ve komutunu keytoolçalıştırın. Komutların listesi için Anahtar Aracı belgelerine bakın. KeyStore API'si hakkında daha fazla bilgi için bkz. Class KeyStore.
İlgili içerik
Azure hızlı başlangıçları, öğreticileri ve Java başvuru belgelerini bulmak için Java geliştiricileri için Azure merkezini ziyaret edin.