Remarques :

Implémenter l'accès avec connexion unique dans Oracle Fusion Cloud Transportation Management 6.4.3

Introduction

Vous pouvez intégrer des applications aux domaines Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) pour activer l'authentification et l'accès avec connexion unique (SSO) via différentes méthodes. Bien que de nombreuses applications prennent en charge des protocoles standard tels que SAML et OAuth, Oracle Fusion Cloud Transportation Management (Oracle Transportation Management) prend en charge l'authentification basée sur l'en-tête HTTP pour SSO.

La passerelle d'application agit comme un proxy d'authentification entre OCI IAM et Oracle Transportation Management. Il est disponible dans deux options de déploiement : une image Docker et une image d'appliance virtuelle. Ce tutoriel se concentre sur le déploiement et l'utilisation de la version basée sur Docker.

Architecture de solution.

L'implémentation de SSO aide à tirer parti des fonctionnalités de sécurité d'OCI IAM, notamment l'authentification à plusieurs facteurs, la sécurité adaptative, les stratégies de connexion, etc. Cela permet d'appliquer une couche supplémentaire de contrôle d'accès pour mieux protéger votre instance Oracle Transportation Management.

Objectifs

Prérequis

Tâche 1 : configurer une application Enterprise

Les détails suivants sont requis pour Oracle Transportation Management avant de continuer :

Suivez les étapes décrites:

  1. Ouvrez le menu d'accès de la console Oracle Cloud et cliquez sur Identité & sécurité. Sous Identité, cliquez sur Domaines. Choisissez le compartiment dans lequel trouver le domaine.

    Domaines.

  2. Cliquez sur le nom du domaine, puis sous Applications intégrées, cliquez sur Ajouter une application.

    Ajouter une application.

  3. Sélectionnez Application Enterprise, puis cliquez sur Lancer le workflow.

    Lancer le workflow.

  4. Attribuez un nom à l'application. L'URL d'application correspond à l'hôte et au port du serveur de passerelle d'application. Il peut également s'agir d'une URL qui a une redirection vers la passerelle d'application. Cochez la case Afficher dans Mes applications. Si vous voulez limiter cette application aux utilisateurs autorisés uniquement, cochez Cette application doit être accordée à l'utilisateur.

    Nom et détails de l'URL.

  5. Cliquez à nouveau sur Suivant, puis sur Suivant pour ignorer les écrans de configuration OAuth.

  6. Cliquez sur Ajouter une ressource pour ajouter les ressources GTM. Indiquez un nom et une URL de ressource. Dans notre cas, ce sera /.* car nous protégeons toutes les ressources. Cochez la case Utiliser des expressions régulières.

    Ajout de ressources.

  7. Cliquez sur le bouton Ajouter une ressource gérée, puis sélectionnez la ressource de l'étape 6 précédente dans le menu Ressource. Sélectionnez la méthode d'authentification Formulaire ou jeton d'accès. Sous En-têtes, entrez appuid en tant que nom et User Name en tant que valeur.

    Ajout de ressources gérées.

    Remarque : dans notre exemple, nous avons sélectionné Default comme seule ressource et Form or Access token comme méthode d'authentification pour protéger toutes les ressources. Cela garantit que seuls les utilisateurs authentifiés sont autorisés à y accéder. Oracle Transportation Management a également besoin d'un en-tête appuid avec le nom utilisateur comme valeur. Nous avons identifié cela dans le cadre de notre tâche initiale de collecte de détails.

  8. Cliquez sur Terminer, puis activez l'application en cliquant sur l'option Activer.

  9. Affectez des utilisateurs/groupes à l'application sous Ressources. Vous pouvez choisir des utilisateurs locaux et fédérés, mais assurez-vous que ces utilisateurs existent dans la base de données Oracle Transportation Management.

Tâche 2 : inscription d'une passerelle d'application dans OCI IAM

La passerelle d'application se trouve devant votre application, intercepte les demandes, authentifie les utilisateurs, puis autorise l'accès aux ressources.

Collecter les détails du serveur :

Les détails suivants sont requis sur le serveur app-gateway avant de continuer :

