Hinweis:

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

Einführung

Sie können Anwendungen mit Oracle Cloud Infrastructure Identity and Access Management-(OCI IAM-)Domains integrieren, um die Authentifizierung und Single Sign-On (SSO) mit verschiedenen Methoden zu aktivieren. Während viele Anwendungen Standardprotokolle wie SAML und OAuth unterstützen, unterstützt Oracle Fusion Cloud Transportation Management (Oracle Transportation Management) die HTTP-Header-basierte Authentifizierung für SSO.

Das App-Gateway fungiert als Authentifizierungsproxy zwischen OCI IAM und Oracle Transportation Management. Es ist in zwei Deployment-Optionen verfügbar: einem Docker-Image und einem virtuellen Appliance-Image. Dieses Tutorial konzentriert sich auf das Deployment und die Verwendung der Docker-basierten Version.

Lösungsarchitektur.

Durch die Implementierung von SSO können Sie die Sicherheitsfunktionen von OCI IAM nutzen, einschließlich MFA, adaptiver Sicherheit, Anmelde-Policys usw. Dadurch wird eine zusätzliche Ebene der Zugriffskontrolle durchgesetzt, um Ihre Oracle Transportation Management-Instanz weiter zu schützen.

Ziele

Voraussetzungen

Aufgabe 1: Unternehmensanwendung einrichten

Die folgenden Details sind für Oracle Transportation Management erforderlich, bevor Sie fortfahren:

Führen Sie die Schritte aus:

  1. Öffnen Sie das Navigationsmenü der Oracle Cloud-Konsole, und klicken Sie auf Identität & Sicherheit. Klicken Sie unter Identität auf Domänen. Wählen Sie das Compartment aus, um die Domain zu suchen.

    Domains.

  2. Klicken Sie auf den Namen Ihrer Domain und unter Integrierte Anwendungen auf Anwendung hinzufügen.

    Anwendung hinzufügen.

  3. Wählen Sie Unternehmensanwendung aus, und klicken Sie auf Workflow starten.

    Workflow starten.

  4. Geben Sie einen Namen für die Anwendung ein. Die Anwendungs-URL ist der Host und Port des App-Gatewayservers. Dies kann auch eine URL sein, die eine Umleitung zum App-Gateway aufweist. Prüfen Sie In "Meine Apps" anzeigen. Wenn Sie diese App nur auf autorisierte Benutzer beschränken möchten, überprüfen Sie der Benutzer muss diese App erteilt werden.

    Name und URL-Details.

  5. Klicken Sie auf Weiter, Weiter, um die Konfigurationsbildschirme OAuth zu überspringen.

  6. Klicken Sie auf Ressource hinzufügen, um die GTM-Ressourcen hinzuzufügen. Geben Sie einen Namen und eine Ressourcen-URL an. In unserem Fall lautet der Begriff /.*, wobei alle Ressourcen geschützt werden. Prüfen Sie Reguläre Ausdrücke verwenden.

    Ressourcen hinzufügen.

  7. Klicken Sie auf die Schaltfläche Verwaltete Ressource hinzufügen, und wählen Sie die Ressource aus dem vorherigen Schritt 6 im Menü Ressource aus. Wählen Sie die Authentifizierungsmethode als Formular oder Zugriffstoken aus. Geben Sie unter Kopfzeilen appuid als Name und User Name als Wert ein.

    Verwaltete Ressourcen werden hinzugefügt.

    Hinweis: In unserem Beispiel haben wir Default als einzige Ressource und Form or Access token als Authentifizierungsmethode zum Schutz aller Ressourcen ausgewählt. Dadurch wird sichergestellt, dass nur authentifizierte Benutzer Zugriff haben. Oracle Transportation Management benötigt außerdem den Header appuid mit dem Benutzernamen als Wert. Wir haben dies als Teil unserer ersten Aufgabe identifiziert, Details zu sammeln.

  8. Klicken Sie auf Fertigstellen, und aktivieren Sie die Anwendung, indem Sie auf die Option Aktivieren klicken.

  9. Weisen Sie der Anwendung unter Ressourcen einige Benutzer/Gruppen zu. Sie können sowohl lokale als auch föderierte Benutzer auswählen. Stellen Sie jedoch sicher, dass diese Benutzer in der Oracle Transportation Management-Datenbank vorhanden sind.

