

AWS Der Mainframe Modernization Service (Managed Runtime Environment Experience) steht Neukunden nicht mehr zur Verfügung. Funktionen, die dem AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter Änderung der Verfügbarkeit von [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren Sie die Gapwalk-Authentifizierung OAuth2 mit Keycloak
<a name="ba-runtime-auth-keycloak"></a>

In diesem Thema wird beschrieben, wie die OAuth2 Authentifizierung für Gapwalk-Anwendungen mit Keycloak als Identitätsanbieter (IdP) konfiguriert wird. In diesem Tutorial verwenden wir Keycloak 24.0.0.

## Voraussetzungen
<a name="ba-runtime-auth-keycloak-prereq"></a>
+ [Keycloak](https://www.keycloak.org/)
+ Gapwalk-Anwendung

## Einrichtung von Keycloak
<a name="keycloak-setup"></a>

1. Gehen Sie in Ihrem Webbrowser zu Ihrem Keycloak-Dashboard. Die Standardanmeldedaten sind admin/admin. Gehen Sie zur Navigationsleiste oben links und erstellen Sie einen Bereich mit dem Namen**demo**, wie in der folgenden Abbildung gezeigt.  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_2.png)

1. Erstellen Sie einen Client mit dem Namen**app-demo**.  
![\[User interface for creating a new client in an authentication management system.\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_3.jpg)

   `localhost:8080`Ersetzen Sie es durch die Adresse Ihrer Gapwalk-Anwendung  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_4.png)  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_5.png)

1. **Um Ihr Client-Geheimnis zu erhalten, wählen Sie **Clients**, dann **App-Demo und dann Credentials**.**  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_6.jpg)

1. Wählen Sie **Clients**, dann **Client-Bereiche und dann Vordefinierten** Mapper **hinzufügen** aus. Wählen Sie **Realm-Rollen** aus.  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_7.jpg)

1. Bearbeiten Sie Ihre Realm-Rolle mit der in der folgenden Abbildung gezeigten Konfiguration.  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_8.jpg)

1. Merken Sie sich den definierten **Namen für den Token-Anspruch**. Sie benötigen diesen Wert in der Definition der Gapwalk-Einstellungen für die `gapwalk-application.security.claimGroupName` Eigenschaft.  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_9.jpg)

1. Wählen Sie **Realms-Rollen** und erstellen Sie 3 Rollen:**SUPER\$1ADMIN**, **ADMIN** und. **USER** Diese Rollen werden später der Gapwalk-Anwendung `ROLE_SUPER_ADMIN``ROLE_ADMIN`, und `ROLE_USER` zugeordnet, um auf einige eingeschränkte API-REST-Aufrufe zugreifen zu können.  
![\[alt_text\]](http://docs.aws.amazon.com/de_de/m2/latest/userguide/images/ba-runtime-auth-keycloak_10.jpg)

## Integrieren Sie Keycloak in die Gapwalk-Anwendung
<a name="gapwalk-setup"></a>

Bearbeiten Sie Ihre wie folgt: `application-main.yml`

```
gapwalk-application.security: enabled
gapwalk-application.security.identity: oauth
gapwalk-application.security.issuerUri: http://<KEYCLOAK_SERVER_HOSTNAME>/realms/<YOUR_REALM_NAME>
gapwalk-application.security.claimGroupName: "keycloak:groups"

gapwalk-application.security.userAttributeName: "preferred_username"
# Use "username" for cognito, 
#     "preferred_username" for keycloak
#      or any other string

spring:
  security:
    oauth2:
      client:
        registration:
          demo:
            client-id: <YOUR_CLIENT_ID>
            client-name: Demo App
            client-secret: <YOUR_CLIENT_SECRET>
            provider: keycloak
            authorization-grant-type: authorization_code
            scope: openid
            redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
        provider:
          keycloak:
            issuer-uri: ${gapwalk-application.security.issuerUri}
            authorization-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/auth
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/certs
            token-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/token
            user-name-attribute: ${gapwalk-application.security.userAttributeName}
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/certs
```

Ersetzen Sie*<KEYCLOAK\$1SERVER\$1HOSTNAME>*, *<YOUR\$1REALM\$1NAME>**<YOUR\$1CLIENT\$1ID>*, und *<YOUR\$1CLIENT\$1SECRET>* durch Ihren Keycloak-Server-Hostnamen, Ihren Realm-Namen, Ihre Client-ID und Ihr Client-Geheimnis.