Nota

Implementare Single Sign-On in Oracle Fusion Cloud Transportation Management 6.4.3

Introduzione

Puoi integrare le applicazioni con i domini Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) per abilitare l'autenticazione e Single Sign-On (SSO) tramite vari metodi. Sebbene molte applicazioni supportino protocolli standard come SAML e OAuth, Oracle Fusion Cloud Transportation Management (Oracle Transportation Management) supporta l'autenticazione basata su intestazione HTTP per SSO.

Il gateway applicazioni funge da proxy di autenticazione tra OCI IAM e Oracle Transportation Management. È disponibile in due opzioni di distribuzione: un'immagine Docker e un'immagine dell'appliance virtuale. Questa esercitazione è incentrata sulla distribuzione e l'utilizzo della versione basata su Docker.

Architettura della soluzione.

L'implementazione di SSO consente di sfruttare le funzionalità di sicurezza di OCI IAM, tra cui MFA, sicurezza adattiva, criteri di accesso e così via. Ciò consente di applicare un livello aggiuntivo di controllo dell'accesso per proteggere ulteriormente l'istanza di Oracle Transportation Management.

Obiettivi

Prerequisiti

Task 1: Impostazione di un'applicazione enterprise

Prima di procedere, sono necessari i seguenti dettagli su Oracle Transportation Management:

Seguire i passi indicati:

  1. Aprire il menu di navigazione della console di Oracle Cloud e fare clic su Identità e sicurezza. In Identità fare clic su Domini. Scegliere il compartimento in cui trovare il dominio.

    Domini.

  2. Fare clic sul nome del dominio e, in Applicazioni integrate, fare clic su Aggiungi applicazione.

    Aggiungi applicazione.

  3. Selezionare Applicazione enterprise e fare clic su Avvia workflow.

    Avvia workflow.

  4. Immettere un nome per l'applicazione. L'URL applicazione è l'host e la porta del server gateway applicazioni. Questo può anche essere un URL che ha un reindirizzamento al gateway applicazioni. Selezionare Visualizza in applicazioni personali. Se si desidera limitare l'applicazione solo agli utenti autorizzati, selezionare È necessario concedere l'applicazione all'utente.

    Dettagli nome e URL.

  5. Fare clic su Avanti, quindi di nuovo su Avanti per saltare le schermate di configurazione OAuth.

  6. Fare clic su Aggiungi risorsa per aggiungere le risorse GTM. Fornire un nome e un URL risorsa. Nel nostro caso sarà /.* in quanto stiamo proteggendo tutte le risorse. Selezionare Usa espressioni regex.

    Aggiunta di risorse.

  7. Fare clic sul pulsante Aggiungi risorsa gestita e selezionare la risorsa dal passo 6 precedente nel menu Risorsa. Selezionare il metodo di autenticazione come token modulo o accesso. In Intestazioni immettere appuid come Nome e User Name come Valore.

    Aggiunta di risorse gestite.

    Nota: nel nostro esempio, abbiamo selezionato Default come unica risorsa e Form or Access token come metodo di autenticazione per proteggere tutte le risorse. Ciò garantisce che l'accesso sia consentito solo agli utenti autenticati. Oracle Transportation Management richiede anche un'intestazione appuid con il nome utente come valore. Abbiamo identificato questo come parte del nostro compito iniziale di raccolta dei dettagli.

  8. Fare clic su Fine, quindi attivare l'applicazione facendo clic sull'opzione Attiva.

  9. Assegnare alcuni utenti o gruppi all'applicazione in Risorse. È possibile scegliere sia utenti locali che federati, ma assicurarsi che questi utenti esistano nel database di Oracle Transportation Management.

Task 2: Registra gateway applicazioni in IAM OCI

Gateway applicazioni si trova di fronte all'applicazione, intercetta le richieste, autentica gli utenti e quindi consente l'accesso alle risorse.

Raccogli dettagli server:

Prima di continuare, sono necessari i seguenti dettagli sul server app-gateway:

Seguire i passi indicati:

  1. In Identità selezionare Domini, quindi fare clic sul dominio utilizzato in precedenza.

  2. In Sicurezza selezionare Gateway applicazione e fare clic su Crea gateway applicazione. Immettere un nome e fare clic su Aggiungi gateway applicazioni.

    Creazione del gateway applicazioni.

  3. Fare clic su Aggiungi host. Fornire un nome in Identificativo host e aggiungere i dettagli del server gateway applicazioni in Host e Porta. Se non si dispone ancora dei dettagli, aggiungere i valori segnaposto e rivedere questo passo dopo aver completato il task 4.

    Aggiunta dell'host.

  4. Fare clic sulla casella di controllo SSL abilitato, immettere quanto riportato di seguito in Proprietà aggiuntive e fare clic su Aggiungi 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: non viene interrotto il protocollo SSL nel load balancer. Pertanto, è necessario selezionare la casella di controllo SSL per abilitare l'accesso al server gateway applicazioni tramite SSL. I nomi dei file e il percorso del certificato e della chiave si basano sul percorso effettivo nel contenitore.

  5. Fare clic su Avanti per aggiungere i dettagli dell'applicazione enterprise e del server di origine creati nel task 1.

  6. Fare clic su Aggiungi applicazione e selezionare l'applicazione enterprise dal menu Applicazione. In Selezionare un host scegliere l'host dal Passo 3. In Prefisso risorsa immettere / per eseguire il proxy dell'applicazione enterprise. Infine, in Server di origine immettere il nome host/IP dell'Application Server Oracle Transportation Management. Fare clic su Chiudi.

    Aggiunta dell'applicazione.

    Nota: quando si utilizza / come prefisso di risorsa, ogni richiesta successiva a / viene inoltrata all'applicazione enterprise.

  7. Fare clic su Attiva gateway applicazioni. Prendere nota dell'ID client e del segreto client, perché questo sarà richiesto in seguito.

    Attivazione del gateway applicazioni.

Task 3: Scaricare i file necessari per impostare il contenitore e generare il wallet

  1. Nella console OCI, andare a Identità, Domini, al dominio, a Impostazioni e fare clic su Download.

  2. Scarica l'immagine Docker dal pacchetto Docker unificato gateway applicazioni per Identity Cloud Service.

  3. Successivamente, scaricare lo strumento Wallet AppGateway che verrà utilizzato per generare un wallet.

  4. Decomprimere i file zip scaricati. L'immagine docker sarà in formato .tar.gz.

    Download.

  5. Sarà necessario copiare il file immagine e la cartella del wallet dal computer locale al server gateway applicazioni. Di seguito è riportato un esempio che mostra come utilizzare il comando scp dalla shell bash locale per inviare il contenuto della cartella degli strumenti del wallet alla directory dei file nel server.

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

Task 4: Creare un'istanza di computazione OCI e aggiornare le liste di sicurezza di rete

Nota: se si sta impostando un server locale o un computer virtuale nel proprio ambiente o in un altro provider cloud, è possibile utilizzare i passi riportati di seguito come riferimento per le configurazioni.

  1. Nella console OCI, andare a Computazione e fare clic su Istanze. Selezionare il compartimento corretto.

  2. Fare clic su Crea istanza. Immettere Nome e selezionare un dominio disponibilità.

  3. Selezionare l'immagine del sistema operativo come Oracle Linux 8 e selezionare una forma appropriata. Stiamo usando la memoria E5 Flex/1 OCPU/8GB.

  4. Selezionare la VCN e la subnet pubblica in cui si desidera collocarla.

  5. Generare una coppia di chiavi SSH per connettersi all'istanza utilizzando una connessione Secure Shell (SSH) o caricare una chiave pubblica già inuso.

  6. Fare clic su Crea e prendere nota dell'indirizzo IPv4.

  7. Aprire la subnet e fare clic sulla lista di sicurezza associata.

  8. Fare clic su Aggiungi regole di entrata e aggiungere quanto riportato di seguito per consentire l'ingresso di HTTPS su TCP e 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
    

