Note:

Implantación de conexión única en Oracle Fusion Cloud Transportation Management 6.4.3

Introducción

Puede integrar aplicaciones con dominios de Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) para activar la autenticación y la conexión única (SSO) mediante varios métodos. Aunque muchas aplicaciones soportan protocolos estándar como SAML y OAuth, Oracle Fusion Cloud Transportation Management (Oracle Transportation Management) soporta la autenticación basada en cabecera HTTP para SSO.

El gateway de aplicación actúa como proxy de autenticación entre OCI IAM y Oracle Transportation Management. Está disponible en dos opciones de despliegue: una imagen de Docker y una imagen de dispositivo virtual. Este tutorial se centra en el despliegue y el uso de la versión basada en Docker.

Arquitectura de la solución.

La implementación de SSO ayuda a aprovechar las capacidades de seguridad de OCI IAM, incluida la MFA, la seguridad adaptativa, las políticas de conexión, etc. Esto ayuda a aplicar una capa adicional de control de acceso para proteger aún más la instancia de Oracle Transportation Management.

Objetivos

Requisitos

Tarea 1: Configuración de una aplicación empresarial

Se necesitan los siguientes detalles sobre Oracle Transportation Management antes de continuar:

Realice los pasos:

  1. Abra el menú en la consola de Oracle Cloud y haga clic en Identidad y seguridad. En Identidad, haga clic en Dominios. Seleccione el compartimento para buscar el dominio.

    Dominios.

  2. Haga clic en el nombre del dominio y, en Aplicaciones integradas, haga clic en Agregar aplicación.

    Agregar aplicación.

  3. Seleccione Aplicación empresarial y haga clic en Iniciar flujo de trabajo.

    Iniciar flujo de trabajo.

  4. Introduzca un nombre para la aplicación. La URL de aplicación es el host y puerto del servidor de gateway de aplicación. También puede ser una URL que tenga un redireccionamiento al gateway de la aplicación. Active la casilla de verificación Mostrar en mis aplicaciones. Si desea restringir esta aplicación solo a usuarios autorizados, active Se debe otorgar esta aplicación al usuario.

    Detalles de nombre y URL.

  5. Haga clic en Next (Siguiente) y, a continuación, en Next (Siguiente) para omitir las pantallas de configuración de OAuth.

  6. Haga clic en Agregar recurso para agregar los recursos de GTM. Proporcione un nombre y una URL de recurso. En nuestro caso será /.* ya que estamos protegiendo todos los recursos. Realice una comprobación en Usar expresiones de expresión regular.

    Adición de recursos.

  7. Haga clic en el botón Agregar recurso gestionado y seleccione el recurso del paso 6 anterior en el menú Recurso. Seleccione el método de autenticación como token de acceso o formulario. En Cabeceras, introduzca appuid como Nombre y User Name como Valor.

    Agregando recursos gestionados.

    Nota: En nuestro ejemplo, hemos seleccionado Default como el único recurso y Form or Access token como método de autenticación para proteger todos los recursos. Esto garantiza que solo se permita el acceso a los usuarios autenticados. Oracle Transportation Management también necesita una cabecera appuid con el nombre de usuario como valor. Hemos identificado esto como parte de nuestra tarea inicial de recopilar detalles.

  8. Haga clic en Finalizar y, a continuación, active la aplicación haciendo clic en la opción Activar.

  9. Asigne algunos usuarios/grupos a la aplicación en Recursos. Puede seleccionar usuarios locales y federados, pero asegúrese de que estos usuarios existen en la base de datos de Oracle Transportation Management.

Tarea 2: Registro del gateway de aplicación en OCI IAM

El gateway de aplicación se encuentra frente a la aplicación, intercepta solicitudes, autentica usuarios y, a continuación, permite el acceso a los recursos.

Recopilar detalles del servidor:

Se requieren los siguientes detalles sobre el servidor app-gateway antes de continuar:

