

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Implemente la autenticación basada en Microsoft Entra ID en una aplicación de mainframe modernizada de AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani y Rimpy Tewani, Amazon Web Services*

## Resumen
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-summary"></a>

**nota**  
AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funcionalidades similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Las aplicaciones de mainframe que se modernizan mediante patrones de refactorización, como las de [AWS Mainframe Modernization Refactor con AWS Blu Age, requieren una integración cuidadosa de los mecanismos de autenticación en la nueva](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) arquitectura de la aplicación. Esta integración suele abordarse como una actividad posterior a la modernización. La tarea puede ser compleja y, a menudo, implica la migración o la externalización de los sistemas de autenticación existentes para alinearlos con los estándares de seguridad modernos y las prácticas nativas en la nube. Los desarrolladores deben considerar cómo implementar la autenticación de manera eficaz mientras trabajan dentro de las limitaciones del tiempo de ejecución y las bibliotecas de la aplicación modernizada. Tras la modernización, AWS proporciona formas de facilitar la integración del código moderno de AWS Blu Age con sistemas de administración de identidades y accesos, como [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) y [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) (anteriormente conocido como Azure AD).

Este patrón explica cómo implementar un mecanismo de autenticación en una aplicación modernizada cuando el proveedor de autenticación es Microsoft Entra ID, sin perder tiempo en investigaciones y pruebas. El patrón proporciona lo siguiente:
+ Bibliotecas de Angular pertinentes y probadas en campo de la Biblioteca de autenticación de Microsoft (MSAL) y otra documentación de Microsoft Entra ID que son esenciales para la implementación de la autenticación. 
+ Se requieren configuraciones en el entorno de ejecución de AWS Blu Age para habilitar Spring Security mediante la OAuth versión 2.0.
+ Una biblioteca que captura las identidades de los usuarios autenticados y las pasa al AWS Blu Age Runtime.
+ Medidas de seguridad que recomendamos implementar.
+ Sugerencias de solución de problemas frecuentes con la configuración de Microsoft Entra ID.