Aufgabe 2: App-Gateway in OCI IAM registrieren

Das App-Gateway befindet sich vor Ihrer Anwendung, fängt Anforderungen ab, authentifiziert Benutzer und ermöglicht dann den Zugriff auf die Ressourcen.

Serverdetails erfassen:

Die folgenden Details sind für den App-Gateway-Server erforderlich, bevor Sie fortfahren:

Führen Sie die Schritte aus:

  1. Wählen Sie unter Identität die Option Domains aus, und klicken Sie auf die zuvor verwendete Domain.

  2. Wählen Sie unter Sicherheit App-Gateways aus, und klicken Sie auf App-Gateway erstellen. Geben Sie einen Namen ein, und klicken Sie auf App-Gateway hinzufügen.

    App-Gateway wird erstellt.

  3. Klicken Sie auf Host hinzufügen. Geben Sie einen Namen unter Host-ID an, und fügen Sie die App-Gateway-Serverdetails unter Host und Port hinzu. Wenn Sie noch nicht über die Details verfügen, fügen Sie Platzhalterwerte hinzu und wiederholen Sie diesen Schritt, nachdem Sie Aufgabe 4 abgeschlossen haben.

    Host wird hinzugefügt.

  4. Klicken Sie auf das Kontrollkästchen SSL aktiviert, geben Sie unter Zusätzliche Eigenschaften die folgenden Eigenschaften ein, und klicken Sie auf Host hinzufügen.

    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;
    

    Hinweis: SSL am Load Balancer wird nicht beendet. Daher müssen Sie das Kontrollkästchen "SSL" aktivieren, um den Zugriff auf den App-Gateway-Server über SSL zu aktivieren. Die Dateinamen und der Pfad für das Zertifikat und den Schlüssel basieren auf dem tatsächlichen Pfad im Container.

  5. Klicken Sie auf Weiter, um die Unternehmensanwendung und die Ursprungsserverdetails hinzuzufügen, die Sie in Aufgabe 1 erstellt haben.

  6. Klicken Sie auf Anwendung hinzufügen, und wählen Sie die Unternehmensanwendung im Menü Anwendung aus. Wählen Sie unter Host auswählen den Host aus Schritt 3 aus. Geben Sie unter Ressourcenpräfix / ein, um die Unternehmensanwendung als Proxy zu verwenden. Geben Sie schließlich unter Ursprungsserver den Hostnamen/die IP des Oracle Transportation Management-Anwendungsservers ein. Klicken Sie auf Schließen.

    App wird hinzugefügt.

    Hinweis: Wenn Sie / als Ressourcenpräfix verwenden, wird jede Anforderung, die nach / liegt, an die Unternehmensanwendung weitergeleitet.

  7. Klicken Sie auf App-Gateway aktivieren. Notieren Sie die Client-ID und das Client Secret, da dies später erforderlich ist.

    App-Gateway wird aktiviert.

Aufgabe 3: Laden Sie die erforderlichen Dateien herunter, um den Container einzurichten und das Wallet zu generieren

  1. Gehen Sie in der OCI-Konsole zu Identität, Domains, Ihrer Domain, Einstellungen, und klicken Sie auf Downloads.

  2. Laden Sie das Docker-Image aus dem Einheitlichen Docker-Package des App-Gateways für Identity Cloud Service herunter.

  3. Laden Sie als Nächstes das AppGateway Wallet-Tool herunter, mit dem ein Wallet generiert wird.

  4. Entpacken Sie die heruntergeladenen ZIP-Dateien. Das Docking-Abbild hat das Format .tar.gz.

    Downloads.

  5. Sie müssen die Imagedatei und den Wallet-Ordner vom lokalen Rechner auf den App-Gatewayserver kopieren. Im folgenden Beispiel wird gezeigt, wie Sie mit dem Befehl scp aus der lokalen bash-Shell den Inhalt des Wallet-Toolordners an das Dateiverzeichnis auf dem Server senden.

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

