Schnelleinstieg: Liberty for Java-Back-End-Apps
Mit App ID können Sie Ihre API-Endpunkte auf einfache Weise schützen und die Sicherheit Ihrer Back-End-Anwendungen mit Liberty for Java gewährleisten. Mit diesem Leitfaden können Sie schnell einen einfachen Authentifizierungsablauf in weniger als 20 Minuten in Betrieb nehmen.
- Um eine Anforderung an eine geschützte Ressource zu stellen, muss ein Client über ein Zugriffstoken verfügen. In Schritt 1 stellt der Client eine Anforderung für ein Token an App ID. Weitere Informationen zum Abrufen von Zugriffstoken finden Sie unter Token abrufen.
- App ID gibt die Token zurück.
- Mithilfe des Zugriffstokens stellt der Client eine Anforderung für den Zugriff auf die geschützte Ressource.
- Die Ressource validiert das Token, das Struktur, Ablauf, Signatur, Zielgruppe und alle anderen vorhandenen Felder enthält. Wenn das Token nicht gültig ist, verweigert der Ressourcenserver den Zugriff. Wenn die Tokenvalidierung erfolgreich ist, gibt sie die Daten zurück.
Schulungsvideo
Sehen Sie sich das folgende Video an, um zu erfahren, wie Sie App ID verwenden können, um eine einfache Liberty for Java-Anwendung zu schützen. Alle Informationen, die im Video behandelt werden, finden Sie auch in schriftlicher Form auf dieser Seite.
Sie haben keine App, mit der Sie den Ablauf ausprobieren können? Kein Problem! App ID stellt eine einfache Liberty for Java-Beispielappbereit.
Vorbereitende Schritte
Bevor Sie mit der Verwendung von App ID in Ihrer Liberty for Java-Back-End-Anwendung beginnen, müssen die folgenden Voraussetzungen erfüllt sein:
- Eine Instanz des Service App ID
- IBM Cloud-CLI
- Apache Maven 3.5+
- Java 8 +
Ihre Berechtigungsnachweise abrufen
Sie können Ihre Berechtigungsnachweise mithilfe einer der folgenden Methoden abrufen.
-
Navigieren Sie zur Registerkarte Anwendungen des App ID-Dashboards. Wenn Sie noch nicht über eine Anwendung verfügen, dann können Sie auf Anwendung hinzufügen klicken, um eine neue Anwendung zu erstellen.
-
Durch eine POST-Anforderung an den
/management/v4/<tenantID>/applications
-Endpunkt.Request format: ```sh {: codeblock} curl -X POST \ https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/applications/ \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <IAMToken>' \ -d '{"name": "ApplicationName"}' ``` Example response: ```json {: screen} { "clientId": "xxxxx-34a4-4c5e-b34d-d12cc811c86d", "tenantId": "xxxxx-9b1f-433e-9d46-0a5521f2b1c4", "secret": "ZDk5YWZkYmYt*******", "name": "app1", "oAuthServerUrl": "https://us-south.appid.cloud.ibm.com/oauth/v4/xxxxx-9b1f-433e-9d46-0a5521f2b1c4", "profilesUrl": "https://us-south.appid.cloud.ibm.com", "discoveryEndpoint": "https://us-south.appid.cloud.ibm.com/oauth/v4/xxxxxx-9b1f-433e-9d46-0a5521f2b1c4/.well-known/openid-configuration" } ```
Datei server.xml
konfigurieren
-
Öffnen Sie die Datei
server.xml
. -
Fügen Sie die folgenden Features zum Abschnitt
featureManager
hinzu. Einige Features sind möglicherweise in Liberty integriert. Wenn Sie beim Ausführen Ihres Servers einen Fehler erhalten, können Sie diese installieren, in dem Sie.installUtility install {name_of_server}
aus dem Verzeichnis 'bin' Ihrer Liberty-Installation ausführen.<featureManager> <feature>appSecurity-2.0</feature> <feature>openidConnectClient-1.0</feature> <feature>ssl-1.0</feature> <feature>servlet-3.1</feature> </featureManager>
-
Konfigurieren Sie SSL, indem Sie der Datei
server.xml
folgenden Code hinzufügen.<keyStore id="defaultKeyStore" password="{password}"/> <keyStore id="RootCA" password="{password}" location="${server.config.dir}/resources/security/{myTrustStore}"/> <ssl id="{sslID}" keyStoreRef="defaultKeyStore" trustStoreRef="{truststore-ref}"/>
-
Erstellen Sie ein Open ID Connect-Client-Feature und definieren Sie die folgenden Platzhalter. Mit den Berechtigungsnachweisen, die Sie erhalten haben, füllen Sie die Platzhalter aus.
<openidConnectClient id="oidc-client-simple-liberty-backend-app" inboundPropagation="required" jwkEndpointUrl="<region>.appid.cloud.ibm.com/oauth/v4/<tenantID>/publickeys" issuerIdentifier="<region>.appid.cloud.ibm.com/oauth/v4/<tenantID>" signatureAlgorithm="RS256" audiences="{client-id}" sslRef="oidcClientSSL" />
Tabelle 1. OIDC-Elementvariablen für Liberty for Java-Apps Variable Beschreibung id
Der Name Ihrer Anwendung. inboundPropagation
Damit die im Token empfangenen Informationen weitergegeben werden, muss der Wert auf "required" gesetzt werden. jwkEndpointUrl
Der Endpunkt, der verwendet wird, um Schlüssel für die Validierung des Token abzurufen. Weitere Informationen zu den verfügbaren Regionen. Sie können Ihre Tenant-ID in den Berechtigungsnachweisen finden, die Sie zuvor erstellt haben. issuerIdentifier
Die Aussteller-ID definiert Ihren Berechtigungsserver. Weitere Informationen zu den verfügbaren Regionen. Sie können Ihre Tenant-ID in den Berechtigungsnachweisen finden, die Sie zuvor erstellt haben. signatureAlgorithm
Als "RS256" angegeben. audiences
Standardmäßig wird das Token für Ihre App ID-Client-ID ausgegeben, die sich in Ihren Anwendungsberechtigungsnachweisen befindet. sslRef
Der Name der SSL-Konfiguration, die Sie verwenden möchten. -
Definieren Sie Ihren speziellen Subjekttyp als
ALL_AUTHENTICATED_USERS
.<application id="simple-liberty-backend-app" location="location-of-your-war-file" name="simple-liberty-backend-app" type="war"> <application-bnd> <security-role name="myrole"> <special-subject type="ALL_AUTHENTICATED_USERS"/> </security-role> </application-bnd> </application>
Datei web.xml
konfigurieren
Definieren Sie in der Datei web.xml
die Bereiche Ihrer Anwendung, die Sie schützen möchten.
-
Definieren Sie eine Sicherheitsrolle. Diese Rolle muss dieselbe Rolle sein, die Sie in der Datei
server.xml
definiert haben.<security-role> <role-name>myrole</role-name> </security-role>
-
Definieren Sie eine Integritätsbedingung für die Sicherheit
<security-constraint> <display-name>Security Constraints</display-name> <web-resource-collection> <web-resource-name>ProtectedArea</web-resource-name> <url-pattern>/api/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>myrole</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint>
Konfiguration testen
Nachdem Sie nun die Erstinstallation abgeschlossen haben, erstellen Sie die App und testen Ihre Konfiguration, um sicherzustellen, dass alles wie erwartet funktioniert.
-
Wechseln Sie in Ihr Anwendungsverzeichnis.
-
Erstellen Sie Ihre Anwendung.
server run
-
Stellen Sie eine Anforderung an den geschützten Endpunkt. Es wird ein Fehler zurückgegeben.
-
Stellen Sie mit dem Zugriffstoken, das Sie im vorherigen Schritt erhalten haben, eine Anforderung an den Endpunkt. Sie können jetzt auf den geschützten Endpunkt zugreifen. Überprüfen Sie, dass die Antwort den erwarteten Inhalt aufweist.
Nächste Schritte
Sind Sie bereit, Ihre Authentifizierungserfahrung zu perfektionieren? Lesen Sie diesen Blog oder erfahren Sie mehr über die App-zu-App-Kommunikation.