Suivez les étapes décrites:

  1. Sous Identité, sélectionnez Domaines, puis cliquez sur le domaine que vous avez utilisé auparavant.

  2. Sous Sécurité, sélectionnez Passerelles d'application et cliquez sur Créer une passerelle d'application. Entrez un nom et cliquez sur Ajouter une passerelle d'application.

    Création de la passerelle d'application.

  3. Cliquez sur Ajouter un hôte. Indiquez un nom dans Identificateur d'hôte et ajoutez les détails du serveur de passerelle d'application sous Hôte et Port. Si vous ne disposez pas encore des détails, ajoutez des valeurs d'espace réservé et réexécutez cette étape après avoir terminé la tâche 4.

    Ajout de l'hôte.

  4. Cochez la case SSL activé, entrez les informations ci-dessous dans Propriétés supplémentaires et cliquez sur Ajouter un hôte.

    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;
    

    Remarque : nous ne terminons pas SSL au niveau de l'équilibreur de charge. Nous devons donc cocher la case SSL pour activer l'accès au serveur de passerelle d'application via SSL. Les noms de fichier et le chemin du certificat et de la clé sont basés sur le chemin réel dans le conteneur.

  5. Cliquez sur Suivant pour ajouter les détails de l'application Enterprise et du serveur d'origine que vous avez créés dans la tâche 1.

  6. Cliquez sur Ajouter une application et sélectionnez l'application Enterprise dans le menu Application. Sous Sélectionner un hôte, choisissez l'hôte à l'étape 3. Dans Préfixe de ressource, entrez / pour créer un proxy pour l'application Enterprise. Enfin, dans Serveur d'origine, entrez le nom d'hôte/adresse IP du serveur d'applications Oracle Transportation Management. Cliquez sur Fermer.

    Ajout de l'application.

    Remarque : lorsque vous utilisez / comme préfixe de ressource, chaque demande passée par / est transmise à l'application d'entreprise.

  7. Cliquez sur Activer la passerelle d'application. Notez la valeur des champs ID du client et Clé secrète du client, car cela sera requis ultérieurement.

    Activation de la passerelle d'application.

Tâche 3 : télécharger les fichiers requis pour configurer le conteneur et générer le portefeuille

  1. Dans la console OCI, accédez à Identité, Domaines, votre domaine, Paramètres et cliquez sur Téléchargements.

  2. Téléchargez l'image Docker à partir du package Docker unifié de passerelle d'application pour Identity Cloud Service.

  3. Ensuite, téléchargez l'outil de portefeuille AppGateway qui sera utilisé pour générer un portefeuille.

  4. Décompressez les fichiers ZIP téléchargés. L'image docker sera au format .tar.gz.

    Téléchargements.

  5. Vous devez copier le fichier image et le dossier de portefeuille de votre ordinateur local vers le serveur de passerelle d'application. Voici un exemple qui montre comment utiliser la commande scp de votre shell bash local pour envoyer le contenu du dossier d'outils de portefeuille vers le répertoire de fichiers du serveur.

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

Tâche 4 : création d'une instance de calcul OCI et mise à jour des listes de sécurité réseau

Remarque : si vous configurez un serveur/une machine virtuelle local dans votre propre environnement ou dans un autre fournisseur cloud, vous pouvez utiliser les étapes suivantes comme référence pour les configurations.

  1. Dans la console OCI, accédez à Compute et cliquez sur Instances. Sélectionnez le bon compartiment.

  2. Cliquez sur Créer une instance. Entrez le nom et sélectionnez un domaine de disponible.

  3. Sélectionnez Image de système d'exploitation en tant qu'Oracle Linux 8 et sélectionnez une forme appropriée. Nous utilisons la mémoire E5 Flex/1 OCPU/8GB.

  4. Sélectionnez le VCN et le sous-réseau public sur lesquels vous souhaitez placer cette valeur.

  5. Générez une paire de clés SSH pour la connexion à l'instance à l'aide d'une connexion Secure Shell (SSH) ou téléchargez une clé publique que vous possédez déjà.

  6. Cliquez sur Créer et notez l'adresse IPv4.

  7. Ouvrez le sous-réseau et cliquez sur la liste de sécurité qui lui est associée.

  8. Cliquez sur Ajouter des règles entrantes et ajoutez ce qui suit pour autoriser l'entrée de HTTPS sur TCP et 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
    

