

AWS O Mainframe Modernization Service (experiência em Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Service (experiência em Managed Runtime Environment), explore o AWS Mainframe Modernization Service (experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte Alteração na [disponibilidade AWS da modernização do mainframe](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configure a OAuth2 autenticação Gapwalk com o Keycloak
<a name="ba-runtime-auth-keycloak"></a>

Este tópico descreve como configurar a OAuth2 autenticação para aplicativos Gapwalk usando o Keycloak como provedor de identidade (IdP). Neste tutorial, usamos o Keycloak 24.0.0.

## Pré-requisitos
<a name="ba-runtime-auth-keycloak-prereq"></a>
+ [Keycloak](https://www.keycloak.org/)
+ Aplicação Gapwalk

## Configuração do Keycloak
<a name="keycloak-setup"></a>

1. Acesse o painel do Keycloak no navegador da web. As credenciais padrão são admin/admin. Acesse a barra de navegação do canto superior esquerdo e crie um domínio com o nome **demo**, conforme mostrado na imagem a seguir.  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_2.png)

1. Crie um cliente com o nome **app-demo**.  
![\[User interface for creating a new client in an authentication management system.\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_3.jpg)

   Substituir `localhost:8080` pelo endereço da sua aplicação Gapwalk  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_4.png)  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_5.png)

1. Para receber o segredo do cliente, escolha **Clientes**, depois **app-demo** e depois **Credenciais**.  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_6.jpg)

1. Escolha **Clientes**, depois **Escopos do cliente** e, depois, **Adicionar mapeador predefinido**. Escolha **Perfis do domínio**.  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_7.jpg)

1. Edite o perfil de domínio com a configuração mostrada na imagem a seguir.  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_8.jpg)

1. Lembre-se do **Nome de reivindicação de token** definido. Você precisará desse valor na definição de configurações do Gapwalk para a propriedade `gapwalk-application.security.claimGroupName`.  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_9.jpg)

1. Escolha **Perfis do domínio** e crie três perfis: **SUPER\$1ADMIN**, **ADMIN** e **USER**. Esses perfis são posteriormente associados a `ROLE_SUPER_ADMIN`, `ROLE_ADMIN` e `ROLE_USER` pela aplicação Gapwalk para poder acessar algumas chamadas restritas de API REST.  
![\[alt_text\]](http://docs.aws.amazon.com/pt_br/m2/latest/userguide/images/ba-runtime-auth-keycloak_10.jpg)

## Integrar o Keycloak à aplicação Gapwalk
<a name="gapwalk-setup"></a>

Edite `application-main.yml` da seguinte forma:

```
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
```

Substitua *<KEYCLOAK\$1SERVER\$1HOSTNAME>**<YOUR\$1REALM\$1NAME>*,*<YOUR\$1CLIENT\$1ID>*, e *<YOUR\$1CLIENT\$1SECRET>* por seu nome de host do servidor Keycloak, seu nome de domínio, seu ID de cliente e seu segredo de cliente.