**nota**  
Este patrón utiliza la biblioteca de OAuth extensiones AWS Blu Age, que se proporciona a los clientes como parte de su contratación con [los servicios AWS profesionales](https://aws.amazon.com/professional-services/). Esta biblioteca no forma parte de AWS Blu Age Runtime.

## Requisitos previos y limitaciones
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Requisitos previos **
+ Una aplicación modernizada que fue producida por las herramientas de refactorización y modernización de mainframes de AWS Blu Age. Este patrón se utiliza [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)como ejemplo de una aplicación de mainframe de código abierto.
+ La biblioteca de OAuth extensiones de AWS Blu Age, proporcionada por el equipo de AWS Blu Age durante su contratación con [AWS Professional Services](https://aws.amazon.com/professional-services/).
+ Activa Cuenta de AWS para implementar y probar la aplicación modernizada.
+ Familiaridad con los archivos de configuración de AWS Blu Age y los fundamentos de Microsoft Entra ID.

**Limitaciones**
+ Este patrón abarca la autenticación OAuth 2.0 y los flujos básicos de autorización basados en tokens. Los escenarios de autorización avanzada y los mecanismos de control de acceso detallados no están dentro del alcance.
+ Algunos Servicios de AWS no están disponibles en todos. Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte [Servicios de AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

**Versiones de producto**

Este patrón se desarrolló mediante lo siguiente:
+ AWS Blu Age Runtime versión 4.1.0 (el patrón también funciona con versiones posteriores compatibles con versiones anteriores)
+ Biblioteca MSAL, versión 3.0.23
+ Java Development Kit (JDK), versión 17
+ Angular, versión 16.1

## Arquitectura
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-architecture"></a>

**Pila de tecnología de origen**

En los entornos de mainframe típicos, la autenticación se implementa a través de los perfiles de usuario. Estos perfiles identifican a los usuarios del sistema, definen quién puede iniciar sesión y especifican qué funciones pueden llevar a cabo los usuarios con los recursos del sistema. Los perfiles de usuario los administran los responsables de seguridad o los administradores de seguridad.

**Pila de tecnología de destino**
+ ID de Microsoft Entra
+ Backend modernizado basado en Java Spring Boot
+ AWS Blu Age Runtime
+ Spring Security con OAuth 2.0
+ Aplicación de una sola página de Angular (SPA)

**Arquitectura de destino**

AWS El tiempo de ejecución de Blu Age admite la autenticación OAuth basada en la versión 2.0 de forma predeterminada, por lo que el patrón utiliza ese estándar para proteger el backend APIs.

En el diagrama siguiente se ilustra el flujo del proceso.

**nota**  
En el diagrama se incluye Amazon Aurora como ejemplo de modernización de bases de datos, aunque Aurora no se incluye en los pasos de este patrón.

![\[Flujo del proceso para la autenticación basada en Entra ID para una aplicación de AWS Blu Age.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


donde:

1. Un usuario intenta autenticarse con Microsoft Entra ID.

1. Microsoft Entra ID devuelve los tokens de actualización, acceso e ID que la aplicación utiliza en llamadas posteriores.

1. El interceptor MSAL incluye el token de acceso en el `Authorization` encabezado de una solicitud HTTPS para llamar al Blu Age Runtime. AWS 

1. La `extension-oauth` biblioteca AWS Blu Age extrae la información del usuario del encabezado mediante un archivo de configuración de AWS Blu Age Runtime (`application-main.yml`) y coloca esta información en un `SharedContext` objeto para que la lógica empresarial pueda consumirla.
**nota**  
`SharedContext`es un componente de tiempo de ejecución proporcionado por AWS Blu Age que gestiona la información de contexto y estado de la aplicación en toda la aplicación modernizada. Para obtener más información sobre los componentes y las actualizaciones de AWS Blu Age Runtime, consulta las [notas de la versión de AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) en la AWS Mainframe Modernization documentación. Para obtener más información sobre el `application-main.yml` archivo, consulte [Configurar la configuración de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html) en la AWS Mainframe Modernization documentación.

1. El AWS Blu Age Runtime comprueba si el token está presente. 

   1. Si el token está presente, se comunica con Microsoft Entra ID para comprobar su validez. 

   1. Si el token no está presente, el AWS Blu Age Runtime devuelve un error con el código de estado HTTP 403.

1. Si el token es válido, el AWS Blue Age Runtime permite que la lógica empresarial continúe. Si el token no es válido, AWS Blu Age Runtime devuelve un error con el código de estado HTTP 403.

**OAuth Flujo de trabajo 2.0**

Para ver un diagrama de alto nivel del flujo de trabajo OAuth 2.0, consulte la [documentación de Microsoft Entra](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

## Tools (Herramientas)
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools"></a>

**Servicios de AWS**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)proporciona herramientas y recursos para ayudarlo a planificar e implementar la migración y la modernización de los mainframes a los entornos de tiempo de ejecución AWS gestionados. Puede utilizar las funciones de refactorización de este servicio, que proporciona AWS Blu Age, para convertir y modernizar sus aplicaciones de mainframe antiguas.

**nota**  
AWS Mainframe Modernization El servicio (experiencia de entorno de ejecución gestionado) ya no está abierto a nuevos clientes. Para obtener funcionalidades similares a las AWS Mainframe Modernization de Service (experiencia en entornos de ejecución gestionados), explore AWS Mainframe Modernization Service (experiencia autogestionada). Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Repositorio de código**

La CardDemo aplicación se ha actualizado para demostrar la integración con Microsoft Entra ID. Puedes acceder al código de [este patrón desde el GitHub repositorio](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app).

**Configuración de backend**

Este patrón requiere cambios en el archivo de `application-main.yml`**** configuración para habilitar Spring Security mediante el uso de la OAuth versión 2.0 en la aplicación de fondo.  El archivo `.yml` tiene este aspecto:

```
gapwalk-application.security: enabled
gapwalk-application:
  security: 
    identity: oauth
    issuerUri: ${issuerUrl}
    claim:
      claims:
        -
          claimName: upn
          claimMapValue: username
spring:
  autoconfigure:
    exclude:
     - org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration
     - org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration
  security:
    oauth2:
      client:
        registration: 
          azure:
            client-id: {clientId}
            client-secret: ${clientSecret}
            provider: azure
            authorization-grant-type: authorization_code
            redirect-uri: ${redirectUri}
            scope: openid
           
        provider:
          azure:
            authorization-uri: ${gapwalk-application.security.issuerUri}/oauth2/v2.0/authorize
            token-uri:  ${gapwalk-application.security.issuerUri}/oauth2/v2.0/token
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
```

**AWS Biblioteca de filtros de OAuth extensiones Blu Age**

La biblioteca de OAuth extensiones de AWS Blu Age la proporciona el equipo de AWS Blu Age durante su contratación con [AWS Professional Services](https://aws.amazon.com/professional-services/).

Esta biblioteca lee la configuración `claim.claims` del archivo `application-main.yml` que se muestra en el bloque de código anterior. Esta configuración es una lista. Cada elemento de la lista proporciona dos valores: `claimName` y `claimMapValue`. `claimName` representa el nombre de una clave en un token web JSON (JWT) enviado por el frontend y `claimMapValue` es el nombre de la clave en `SharedContext`. Por ejemplo, si quieres capturar el ID de usuario en el backend, establezca `claimName` en el nombre de la clave en el JWT que contiene el valor de `userId` proporcionado por Microsoft Entra ID y establezca `claimMapValue` en el nombre de la clave para obtener el ID de usuario en el código del backend.

Por ejemplo, si establece `UserId` en `claimMapValue`, puede usar el siguiente código para extraer el ID de usuario:

```
SharedContext.get().getValue("userId", [UserId]);
```

## Prácticas recomendadas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Al implementar este patrón, tenga en cuenta las siguientes consideraciones de seguridad importantes.

**importante**  
Este patrón proporciona una base para la integración de la autenticación. Le recomendamos que implemente medidas de seguridad además de las descritas en esta sección en función de los requisitos de su empresa antes de implementarla en producción.
+ **AWS seguridad de configuración.**Mueva los valores de configuración confidenciales de `application-main.yml` a AWS Secrets Manager. Por ejemplo, configure las siguientes propiedades mediante Secrets Manager:

  ```
  security:
      oauth2:
        client:
          registration: 
            azure:
              client-id: {clientId}
              client-secret: ${clientSecret}
  ```

  Para obtener más información sobre cómo usar Secrets Manager para configurar los parámetros de AWS Blu Age, consulta los [secretos de AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html) en la AWS Mainframe Modernization documentación.
+ **Protección del entorno del tiempo de ejecución.** Configure el entorno de aplicaciones modernizado con los controles AWS de seguridad adecuados:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Registro de Amazon.** Considere la posibilidad de agregar el archivo `logback-spring.xml to src/main/resources`:

  ```
  <configuration> 
   <appender name="CLOUDWATCH" class="com.amazonaws.services.logs.logback.CloudWatchAppender">  
     <logGroup>/aws/bluage/application</logGroup> 
     <logStream>${AWS_REGION}-${ENVIRONMENT}</logStream> 
     <layout> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </layout> 
   </appender> 
  
   <root level="INFO"> 
   <appender-ref ref="CLOUDWATCH"/> 
   </root> 
  </configuration>
  ```

  Para obtener información sobre cómo habilitar el rastreo con la correlación CloudWatch, consulte [Habilitar la correlación entre el rastreo y el registro](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html) en la CloudWatch documentación.
+ **Configuración y gestión de tokens.** Configure la vida útil de los tokens en Microsoft Entra ID para adaptarla a sus requisitos de seguridad. Configure los tokens de acceso para que caduquen en 1 hora y actualícelos para que caduquen en 24 horas. En la configuración de AWS Blu Age Runtime (`application-main.yml`), asegúrese de que la validación de JWT esté configurada correctamente con el URI del emisor y los valores de audiencia exactos del registro de la aplicación Entra ID.

  Cuando un token caduca y se actualiza:

  1. El interceptor de errores de la aplicación de Angular gestiona la respuesta 401 obteniendo un nuevo token a través de MSAL.

  1. El nuevo token se envía con la solicitud posterior.

  1. El OAuth filtro del AWS Blu Age Runtime valida el nuevo token y se actualiza automáticamente `SharedContext` con la información de usuario actual. Esto garantiza que la lógica empresarial siga teniendo acceso al contexto de usuario válido a través de las llamadas `SharedContext.get().getValue()`.

  Para obtener más información sobre los componentes de AWS Blu Age Runtime y sus actualizaciones, consulta las [notas de la versión de AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **Seguridad del tiempo de ejecución de AWS Blu Age.** La `oauth2-ext` biblioteca proporcionada por AWS Blu Age debe colocarse en la ubicación correcta del directorio compartido (`{app-server-home}/shared/`) con los permisos de archivo adecuados. Compruebe que la biblioteca extrae correctamente la información del usuario JWTs comprobando la población de `SharedContext` objetos en sus registros.
+ **Configuración de notificaciones específicas.** En `application-main.yml`, defina las notificaciones que necesita de Microsoft Entra ID de forma explícita. Por ejemplo, para capturar el correo electrónico y los roles del usuario, especifique lo siguiente:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Gestión de errores.** Agregue el manejo de errores para abordar los errores de autenticación en su aplicación de Angular; por ejemplo:

  ```
  @Injectable()
  export class AuthErrorInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
      return next.handle(request).pipe(
        catchError((error: HttpErrorResponse) => {
          if (error.status === 401) {
            // Handle token expiration
            this.authService.login();
          }
          if (error.status === 403) {
            // Handle unauthorized access
            this.router.navigate(['/unauthorized']);
          }
          return throwError(() => error);
        })
      );
    }
  }
  ```
+ **Configuración del tiempo de espera de la sesión.** Configure los ajustes de tiempo de espera de la sesión tanto en el AWS Blu Age Runtime como en el Microsoft Entra ID. Por ejemplo, agregue el siguiente código al archivo `application-main.yml`:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Debe implementar la MsalGuard función en todas las rutas protegidas para evitar el acceso no autorizado. Por ejemplo:

  ```
  const routes: Routes = [
      { path: '', redirectTo: '/transaction-runner', pathMatch: 'full' },
      { path: 'transaction-runner', component: TransactionRunnerComponent, canActivate:guards },
      { path: 'user-info', component: UserInfoComponent, canActivate:guards },
      { path: 'term/:transid/:commarea', component: TermComponent, canActivate:guards },
  	{ path: 'code', component: TransactionRunnerComponent  }
  ];
  ```

  Se podrá acceder a las rutas que MsalGuard no estén protegidas sin autenticación, lo que podría exponer funciones confidenciales. Asegúrese de que todas las rutas que requieren autenticación incluyan las protecciones en su configuración.

## Epics
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-epics"></a>

### Configuración de Microsoft Entra ID
<a name="set-up-a-microsoft-entra-id"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configurar una cuenta de Microsoft Azure para crear una instancia de Entra ID. | Para ver las opciones e instrucciones, consulte el [sitio web de Microsoft Azure](https://azure.microsoft.com/en-us/free/). | Desarrollador de aplicaciones | 
| Configurar una instancia de Microsoft Entra ID en la aplicación. | Para obtener información sobre cómo agregar la autenticación de Microsoft Entra ID B2C (Azure AD B2C) a su SPA de Angular, consulte la [documentación de Microsoft](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components). En concreto:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desarrollador de aplicaciones | 

### Clona el repositorio e implementa tu código de AWS Blu Age
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clona el GitHub repositorio para obtener el código angular necesario para la autenticación. | Ejecuta el siguiente comando para clonar el [GitHub repositorio](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) que viene con este patrón en tu directorio de trabajo actual local:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | Desarrollador de aplicaciones | 
| Implemente el código modernizado de AWS Blu Age en un servidor Tomcat para implementar la autenticación. | Para configurar el entorno local que incluye Tomcat y el servidor de desarrollo Angular, siga los pasos de instalación proporcionados por el equipo de AWS Blu Age como parte de la interacción de los clientes con AWS los servicios profesionales. | Desarrollador de aplicaciones | 

### Creación de la solución de autenticación
<a name="build-the-authentication-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Habilitar la seguridad del tiempo de ejecución de AWS Blu Age para proteger los puntos de conexión de la API de REST de AWS Blu Age. | Configure el `application-main.yml` archivo que utiliza el AWS Blu Age Runtime de la siguiente manera. Para ver un ejemplo de este archivo, consulte la sección [Repositorio de código](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools), incluida anteriormente en este patrón.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desarrollador de aplicaciones | 
| Incorporar el código de ejemplo de su entorno local a su base de código de Angular modernizada de Blu Age. | Para obtener información sobre cómo incorporar el ejemplo en su base de código angular modernizada de AWS Blu Age, consulte la sección sobre el [repositorio de códigos](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) que aparece anteriormente en este patrón. | Desarrollador de aplicaciones | 
| Colocar la biblioteca `oauth2-ext` en el directorio compartido. | Coloque la biblioteca `oauth2-ext` en el directorio compartido** **del servidor de aplicaciones para que su aplicación modernizada de** **AWS Blu Age pueda usarla**.**Ejecute los siguientes comandos :<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | Desarrollador de aplicaciones | 

### Implementación de la solución de autenticación
<a name="deploy-the-authentication-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implementar la aplicación de frontend. | Ejecute los comandos siguientes para iniciar la aplicación de frontend de forma local:<pre>npm install <br />ng serve --ssl<br />npm start</pre>Al agregar la marca `--ssl` al comando `ng serve`, se garantiza que el servidor de desarrollo utilice HTTPS, que es más seguro que otros protocolos y proporciona una mejor simulación de un entorno de producción. | Desarrollador de aplicaciones | 
| Iniciar la aplicación de backend. | Inicie el servidor de Tomcat en Eclipse. | Desarrollador de aplicaciones | 

### Pruebe la aplicación
<a name="test-the-application"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Probar la funcionalidad de inicio de sesión. | Acceda a la aplicación implementada localmente en `http://localhost:4200` para comprobar que se pide a los usuarios que confirmen su identidad.Aquí se usa HTTP con fines ilustrativos. En un entorno de producción u otro entorno de acceso público, debe utilizar HTTPS por motivos de seguridad. Incluso para el desarrollo local, le recomendamos que configure HTTPS siempre que sea posible.Debería aparecer el mensaje de inicio de sesión de Microsoft y los usuarios configurados en Microsoft Entra ID deberían poder acceder a la aplicación. | Desarrollador de aplicaciones | 
| Probar el encabezado de la autorización de la solicitud. | En los siguientes pasos, se usa la [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)aplicación como ejemplo. Los pasos de prueba para otras aplicaciones modernas variarán.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | Desarrollador de aplicaciones | 
| Probar la funcionalidad de cierre de sesión. | Elija **Salir** para cerrar sesión e intente acceder de nuevo a la aplicación. Debería ver un nuevo mensaje de inicio de sesión. | Desarrollador de aplicaciones | 

## Resolución de problemas
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| El token emitido por Microsoft Entra ID no es compatible con la seguridad de Spring Boot OAuth 2.0. | Para resolver el problema, consulta [Microsoft Entra ID OAuth Flow](https://authguidance.com/azure-ad-troubleshooting/) en el OAuth blog. | 
| Preguntas generales relacionadas con los tokens. | Para decodificar y ver el contenido de un token JWT, utilice el sitio web [https://jwt.io/](https://jwt.io/). | 

## Recursos relacionados
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Para obtener información sobre cómo refactorizar tu aplicación mediante AWS Blu Age, consulta la AWS Mainframe Modernization documentación.](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Para entender cómo funciona la OAuth versión 2.0, consulte el sitio web de la [OAuth versión 2.0](https://oauth.net/2/).
+ Para obtener información general sobre la Biblioteca de autenticación de Microsoft (MSAL), consulte la [documentación de Microsoft Entra](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Para obtener información sobre los perfiles de usuario en un sistema AS/400, consulte el [tutorial de IBM i (AS400)](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ [Para ver el OAuth flujo de autenticación 2.0 y OpenID Connect (OIDC) en la plataforma de identidad de Microsoft, consulte la documentación de Microsoft Entra.](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols)