Configuración de OAuth mediante Azure Active Directory

EMPRESA Esta es una característica de EJBCA Enterprise.

A continuación se describe cómo configurar Azure Active Directory para probar la funcionalidad de OAuth en EJBCA.

    Paso 1: Configuración de Azure Active Directory

    Para registrar EJBCA como una nueva aplicación mediante el portal de Azure, haga lo siguiente:

    1. Inicie sesión en el portal de Azure en https://portal.azure.com .

    2. En el panel de navegación de la izquierda, seleccione el servicio Azure Active Directory y luego seleccione Registros de aplicaciones > Nuevo registro .

    3. En la página Registrar una aplicación , especifique la información de registro de acuerdo con lo siguiente y luego haga clic en Registrar.

      • Nombre: especifique un nombre para la aplicación.

      • Tipos de cuentas compatibles : seleccione las cuentas que desea admitir.

      • URI de redireccionamiento (opcional) : seleccione Web y especifique la URI de redireccionamiento.
        imágenes/descargar/archivos adjuntos/143732842/RegisterApplication.png

    4. URI de redireccionamiento : configure las URI de redireccionamiento y tenga en cuenta que los parámetros de consulta y los caracteres comodín no están permitidos en las URI de redireccionamiento y que todas las URI de redireccionamiento deben configurarse en Azure.
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-02-04_a_09.20.05.png

    5. Azure AD asigna un identificador de aplicación (cliente) único a EJBCA y el portal de Azure muestra una página de descripción general de EJBCA.
      imágenes/descargar/archivos adjuntos/143732842/EJBCAOverviewAzure.png

    Paso 2: Configuración de EJBCA

    Los proveedores de OAuth se configuran en la pestaña Proveedores de OAuth confiables de configuración del sistema EJBCA ( Configuración del sistema → Proveedores de OAuth confiables ).

    Para agregar el proveedor OAuth en EJBCA y encontrar los valores de los diferentes campos en el portal de Azure, realice los pasos a continuación.

    Agregar el proveedor

    Para configurar un proveedor OAuth en EJBCA:

    1. En EJBCA, vaya a Configuración del sistema → Proveedores de OAuth confiables y haga clic en Agregar .
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-03-22_a_las_11.12.50.png

    2. Especifique lo siguiente y luego haga clic en Guardar:

      • Seleccione el tipo de proveedor OAuth = Azure .

      • Nombre del proveedor OAuth: especifique una etiqueta única para el proveedor.

    Configuración de la URL

    Para encontrar la URL de inicio de sesión base del proveedor en el portal de Azure:

    1. En la página Descripción general de EJBCA del portal de Azure, haga clic en Puntos de conexión .
      imágenes/descargar/archivos adjuntos/143732842/Endpoints.png

    2. Los puntos finales disponibles se enumeran a la derecha: el primero que se indica a continuación se utiliza para redirigir a los usuarios para su autorización, el segundo para intercambiar el código recibido por token y el último contiene las configuraciones de OpenID.
      En EJBCA, configure lo siguiente como URL de inicio de sesión base: https://login.microsoftonline.com/

    Establecer el inquilino

    El valor de Inquilino se muestra en la parte superior de la página Descripción general de EJBCA del portal de Azure, en Aspectos esenciales .
    imágenes/descargar/archivos adjuntos/143732842/Essentials.png

    Estableciendo el alcance

    Azure devuelve un token de acceso JWT que no se puede validar porque agrega una notificación nonce en el encabezado del token después de firmarlo con la clave pública. Para obtener más información, consulte este artículo externo sobre cómo lograr la compatibilidad con OIDC de Azure AD .

    Para resolver el problema, especifique un ámbito personalizado en Azure Portal:

    1. En el panel de navegación de la izquierda, seleccione Exponer una API y luego haga clic en Agregar un ámbito .
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-02-08_a_10.10.40.png

    2. En Agregar un ámbito, especifique lo siguiente y haga clic en Agregar ámbito.
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-02-08_a_10.15.43.png

    3. Esto muestra que el alcance es api://fe9474f8-1bda-4e46-9dfa-c5c018418925/EJBCA

    4. Aquí también se encuentra el valor de la notificación "Audiencia" . El nombre de la API expuesta (aquí, api://fe9474f8-1bda-4e46-9dfa-c5c018418925 ) será el valor establecido en la notificación "aud" enviada por Azure AD a EJBCA. Este valor debe establecerse en el campo "Audiencia" de la configuración del proveedor de Azure OAuth.

    Configuración del cliente

    El valor del Cliente es el ID de la aplicación (cliente) que se muestra en la parte superior de la página Descripción general de EJBCA del portal de Azure en Aspectos esenciales .
    imágenes/descargar/archivos adjuntos/143732842/Essentials.png

    Configuración del secreto del cliente

    Las solicitudes de token requieren un parámetro client_secret o estar firmadas con una clave privada autorizada (descrita más adelante en "Configuración del enlace de claves "). Para generar un secreto de cliente en Azure Portal:

    1. Vaya a Certificados y secretos en Azure y haga clic en Nuevo secreto de cliente .

    2. Agregue una descripción para el secreto del cliente y haga clic en Agregar.

    3. Seleccione <Usar secreto de cliente> en Vinculación de teclas

    4. Introduzca el valor como Secreto de cliente en EJBCA.
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-02-04_a_09.24.02.png

    Configuración de la asignación de teclas

    Una opción de autenticación más segura para Azure AD es usar un par de claves y certificado. Para configurar su registro de Azure para usar un par de claves para la autenticación:

    1. Cree una vinculación de clave interna AuthenticationKeyBinding como se describe en Descripción general de autenticadores remotos .

    2. Seleccione el enlace que creó en la pantalla Enlaces de teclas internos y haga clic en el enlace en el campo Certificado vinculado para ver el certificado asociado.

      imágenes/descargar/archivos adjuntos/143732842/view_key_binding.png
    3. Seleccione Descargar archivo PEM y guarde el certificado como un archivo PEM en el sistema de archivos local.

      imágenes/descargar/miniaturas/143732842/descargar_pem.png
    4. Vaya a Certificados y secretos en Azure y haga clic en Cargar certificado . Seleccione el archivo PEM descargado anteriormente y haga clic en Agregar.
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_del_2021-09-16_12-19-31.png

    5. Seleccione la combinación de teclas creada anteriormente en Combinación de teclas en EJBCA.


    Añadiendo las claves públicas

    Para agregar las claves públicas:

    1. En la página Descripción general de EJBCA del portal de Azure, haga clic en Puntos de conexión y abra la configuración de OpenID .

    2. Abra la URL indicada por jwk_uris .
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-02-04_a_09.07.39.png

    3. La vista ampliada muestra el valor del niño y los certificados.
      imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-02-04_a_09.08.21.png

    4. Puede especificar las claves públicas como un archivo, un valor o una URL.

      • Como archivo :

        • Copie el valor del certificado, cópielo en un archivo de texto y agréguele el prefijo "-----BEGIN CERTIFICATE-----", el sufijo "-----END CERTIFICATE-----" y, luego, guarde el archivo.
          imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-03-22_a_13.58.36.png

        • Ingrese el identificador de clave (kid) y cargue la clave pública.

      • Como valor de texto:

        • Seleccione Valor de texto de entrada como método de entrada de clave pública .

        • Pegue el valor del certificado en el área de texto, ingrese el identificador de clave (kid) y cargue la clave pública.

      • Como URL :

        • Seleccione Proporcionar URL de configuración de clave como método de entrada de clave pública .

        • Pegue la clave_uri y haga clic en Cargar clave pública.

    Agregar usuario en EJBCA

    Para agregar este usuario a la lista de miembros del rol EJBCA.

    1. En EJBCA, en Funciones del sistema, haga clic en Rol .

    2. En el rol de administrador , haga clic en Miembros y especifique una de las siguientes opciones:

      • Reclamo de identificación de objeto ("oid") : como valor de coincidencia, utilice el ID de objeto de los usuarios de Active Directory, en este ejemplo: 75eca0fa-903b-4a6c-b2de-4210b3ed6d63 .
        imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-04-15_a_11.58.59.png

      • Reclamo del emisor ("iss") : como valor de coincidencia, utilice https://login.microsoftonline.com/782cda56-d345-4861-b790-60a26a7a5130/v2.0 , donde 782cda56-d345-4861-b790-60a26a7a5130 es el ID del directorio (inquilino).
        imágenes/descargar/archivos adjuntos/143732842/Captura de pantalla_2021-04-15_a_11.27.12.png

      • Seleccione proveedor OAuth .

      • Opcionalmente, actualice las reglas de acceso para el usuario.