Realice los pasos:

  1. En Identidad, seleccione Dominios y, a continuación, haga clic en el dominio que utilizó antes.

  2. En Seguridad, seleccione Gateways de aplicación y haga clic en Crear gateway de aplicación. Introduzca un nombre y haga clic en Agregar gateway de aplicación.

    Creando puerta de enlace de aplicación.

  3. Haga clic en Add Host (Agregar host). Proporcione un nombre en el identificador de host y agregue los detalles del servidor de gateway de aplicación en Host y Puerto. Si aún no tiene los detalles, agregue valores de marcador de posición y vuelva a visitar este paso después de finalizar la tarea 4.

    Agregando host.

  4. Haga clic en la casilla de control SSL enabled (SSL activado), introduzca lo siguiente en Additional properties y haga clic en Add host (Agregar host).

    ssl_certificate /usr/local/nginx/conf/cert.pem;
    ssl_certificate_key /usr/local/nginx/conf/key.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    

    Nota: No estamos finalizando SSL en el equilibrador de cargas. Por lo tanto, debemos seleccionar la casilla de verificación SSL para permitir el acceso al servidor de gateway de aplicación a través de SSL. Los nombres de archivo y la ruta de acceso del certificado y la clave se basan en la ruta de acceso real del contenedor.

  5. Haga clic en Siguiente para agregar los detalles de la aplicación empresarial y el servidor de origen que ha creado en la tarea 1.

  6. Haga clic en Agregar aplicación y seleccione la aplicación empresarial en el menú Aplicación. En Seleccionar un host, seleccione el host del paso 3. En Prefijo de recurso, introduzca / para proxy de la aplicación empresarial. Por último, en Servidor de origen, introduzca el nombre de host/IP del servidor de aplicaciones de Oracle Transportation Management. Haga clic en Cerrar.

    Agregando app.

    Nota: Al utilizar / como prefijo de recurso, cada solicitud pasada de / se reenvía a la aplicación empresarial.

  7. Haga clic en Activar gateway de aplicación. Anote los valores de ID de cliente y Secreto de cliente, ya que será necesario más adelante.

    Activando gateway.

Tarea 3: Descargue los archivos necesarios para configurar el contenedor y generar la cartera

  1. En la consola de OCI, vaya a Identidad, Dominios, su dominio, Configuración y haga clic en Descargas.

  2. Descargue la imagen de Docker del paquete de Docker unificado de gateway de aplicación para Identity Cloud Service.

  3. A continuación, descargue la herramienta de cartera AppGateway que se utilizará para generar una cartera.

  4. Descomprima los archivos zip descargados. La imagen del docker tendrá el formato .tar.gz.

    Descargas.

  5. Tendrá que copiar el archivo de imagen y la carpeta de cartera de la máquina local en el servidor de gateway de aplicación. A continuación se muestra un ejemplo que muestra cómo utilizar el comando scp desde el shell bash local para enviar el contenido de la carpeta de herramientas de cartera al directorio de archivos del servidor.

    scp -i /Users/mac/ssh_private.key -r /Users/mac/idcs-appgateway-wallet-tool-23.2.92-2301160723 opc@xxx.xxx.xxx.xxx:files
    

Tarea 4: Creación de una instancia informática de OCI y actualización de las listas de seguridad de red

