Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u Java-specifieke beveiligingsinstellingen configureert in App Service. Java-toepassingen die worden uitgevoerd in App Service, hebben dezelfde set aanbevolen beveiligingsprocedures als andere toepassingen.
Azure-app Service voert Java-webtoepassingen uit op een volledig beheerde service in drie varianten:
- Java Standard Edition (SE): Kan een app uitvoeren die is geïmplementeerd als een Jar-pakket (Java Archive) dat een ingesloten server bevat (zoals Spring Boot, Quarkus, Dropwizard of een app met een ingesloten Tomcat- of Jetty-server).
- Tomcat: De ingebouwde Tomcat-server kan een app uitvoeren die is geïmplementeerd als een WAR-pakket (Web Application Archive).
- JBoss Enterprise Application Platform (EAP): de ingebouwde JBoss EAP-server kan een app uitvoeren die is geïmplementeerd als een WAR- of Enterprise Archive-pakket (EAR). Ondersteund voor Linux-apps in een set prijscategorieën, waaronder Gratis, Premium v3 en Isolated v2.gti
Opmerking
JBoss EAP op App Service ondersteunt nu BYOL-facturering (Bring Your Own License), zodat klanten met bestaande Red Hat-abonnementen deze licenties rechtstreeks kunnen toepassen op hun JBoss EAP-implementaties in Azure App Service. Meer informatie.
Gebruikers verifiëren (Easy Auth)
Stel app-verificatie in Azure Portal in met de optie Verificatie en autorisatie . Hier kunt u verificatie inschakelen met behulp van Microsoft Entra ID of sociale aanmeldingen, zoals Facebook, Google of GitHub. Azure Portal-configuratie werkt alleen bij het configureren van één verificatieprovider. Zie Uw App Service-app configureren voor het gebruik van microsoft Entra-aanmelding en de gerelateerde artikelen voor andere id-providers voor meer informatie. Als u meerdere aanmeldingsproviders wilt inschakelen, volgt u de instructies in Aanmeldingen en afmelden aanpassen.
Spring Boot-ontwikkelaars kunnen de Microsoft Entra Spring Boot-starter gebruiken om toepassingen te beveiligen met vertrouwde Spring Security-aantekeningen en API's. Zorg ervoor dat u de maximale headergrootte in het bestand application.properties verhoogt. We stellen een waarde voor 16384.
Uw Tomcat-toepassing heeft rechtstreeks vanuit de servlet toegang tot de claims van de gebruiker door het principal-object naar een kaartobject te casten. Het Map object wijst elk claimtype toe aan een verzameling van de claims voor dat type. In het volgende codevoorbeeld request is dit een exemplaar van HttpServletRequest.
Map<String, Collection<String>> map = (Map<String, Collection<String>>) request.getUserPrincipal();
Nu kunt u het Map object controleren op een specifieke claim. Het volgende codefragment doorloopt bijvoorbeeld alle claimtypen en drukt de inhoud van elke verzameling af.
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);
}
}
}
Als u gebruikers wilt afmelden, gebruikt u het /.auth/ext/logout pad. Raadpleeg de documentatie over aanmeldingen en afmeldingen aanpassen om andere acties uit te voeren. Er is ook officiële documentatie over de Tomcat HttpServletRequest-interface en de bijbehorende methoden. De volgende servlet-methoden worden eveneens gehydrateerd op basis van uw App Service configuratie.
public boolean isSecure()
public String getRemoteAddr()
public String getRemoteHost()
public String getScheme()
public int getServerPort()
Als u deze functie wilt uitschakelen, maakt u een toepassingsinstelling met de naam WEBSITE_AUTH_SKIP_PRINCIPAL met de waarde .1 Als u alle servlet-filters wilt uitschakelen die door App Service zijn toegevoegd, maakt u een instelling met de naam WEBSITE_SKIP_FILTERS met de waarde .1
Zie het tabblad Tomcat voor JBoss EAP.
TLS/SSL configureren
Als u een bestaand TLS/SSL-certificaat wilt uploaden en dit wilt binden aan de domeinnaam van uw toepassing, volgt u de instructies in Een aangepaste DNS-naam beveiligen met een TLS/SSL-binding in Azure-app Service. U kunt de app ook configureren om TLS/SSL af te dwingen.
KeyVault-verwijzingen gebruiken
Azure KeyVault biedt gecentraliseerd geheimbeheer met toegangsbeleid en controlegeschiedenis. U kunt geheimen (zoals wachtwoorden of verbindingsreeks s) opslaan in KeyVault en deze geheimen in uw toepassing openen via omgevingsvariabelen.
Volg eerst de instructies voor het verlenen van toegang tot uw app tot een sleutelkluis en het maken van een KeyVault-verwijzing naar uw geheim in een toepassingsinstelling. U kunt controleren of de verwijzing naar het geheim leidt door de omgevingsvariabele weer te geven terwijl u op afstand toegang hebt tot de App Service-terminal.
Raadpleeg deze documentatie over externe configuraties voor Spring-configuratiebestanden.
Als u deze geheimen in uw Spring-configuratiebestand wilt injecteren, gebruikt u syntaxis voor omgevingsvariabeleinjectie (${MY_ENV_VAR}).
Als u deze geheimen wilt injecteren in uw Tomcat-configuratiebestand, gebruikt u de syntaxis van de omgevingsvariabele injectie (${MY_ENV_VAR}).
Het Java-sleutelarchief gebruiken in Linux
Standaard worden openbare of persoonlijke certificaten die naar App Service Linux zijn geüpload, geladen in de respectieve Java-sleutelarchieven wanneer de container wordt gestart. Nadat u uw certificaat hebt geüpload, moet u uw App Service opnieuw starten om het te laden in het Java-sleutelarchief. Openbare certificaten worden geladen in het sleutelarchief op $JRE_HOME/lib/security/cacerts, en persoonlijke certificaten worden opgeslagen in $JRE_HOME/lib/security/client.jks.
Mogelijk is er meer configuratie nodig voor het versleutelen van uw JDBC-verbinding met certificaten in het Java-sleutelarchief. Raadpleeg de documentatie voor het gekozen JDBC-stuurprogramma.
Het Java-sleutelarchief initialiseren in Linux
Als u het import java.security.KeyStore object wilt initialiseren, laadt u het sleutelarchiefbestand met het wachtwoord. Het standaardwachtwoord voor beide sleutelarchieven is 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());
Het sleutelarchief handmatig laden in Linux
U kunt certificaten handmatig laden in het sleutelarchief. Maak een app-instelling genaamd SKIP_JAVA_KEYSTORE_LOAD met een waarde van 1 om te voorkomen dat App Service de certificaten automatisch in het sleutelarchief laadt. Alle openbare certificaten die via Azure Portal naar App Service zijn geüpload, worden opgeslagen onder /var/ssl/certs/. Persoonlijke certificaten worden opgeslagen onder /var/ssl/private/.
U kunt interactie hebben met of fouten opsporen in het Java-sleutelprogramma door een SSH-verbinding met uw App Service te openen en de opdracht keytooluit te voeren. Raadpleeg de documentatie van het Key Tool voor een lijst met commando's. Zie de officiële documentatie voor meer informatie over de KeyStore-API.
Verwante inhoud
Ga naar het Azure voor Java-ontwikkelaarscentrum om azure-snelstartgidsen, zelfstudies en Java-referentiedocumentatie te vinden.