Aufgabe 4: OCI-Compute-Instanz erstellen und Netzwerksicherheitslisten aktualisieren

Hinweis: Wenn Sie einen lokalen Server/virtuellen Rechner in Ihrer eigenen Umgebung oder in einem anderen Cloud-Provider einrichten, können Sie die folgenden Schritte als Referenz für die Konfigurationen verwenden.

  1. Gehen Sie in der OCI-Konsole zu Compute, und klicken Sie auf Instanzen. Wählen Sie das richtige Compartment aus.

  2. Klicken Sie auf Instanz erstellen. Geben Sie den Namen ein, und wählen Sie eine Availability-Domain aus.

  3. Wählen Sie BS-Image als Oracle Linux 8 aus, und wählen Sie eine entsprechende Ausprägung aus. Wir verwenden E5 Flex/1 OCPU/8GB-Speicher.

  4. Wählen Sie das VCN und das öffentliche Subnetz aus, in dem Sie dies platzieren möchten.

  5. Generieren Sie ein SSH-Schlüsselpaar, um eine Secure-Shell-Verbindung (SSH) herzustellen, oder laden Sie einen bereits vorhandenen Public Key hoch.

  6. Klicken Sie auf Erstellen, und notieren Sie sich die Adresse IPv4.

  7. Öffnen Sie das Subnetz, und klicken Sie auf die zugehörige Sicherheitsliste.

  8. Klicken Sie auf Ingress-Regeln hinzufügen, und fügen Sie Folgendes hinzu, um den Ingress von HTTPS über TCP und SSH zuzulassen.

    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
    

Aufgabe 5: App-Gatewayserver mit dem Docker-Image konfigurieren

  1. Stellen Sie mit Ihrem Private Key eine SSH-Verbindung zur Compute-Instanz her, die in Aufgabe 4 erstellt wurde.

    ssh -i /Users/mac/ssh_private.key opc@xxx.xxx.xxx.xxx
    
  2. Führen Sie den folgenden Befehl aus, um Docker und andere Librarys zu installieren und den Service zu starten. Prüfen Sie anschließend, ob der Docking-Dienst ausgeführt wird.

    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. Fügen Sie als Nächstes den angemeldeten Benutzer (in diesem Fall opc) zur sudoers-Liste hinzu.

    sudo usermod -a -G docker $USER
    
  4. Öffnen Sie den Firewallport, um die Kommunikation zu aktivieren. Wir verwenden Port 443 hier.

    sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
    sudo systemctl stop firewalld
    sudo systemctl start firewalld
    
  5. Erstellen Sie ein Verzeichnis und beginnen Sie mit der Konsolidierung der Dateien, die zum Erstellen des Containers erforderlich sind. Wir verwenden /home/opc/files für dieses Tutorial.

    mkdir files
    cd files
    
  6. Generieren Sie ein selbstsigniertes Zertifikat mit openSSL.

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

    Hinweis: Die Verwendung selbstsignierter Zertifikate wird in einer Produktionsumgebung nicht empfohlen. Verwenden Sie stattdessen Zertifikate, die von Ihrer CA ausgestellt wurden.

  7. Erstellen Sie die Umgebungsdatei appgateway, in der die Domaininformationen enthalten sind.

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

    Hinweis: Ersetzen Sie XXX durch Ihre OCI-IAM-Domaindetails. Informationen zur DNS-Resolver-IP finden Sie in den Name Server-Details in der Datei /etc/resolv.conf.

    Umgebungsdetails.

  8. Generieren Sie die Wallet-Datei cwallet.sso mit dem Tool. Dazu führen Sie den folgenden Befehl aus. Ersetzen Sie Client ID durch die zuvor notierte App-Gatewayclient-ID. Klicken Sie auf Eingabetaste, und geben Sie das Client Secret ein, wenn Sie dazu aufgefordert werden.

    env LD_LIBRARY_PATH=./lib ./cgwallettool --create -i <Client ID>
    
  9. Nachdem alle Dateien bereit sind, aktualisieren Sie die Berechtigungen für jede Datei. Dadurch wird sichergestellt, dass der Eigentümer lesen, schreiben und ausführen kann; während Gruppen und andere nur lesen und ausführen können.

    chmod -R 755 <filename>
    
  10. Laden Sie das Image in das lokale Repository, und validieren Sie es.

    sudo docker load -i appgateway-aarch64-25.1.03-2501230623.tar.gz
    docker images
    
  11. Erstellen Sie den Container auf Basis der Dateien, und validieren Sie ihn. Nachdem Sie den folgenden Befehl ausgeführt haben, muss der Status für den Container UP lauten.

    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
    

