Note :

Mettre en oeuvre l'authentification unique dans Oracle Fusion Cloud Transportation Management 6.4.3

Présentation

Vous pouvez intégrer des applications avec des domaines Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) pour permettre l'authentification et l'authentification unique au moyen de diverses 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 un en-tête HTTP pour l'authentification unique.

La passerelle d'application agit comme mandataire d'authentification entre OCI IAM et Oracle Transportation Management. Il est disponible en deux options de déploiement : une image Docker et une image de boîtier virtuel. Ce tutoriel porte sur le déploiement et l'utilisation de la version basée sur Docker.

Architecture de la solution.

La mise en oeuvre de l'authentification unique contribue à tirer parti des capacités de sécurité d'OCI IAM, notamment l'authentification multifacteur, la sécurité adaptative, les politiques d'authentification, etc. Cela permet d'appliquer une couche supplémentaire de contrôle d'accès pour protéger davantage votre instance Oracle Transportation Management.

Objectifs

Conditions requises

Tâche 1 : Configurer une application d'entreprise

Les détails suivants sont requis à propos d'Oracle Transportation Management avant de continuer :

Voici la marche à suivre :

  1. Ouvrez le menu de navigation de la console Oracle Cloud, puis cliquez sur Identité et sécurité. Sous Identité, cliquez sur Domaines. Sélectionnez le compartiment pour rechercher votre domaine.

    Domaines.

  2. Cliquez sur le nom de votre domaine et, sous Applications intégrées, cliquez sur Ajouter une application.

    Ajouter une application.

  3. Sélectionnez Application d'entreprise, puis cliquez sur Lancer le flux de travail.

    Lancer le flux de travail.

  4. Entrez un nom pour l'application. L'URL de l'application est l'hôte et le port du serveur de la 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 la case L'utilisateur doit disposer de cette application.

    Détails du nom et de l'URL.

  5. Cliquez de 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 rationnelles.

    Ajout de ressources.

  7. Cliquez sur le bouton Ajouter une ressource gérée et sélectionnez la ressource à 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 dans le champ Nom et User Name dans le champ Valeur.

    Ajout de ressources gérées.

    Note : 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 d'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 : Enregistrer la 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 :

Voici la marche à suivre :

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

  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 n'avez pas encore les détails, ajoutez des valeurs de paramètre fictif et revisitez cette étape après avoir terminé la tâche 4.

    Ajout d'hôte.

  4. Cochez la case SSL activé, entrez la valeur ci-dessous dans Propriétés supplémentaires, puis 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;
    

    Note : SSL n'est pas en cours de terminaison 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 par 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 d'entreprise et du serveur d'origine que vous avez créés à la tâche 1.

  6. Cliquez sur Ajouter une application et sélectionnez l'application d'entreprise dans le menu Application. Sous Sélectionner un hôte, sélectionnez l'hôte à l'étape 3. Dans Préfixe de ressource, entrez / pour mandataire l'application d'entreprise. 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.

    Note : Lorsque vous utilisez / comme préfixe de ressource, chaque demande postérieure à / est transmise à l'application d'entreprise.

  7. Cliquez sur Activer une passerelle d'application. Notez l'ID client et la clé secrète client, car cela sera requis plus tard.

    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, allez à Identité, Domaines, votre domaine, Paramètres et cliquez sur Téléchargements.

  2. Téléchargez l'image Docker à partir de l'ensemble 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échargement.

  5. Vous devrez copier le fichier d'image et le dossier de portefeuille de votre ordinateur local vers votre 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 de l'outil de portefeuille au 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éer une instance de calcul OCI et mettre à jour les listes de sécurité de réseau

Note : Si vous configurez un serveur/machine virtuelle local dans votre propre environnement ou dans un autre fournisseur de services infonuagiques, vous pouvez utiliser les étapes suivantes comme référence pour les configurations.

  1. Dans la console OCI, allez à Calcul et cliquez sur Instances. Sélectionnez le compartiment approprié.

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

  3. Sélectionnez Image de système d'exploitation comme 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 dans lesquels vous voulez placer cet élément.

  5. Générer une paire de clés SSH pour vous connecter à l'instance au moyen d'une connexion SSH, ou charger une clé publique que vous avez 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 de trafic entrant et ajoutez les éléments ci-dessous pour autoriser le trafic entrant 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. Accédez par SSH à l'instance de calcul créée à 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 et démarrer le service. Vérifiez ensuite que le service docker est en cours d'exécution.

    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 nécessaires à la création du conteneur. Nous utilisons /home/opc/files pour ce tutoriel.

    mkdir files
    cd files
    
  6. Générez un certificat auto-signé à l'aide de openSSL.

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

    Note : L'utilisation de certificats auto-signés n'est pas recommandée dans un environnement de production. Utilisez plutôt les certificats émis par votre autorité de certification.

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

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

    Note : Remplacez XXX par les détails de votre domaine OCI IAM. Pour l'adresse IP du résolveur DNS, consultez les 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 l'outil. Pour ce faire, exécutez la commande suivante. Remplacez Client ID par l'ID client de la passerelle d'application indiqué précédemment. Cliquez sur Retourner et entrez la clé secrète client à l'invite.

    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 que lire et exécuter.

    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 avoir exécuté 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 de l'authentification unique dans Oracle Transportation Management

Note : Ce tutoriel est propre à Oracle Transportation Management 6.4.3. Pour plus de détails 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, voir Bibliothèque Web de documentation sur le transport et Global Trade Management sur place.

  1. Pour l'accès SSO à Oracle Transportation Management, le code d'appel doit transmettre le paramètre suivant dans le cadre de la demande HTTP (où le nom utilisateur est l'IDG 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 d'utilisateur dans la base de données.

    appuid=username
    
  2. Connectez-vous à la console d'administration d'Oracle Transportation Management et naviguez jusqu'au Gestionnaire d'utilisateurs. Créez/mettez à jour l'utilisateur pour vous assurer qu'il existe un nom d'utilisateur valide correspondant à l'utilisateur OCI.

    Gestionnaire d'utilisateurs.

  3. La configuration de l'authentification unique 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. Ensuite, la configuration OHS doit être mise à jour. Consultez les exemples suivants du chemin d'accès pour localiser votre 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
    

    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 le trafic entrant/sortant réseau du serveur de passerelle d'application vers votre instance Oracle Transportation Management est autorisé. Utilisez la tâche 4.8 comme référence.

Tâche 7 : Se connecter au moyen de l'authentification unique et valider

  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'il doit y avoir une redirection vers la connexion OCI IAM. Entrez les données d'identification de l'utilisateur et connectez-vous.

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

    Console Oracle Transportation Management.

Remerciements

Ressources d'apprentissage supplémentaires

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

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