Nota: Si está configurando un servidor/máquina virtual local en su propio entorno o en otro proveedor de nube, puede utilizar los siguientes pasos como referencia para las configuraciones.

  1. En la consola de OCI, vaya a Recursos informáticos y haga clic en Instancias. Seleccione el compartimento derecho.

  2. Haga clic en Crear instancia. Introduzca el nombre y seleccione un dominios de disponibilidad.

  3. Seleccione OS image como Oracle Linux 8 y seleccione una unidad adecuada. Estamos utilizando la memoria E5 Flex/1 OCPU/8GB.

  4. Seleccione la VCN y la subred pública donde desea colocarla.

  5. Genere un Par de Claves SSH para conectarse a la Instancia mediante una Conexión de Shell Seguro (SSH), o Cargue una Clave Pública con la que ya cuente.

  6. Haga clic en Crear y anote la dirección IPv4.

  7. Abra la subred y haga clic en la lista de seguridad asociada a ella.

  8. Haga clic en Agregar reglas de entrada y agregue lo siguiente para permitir la entrada de HTTPS a través de TCP y SSH.

    Source Type: CIDR
    Source CIDR: 0.0.0.0/0
    IP Protocol: TCP
    Source Port Range: All
    Destination Port Range: 443
    
    Source Type: CIDR
    Source CIDR: 0.0.0.0/0
    IP Protocol: SSH
    Source Port Range: All
    Destination Port Range: 22
    

Tarea 5: Configuración del servidor del gateway de aplicación mediante la imagen de Docker

  1. Utilice SSH en la instancia informática creada en la tarea 4 con su clave privada.

    ssh -i /Users/mac/ssh_private.key opc@xxx.xxx.xxx.xxx
    
  2. Ejecute el siguiente comando para instalar Docker y otras bibliotecas e iniciar el servicio. A continuación, valide que el servicio docker se esté ejecutando.

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    sudo dnf install libnsl*
    sudo systemctl enable docker
    sudo systemctl start docker
    
    sudo systemctl status docker
    
  3. A continuación, agregue el usuario conectado (opc en este caso) a la lista de sudoers.

    sudo usermod -a -G docker $USER
    
  4. Abra el puerto de firewall para activar la comunicación. Estamos utilizando el puerto 443 aquí.

    sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
    sudo systemctl stop firewalld
    sudo systemctl start firewalld
    
  5. Cree un directorio y comience a consolidar los archivos necesarios para crear el contenedor. Estamos utilizando /home/opc/files para este tutorial.

    mkdir files
    cd files
    
  6. Generar un certificado autofirmado mediante openSSL.

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server-key.pem -out server-cert.pem
    

    Nota: No se recomienda el uso de certificados autofirmados en un entorno de producción. En su lugar, utilice certificados emitidos por su CA.

  7. Cree el archivo de entorno appgateway que contiene la información del dominio.

    vi appgateway-env
    
    CG_APP_TENANT=idcs-XXX
    IDCS_INSTANCE_URL=https://idcs-XXX.identity.oraclecloud.com:443
    NGINX_DNS_RESOLVER=<resolver IP>
    

    Nota: Sustituya XXX por los detalles del dominio de OCI IAM. Para la IP de solucionador de DNS, consulte los detalles del servidor de nombres que se encuentran en el archivo /etc/resolv.conf.

    Detalles de entorno.

  8. Genere el archivo de cartera cwallet.sso con la herramienta. Para ello, ejecute el siguiente comando. Sustituya Client ID por el ID de cliente de gateway de aplicación indicado anteriormente. Haga clic en Volver e introduzca el secreto de cliente cuando se le solicite.

    env LD_LIBRARY_PATH=./lib ./cgwallettool --create -i <Client ID>
    
  9. Ahora que todos los archivos están listos, actualice los permisos para cada archivo. Esto garantiza que el propietario pueda leer, escribir y ejecutar; mientras que los grupos y otros solo pueden leer y ejecutar.

    chmod -R 755 <filename>
    
  10. Cargue la imagen en el repositorio local y valídela.

    sudo docker load -i appgateway-aarch64-25.1.03-2501230623.tar.gz
    docker images
    
  11. Cree el contenedor según los archivos y valídelo. Después de ejecutar el siguiente comando, el estado del contenedor debe ser UP.

    sudo docker run -p 443:443 -d --name appgateway --env-file /home/opc/files/appgateway-env --env HOST_MACHINE=`hostname -f` --volume /home/opc/files/cwallet.sso:/usr/local/nginx/conf/cwallet.sso --volume /home/opc/files/server-key.pem:/usr/local/nginx/conf/key.pem --volume /home/opc/files/server-cert.pem:/usr/local/nginx/conf/cert.pem local.local/idcs-appgateway-docker_linux_arm64_v8:25.1.03-2501230623
    
    docker ps
    