Task 5: configurare il server Gateway applicazioni utilizzando l'immagine Docker

  1. SSH nell'istanza di computazione creata nel task 4 utilizzando la chiave privata.

    ssh -i /Users/mac/ssh_private.key opc@xxx.xxx.xxx.xxx
    
  2. Eseguire il comando seguente per installare Docker e altre librerie e avviare il servizio. Verificare quindi che il servizio docker sia in esecuzione.

    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. Successivamente, aggiungere l'utente collegato (opc in questo caso) all'elenco sudoers.

    sudo usermod -a -G docker $USER
    
  4. Aprire la porta firewall per abilitare la comunicazione. Stiamo usando la porta 443 qui.

    sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
    sudo systemctl stop firewalld
    sudo systemctl start firewalld
    
  5. Creare una directory e iniziare a consolidare i file necessari per creare il contenitore. Stiamo usando /home/opc/files per questo tutorial.

    mkdir files
    cd files
    
  6. Generare un certificato autofirmato utilizzando openSSL.

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

    Nota: l'uso dei certificati autofirmati non è consigliato in un ambiente di produzione. Utilizzare invece i certificati emessi dalla propria CA.

  7. Creare il file di ambiente appgateway contenente le informazioni sul 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: sostituire XXX con i dettagli del dominio IAM OCI. Per l'IP del resolver DNS, fare riferimento ai dettagli del nameserver presenti nel file /etc/resolv.conf.

    Dettagli ambiente.

  8. Generare il file wallet cwallet.sso utilizzando lo strumento. A tale scopo, eseguire il comando seguente. Sostituire Client ID con l'ID client del gateway applicazioni indicato in precedenza. Fare clic su Restituisci e immettere il segreto client quando richiesto.

    env LD_LIBRARY_PATH=./lib ./cgwallettool --create -i <Client ID>
    
  9. Ora che tutti i file sono pronti, aggiornare le autorizzazioni per ogni file. Ciò garantisce che il proprietario possa leggere, scrivere ed eseguire, mentre i gruppi e gli altri possono solo leggere ed eseguire.

    chmod -R 755 <filename>
    
  10. Caricare l'immagine nel repository locale e convalidarla.

    sudo docker load -i appgateway-aarch64-25.1.03-2501230623.tar.gz
    docker images
    
  11. Creare il contenitore in base ai file e convalidare. Dopo aver eseguito il comando seguente, lo stato del contenitore deve essere 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
    

Task 6: Aggiorna configurazione SSO in Oracle Transportation Management

Nota: questa esercitazione è specifica di Oracle Transportation Management 6.4.3. Per ulteriori dettagli sull'impostazione dei vari parametri, consulta la guida per la sicurezza di Oracle Transportation Management qui: Security Guide. Per altre versioni, vedere Libreria Web di documentazione on-premise su Trasporti e Global Trade Management.

  1. Per l'accesso SSO a Oracle Transportation Management, il codice di richiamo deve passare il parametro seguente nell'ambito della richiesta HTTP (dove il nome utente è il GID dell'utente nel database). L'intestazione appuid verrà passata nell'intestazione HTTP. Il valore di questa intestazione deve corrispondere al nome utente nel database.

    appuid=username
    
  2. Eseguire il login alla console di amministrazione di Oracle Transportation Management e andare a User Manager. Creare/aggiornare l'utente per assicurarsi che esista un nome utente valido corrispondente all'utente OCI.

    Responsabile utenti.

  3. La configurazione SSO deve essere aggiornata nel file glog.properties. Eseguire il login al server e passare a /app/appgtmdevl/Oracle/gtm643/glog/config. Aggiornare i parametri seguenti.

    Apertura del file delle proprietà.

    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
    

    Modifica delle proprietà

  4. Successivamente, è necessario aggiornare la configurazione OHS. Vedere gli esempi seguenti del percorso per individuare il file 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. Eseguire un backup del file, quindi impostare i parametri riportati di seguito nella configurazione.

    SimulateHttps On
    AddCertHeader HTTPS
    

    Esempio:

    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. Riavviare l'applicazione e il livello Web per garantire che le modifiche diventino effettive.

  7. Assicurarsi che l'ingresso/uscita di rete dal server gateway applicazioni all'istanza di Oracle Transportation Management sia consentita. Utilizzare il task 4.8 come riferimento.

Task 7: Login tramite SSO e convalida

  1. Accedere all'URL del servlet da un browser. URL di esempio: https://appgatewayserver.domain:443/GC3/glog.webserver.util.FrameGC3Servlet.

  2. Si noti che deve essere presente un reindirizzamento al login IAM OCI. Immettere le credenziali dell'utente e accedere.

  3. Al termine dell'autenticazione verrà eseguito il login a Oracle Transportation Management.

    Console di Oracle Transportation Management.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione del prodotto, visitare Oracle Help Center.