Tâche 5 : configurer le serveur de passerelle d'application à l'aide de l'image Docker

  1. Connectez-vous via SSH à l'instance de calcul créée dans la tâche 4 à l'aide de votre clé privée.

    ssh -i /Users/mac/ssh_private.key opc@xxx.xxx.xxx.xxx
    
  2. Exécutez la commande suivante pour installer Docker et d'autres bibliothèques, puis démarrez le service. Vérifiez ensuite que le service docker est exécuté.

    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. Ensuite, ajoutez l'utilisateur connecté (opc dans ce cas) à la liste sudoers.

    sudo usermod -a -G docker $USER
    
  4. Ouvrez le port de pare-feu pour activer la communication. Nous utilisons le port 443 ici.

    sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
    sudo systemctl stop firewalld
    sudo systemctl start firewalld
    
  5. Créez un répertoire et commencez à consolider les fichiers requis pour créer le conteneur. Nous utilisons /home/opc/files pour ce tutoriel.

    mkdir files
    cd files
    
  6. Générez un certificat autosigné à l'aide de la commande openSSL.

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

    Remarque : l'utilisation de certificats autosignés n'est pas recommandée dans un environnement de production. Utilisez plutôt des certificats émis par votre autorité de certification.

  7. Créez le fichier d'environnement appgateway qui contient les informations sur le domaine.

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

    Remarque : remplacez XXX par les détails de domaine OCI IAM. Pour l'adresse IP du résolveur DNS, reportez-vous aux détails du serveur de noms trouvés dans le fichier /etc/resolv.conf.

    Détails de l'environnement.

  8. Générez le fichier de portefeuille cwallet.sso à l'aide de cet outil. Pour ce faire, exécutez la commande suivante. Remplacez Client ID par l'ID client de passerelle d'application indiqué précédemment. Cliquez sur Entrée et saisissez la clé secrète client lorsque vous y êtes invité.

    env LD_LIBRARY_PATH=./lib ./cgwallettool --create -i <Client ID>
    
  9. Maintenant que tous les fichiers sont prêts, mettez à jour les autorisations pour chaque fichier. Cela garantit que le propriétaire peut lire, écrire et exécuter, tandis que les groupes et autres ne peuvent lire et exécuter que.

    chmod -R 755 <filename>
    
  10. Chargez l'image dans le référentiel local et validez-la.

    sudo docker load -i appgateway-aarch64-25.1.03-2501230623.tar.gz
    docker images
    
  11. Créez le conteneur en fonction des fichiers et validez-le. Après l'exécution de la commande suivante, le statut du conteneur doit être 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
    

Tâche 6 : Mettre à jour la configuration SSO dans Oracle Transportation Management

Remarque : ce tutoriel est spécifique à Oracle Transportation Management 6.4.3. Pour plus d'informations sur la définition des différents paramètres, consultez le guide de sécurité d'Oracle Transportation Management ici : Guide de sécurité. Pour les autres versions, reportez-vous à la Bibliothèque Web de documentation sur site Transport and Global Trade Management.

  1. Pour l'accès SSO à Oracle Transportation Management, le code appelant doit transmettre le paramètre suivant dans le cadre de la demande HTTP (où le nom utilisateur est le GID de l'utilisateur dans la base de données). L'en-tête appuid sera transmis dans l'en-tête HTTP. La valeur de cet en-tête doit correspondre au nom utilisateur dans la base de données.

    appuid=username
    
  2. Connectez-vous à la console d'administration Oracle Transportation Management et accédez à User Manager. Créez/mettez à jour l'utilisateur pour vous assurer qu'il existe un nom utilisateur valide qui correspond à l'utilisateur OCI.

    Responsable d'utilisateur.

  3. La configuration SSO doit être mise à jour dans le fichier glog.properties. Connectez-vous au serveur et accédez à /app/appgtmdevl/Oracle/gtm643/glog/config. Mettez à jour les paramètres suivants.

    Ouverture du fichier de propriétés.

    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
    

    Modification des propriétés

  4. La configuration OHS doit ensuite être mise à jour. Reportez-vous aux exemples suivants du chemin permettant de localiser le fichier 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. Effectuez une sauvegarde du fichier, puis définissez les paramètres suivants dans la configuration.

    SimulateHttps On
    AddCertHeader HTTPS
    

    Par exemple :

    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. Redémarrez l'application et le niveau Web pour vous assurer que les modifications prennent effet.

  7. Assurez-vous que l'entrée/la sortie réseau du serveur de passerelle d'application vers l'instance Oracle Transportation Management est autorisée. Utilisez la tâche 4.8 pour référence.

Tâche 7 : connexion via SSO et validation

  1. Accédez à l'URL du servlet à partir d'un navigateur. Exemple d'URL : https://appgatewayserver.domain:443/GC3/glog.webserver.util.FrameGC3Servlet.

  2. Notez qu'une redirection vers la connexion à OCI IAM doit être effectuée. Entrez les informations d'identification de l'utilisateur et la connexion.

  3. Une fois l'authentification réussie, vous serez connecté à Oracle Transportation Management.

    Console Oracle Transportation Management.

Accusés de réception

Ressources de formation supplémentaires

Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.