Tarea 6: Actualizar la configuración de SSO en Oracle Transportation Management

Nota: Este tutorial es específico de Oracle Transportation Management 6.4.3. Para obtener más información sobre la definición de los distintos parámetros, consulte la guía de seguridad de Oracle Transportation Management aquí: Guía de seguridad. Para otras versiones, consulte Biblioteca web de documentación local de Transport and Global Trade Management.

  1. Para el acceso SSO a Oracle Transportation Management, el código de llamada debe transferirse al siguiente parámetro como parte de la solicitud HTTP (donde el nombre de usuario es el GID del usuario en la base de datos). La cabecera appuid se transferirá a la cabecera HTTP, el valor de esta cabecera debe coincidir con el nombre de usuario de la base de datos.

    appuid=username
    
  2. Conéctese a la consola de administración de Oracle Transportation Management y vaya al mánager de usuarios. Cree/actualice el usuario para asegurarse de que haya un nombre de usuario válido que coincida con el usuario de OCI.

    Mánager del usuario.

  3. La configuración de SSO se debe actualizar en el archivo glog.properties. Inicie sesión en el servidor y navegue hasta /app/appgtmdevl/Oracle/gtm643/glog/config. Actualice los siguientes parámetros.

    Abriendo archivo de propiedades.

    glog.security.sso=true
    glog.security.sso.app0idName=appuid
    glog.security.sso.appUidLoCation=3
    glog.security.sso.logoutButton=true
    glog.security.sso.logoutUrl-https://idcs-XXX.identity.oraclecloud.com/sso/vl/user/logout
    

    Editando propiedades.

  4. A continuación, se debe actualizar la configuración de OHS. Consulte los siguientes ejemplos de la ruta de acceso para localizar el archivo httpd.conf.

    cd /app/OTMappserver/Oracle/Middleware/Oracle_Home/user_projects/domains/otmweb/config/fmwconfig/components/OHS/OTMappserver
    
    cd /app/OTMappserver/Oracle/Middleware/Oracle_Home/user_projects/domains/otmweb/config/fmwconfig/components/OHS/instances/OTMappserver
    
  5. Realice una copia de seguridad del archivo y, a continuación, defina los siguientes parámetros en la configuración.

    SimulateHttps On
    AddCertHeader HTTPS
    

    Por ejemplo:

    Listen 1234
    NameVirtualHost *:1234
    <VirtualHost *:1234>
    ServerName  XXX.XXX
    DocumentRoot  /app/XXX/Oracle/gtm643/web/htdocs
    DirectoryIndex  index.htm
    <IfModule ossl_module>
    SSLEngine off
    </IfModule>
    <Directory "/app/XXX/Oracle/gtm643/web/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    </Directory>
    Header set Cache-Control maxage=21600
    ExpiresActive On
    ExpiresDefault "access plus 6 hours"
    SimulateHttps On
    AddCertHeader HTTPS
    </VirtualHost>
    
  6. Reinicie la aplicación y el nivel web para garantizar que los cambios surtan efecto.

  7. Asegúrese de que se permite la entrada/salida de red del servidor de gateway de aplicación a su instancia de Oracle Transportation Management. Use la tarea 4.8 como referencia.

Tarea 7: Iniciar sesión a través de SSO y validar

  1. Acceda a la URL de servlet desde un explorador. URL de ejemplo: https://appgatewayserver.domain:443/GC3/glog.webserver.util.FrameGC3Servlet.

  2. Tenga en cuenta que debe haber una redirección a la conexión de OCI IAM. Introduzca las credenciales del usuario y el inicio de sesión.

  3. Tras la autenticación correcta, se conectará a Oracle Transportation Management.

    Consola de Oracle Transportation Management.

Acuses de recibo

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.