Aufgabe 6: SSO-Konfiguration in Oracle Transportation Management aktualisieren

Hinweis: Dieses Tutorial ist spezifisch für Oracle Transportation Management 6.4.3. Weitere Informationen zum Festlegen der verschiedenen Parameter finden Sie im Sicherheitshandbuch für Oracle Transportation Management hier: Sicherheitshandbuch. Weitere Versionen finden Sie unter Transportation and Global Trade Management On-Premise Documentation Web Library.

  1. Für den SSO-Zugriff auf Oracle Transportation Management muss der aufrufende Code den folgenden Parameter als Teil der HTTP-Anforderung übergeben (wobei der Benutzername die GID des Benutzers in der Datenbank ist). Der appuid-Header wird im HTTP-Header übergeben. Der Wert dieses Headers muss mit dem Benutzernamen in der Datenbank übereinstimmen.

    appuid=username
    
  2. Melden Sie sich bei der Oracle Transportation Management-Admin-Konsole an, und navigieren Sie zu Benutzermanager. Erstellen/aktualisieren Sie den Benutzer, um sicherzustellen, dass ein gültiger Benutzername mit dem OCI-Benutzer übereinstimmt.

    Benutzermanager.

  3. Die SSO-Konfiguration muss in der Datei glog.properties aktualisiert werden. Melden Sie sich beim Server an, und navigieren Sie zu /app/appgtmdevl/Oracle/gtm643/glog/config. Aktualisieren Sie die folgenden Parameter.

    Eigenschaftendatei wird geöffnet.

    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
    

    Eigenschaften werden bearbeitet.

  4. Anschließend muss die OHS-Konfiguration aktualisiert werden. Siehe die folgenden Beispiele für den Pfad, um die Datei httpd.conf zu suchen.

    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. Erstellen Sie ein Backup der Datei, und legen Sie dann die folgenden Parameter in der Konfiguration fest.

    SimulateHttps On
    AddCertHeader HTTPS
    

    Beispiel:

    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. Starten Sie die Anwendung und Web Tier neu, um sicherzustellen, dass die Änderungen wirksam werden.

  7. Stellen Sie sicher, dass Netzwerk-Ingress/Egress vom App-Gatewayserver zur Oracle Transportation Management-Instanz zulässig ist. Verwenden Sie Aufgabe 4.8 als Referenz.

Aufgabe 7: Über SSO anmelden und validieren

  1. Greifen Sie über einen Browser auf die Servlet-URL zu. Beispiel-URL: https://appgatewayserver.domain:443/GC3/glog.webserver.util.FrameGC3Servlet.

  2. Beachten Sie, dass eine Umleitung zur OCI IAM-Anmeldung erfolgen muss. Geben Sie die Zugangsdaten des Benutzers und die Anmeldung ein.

  3. Nach erfolgreicher Authentifizierung werden Sie bei Oracle Transportation Management angemeldet.

    Oracle Transportation Management-Konsole.

Bestätigungen

Weitere Lernressourcen

Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.