Modernisation Oracle Forms

Comment implémenter le Single Sign-On (SSO) pour Oracle Forms 9i / 10g ?

Ce chapitre décrit comment implémenter le Single Sign-On (SSO) pour les versions 10.1.2.3.0 d'Oracle Forms 9i / 10g [Release 10.1.2.3]. La technologie Single Sign-On (SSO) fournit une authentification unique pour les utilisateurs Web. Elle est conçue pour fonctionner dans un environnement Oracle 9iAS / Oracle Application Server 10g de manière à ce que les utilisateurs finaux puissent accéder à plusieurs applications Web via un seul nom d'utilisateur et mot de passe.

Les instructions suivantes s'appliquent à ces produits uniquement:

  • Oracle Forms - Version 10.1.2.3.0 à 10.1.2.3.0 [Release 10.1.2.3]
  • Oracle Fusion Middleware - Version 9.0.4.0.0 à 10.1.4.3.0 [Release AS10g à AS10gR3]
  • Oracle Application Server Single Sign-On - Version 9.0.4 à 10.1.4.3 [Release 10gR1 à 10gR3]
  • Oracle Internet Directory - Version 9.0.4 à 10.1.4.3 [Release 10gR1 à 10gR3]
  • Les informations contenues dans ce document s'appliquent à toute plateforme.

Mise à niveau Oracle Forms: Mise à niveau depuis une version inférieure à 12.2.1.3

Objectif

Fournir des instructions sur la mise en œuvre du Single Sign-On (SSO) pour Oracle Forms 9i / 10g.

Remarque: Si vous utilisez Forms 11g, veuillez consulter les conseils donnés dans Note 852352.1 - SSO 10g Integration with Portal, Forms, Reports, Discoverer in Oracle Fusion Middleware 11g Release 1

Portée

Ce document s'applique aux consultants, ingénieurs de support, administrateurs système / application, architectes système.

Oracle Forms - Aperçu du Single Sign-On

La technologie Single Sign-On (SSO) offre une authentification unique pour les utilisateurs Web. Elle est conçue pour fonctionner dans un environnement Oracle 9iAS / Oracle Application Server 10g, permettant ainsi aux utilisateurs finaux d'accéder à plusieurs applications Web à l'aide d'un seul nom d'utilisateur et d'un mot de passe. Sans SSO, chaque utilisateur doit posséder une identité et un mot de passe distincts pour chaque application à laquelle il accède. La gestion de plusieurs comptes et mots de passe pour chaque utilisateur est moins sécurisée et plus coûteuse/difficile à maintenir.

Le Single Sign-On d'Oracle est composé des composants suivants :

Serveur Single Sign-On d'Oracle.

C'est le noyau de la technologie SSO d'Oracle. Il est intégré avec Oracle HTTP Server via mod_osso. De plus, il permet la gestion des informations utilisateur dans Oracle Internet Directory. Deux types d'applications peuvent utiliser Oracle Single Sign-On :

  • Les applications partenaires sont celles conçues ou modifiées pour déléguer l'authentification au serveur Single Sign-On. Étant donné que les applications partenaires tirent parti des services d'authentification de Single Sign-On d'Oracle, elles n'ont pas besoin de mettre en œuvre leurs propres modules d'authentification.
  • Les applications externes conservent leurs propres noms d'utilisateur et mots de passe, et ne délèguent pas la responsabilité de l'authentification des utilisateurs à Oracle Single Sign-On. Ces applications n'ont pas été développées ou modifiées pour fonctionner dans le cadre SSO. Une application externe typique pourrait être un site Web portail développé ou déployé par un tiers, nécessitant un nom d'utilisateur et un mot de passe pour accéder à des services personnalisés comme le courrier électronique.

mod_osso

Le composant mod_osso est un module qui se connecte à Oracle HTTP Server. Il permet à l'écouteur HTTP de devenir une application partenaire pouvant utiliser le serveur Single Sign-On pour authentifier les utilisateurs. Une fois mod_osso installé et configuré, les applications Web peuvent enregistrer les URL nécessitant une authentification SSO avec le module. Lorsque des demandes d'URL sont reçues par le serveur HTTP, mod_osso détecte celles nécessitant une authentification SSO et les redirige vers le serveur Single Sign-On. Après que le serveur Single Sign-On a authentifié l'utilisateur, il transmet l'identité authentifiée de l'utilisateur à mod_osso dans un jeton sécurisé, ou cookie. Le module récupère l'identité de l'utilisateur à partir du cookie et propage les informations d'identité de l'utilisateur aux applications exécutées dans l'instance du serveur HTTP. Le module peut propager les informations d'identité de l'utilisateur aux applications s'exécutant dans CGI, celles fonctionnant dans Oracle9iAS Containers for J2EE, et peut également authentifier les utilisateurs pour l'accès à des fichiers statiques.

Les applications Oracle Forms Services peuvent être exécutées dans un environnement Single Sign-On (SSO) en utilisant Oracle Login Server (Serveur Single Sign-On) et Oracle Internet Directory (OID) pour stocker les informations de nom d'utilisateur et de mot de passe. Pour l'implémentation du Single Sign-On, Oracle Forms est considéré comme une « application externe ».

Configuration de l'Internet Directory d'Oracle Forms Single Sign-On

Créez un utilisateur Single Sign-On, par exemple, en utilisant le Service d'Administration Déléguée d'Oracle Internet Directory (DAS).

  1. a. Le DAS est accessible via un navigateur en spécifiant l'URL http://hostname.domain:portno/oiddas par exemple http://mymachine.oracle.com:port/oiddas
  2. Cliquez sur l'onglet "Répertoire".
  3. Connectez-vous en tant qu'administrateur Oracle Internet Directory. Un compte administrateur est requis pour créer un nouvel utilisateur SSO, par exemple orcladmin.
  4. Cliquez sur le bouton Créer.
  5. Saisissez le nouveau nom d'utilisateur SSO dans le champ "Nom d'utilisateur". Cette valeur doit être unique pour chaque personne ajoutée au système. Pour cet exemple, créez un utilisateur SSO appelé 'FORMS_SSO_USER1' avec le mot de passe 'FORMS_SSO_USER1'.
  6. Saisissez un mot de passe et les autres valeurs requises.
  7. Cliquez sur le bouton Soumettre.
  8. Un message doit apparaître indiquant :
  9. "L'utilisateur FORMS_SSO_USER1 a été créé avec succès."

Modifiez ce nouveau compte utilisateur Single Sign-On pour stocker les informations de connexion à la base de données cible.

  1. Cliquez sur Utilisateurs.
  2. Recherchez le nouvel utilisateur SSO en saisissant le nouveau nom d'utilisateur SSO, par exemple FORMS_SSO_USER1, dans le champ de recherche. Cliquez sur le bouton GO pour effectuer la recherche.
  3. Pour mettre à jour le compte utilisateur SSO, sélectionnez-le d'abord en cochant la case radio sous la colonne Sélectionner. Ensuite, cliquez sur le bouton Modifier.
  4. Dans l'écran de modification de l'utilisateur, cliquez sur le lien "Affectations de groupes publics (Non valable pour la version 10.1.x)".
  5. Chaque application Forms nécessite des informations de connexion à la base de données stockées dans l'OID (Oracle Internet Directory) pour fonctionner en mode SSO. Les informations de connexion à la base de données sont répertoriées sous "Informations d'accès aux ressources" (Resource Access Descriptor (RAD)) dans l'OID. Cliquez sur le bouton Créer sous la section "Informations d'accès aux ressources".
  6. Spécifiez un nom de ressource. La valeur du champ "Nom de ressource" doit être identique au nom utilisé pour le paramètre de requête "config" dans l'URL de l'application Forms Services. Dans cet exemple, le "Nom de ressource" sera FORMS_SSO_DB et le "Type de ressource" sera OracleDB.
    Cliquez sur le bouton Suivant.
  7. Spécifiez les informations de connexion à la base de données. Pour une connexion Oracle RDBMS, les informations d'alias de base de données doivent exister dans le fichier tnsnames.ora du niveau intermédiaire Oracle 9iAS / OracleAS 10g. C'est la même chose que ce qui serait configuré pour toute connexion SQL*Net.
  8. Cliquez sur le bouton Soumettre. Un message doit apparaître: "La ressource est créée en cache.". Cliquez sur OK.
  9. De retour dans l'écran de modification de l'utilisateur - cliquez sur le bouton Soumettre. Un message doit apparaître : "L'utilisateur a été modifié avec succès."

**Remarque importante**
Si vous ne cliquez pas sur le bouton Soumettre, les Informations d'accès aux ressources nouvellement créées (Resource Access Descriptor (RAD)) créées en cache seront perdues et donc non associées à cet utilisateur Single Sign-On.

Configuration de mod_osso pour Oracle Forms Single Sign-On (Forms 9i uniquement)

Protégez l'URL du servlet Forms avec l'authentification mod_osso.
Remarque : Ces étapes ne sont requises que lors de la configuration du SSO pour les services Oracle 9iAS Rel 2 Forms.

C'est l'URL des Forms qui sera protégée. Une entrée d'authentification mod_osso est déjà présente dans le fichier forms90.conf, mais elle est commentée.
Décommentez-la, par exemple:

# Forms mod_osso authentication directive 


require valid-user
authType Basic


Alternativement, ajoutez la section suivante au fichier $ORACLE_HOME\Apache\Apache\conf\mod_osso.conf. Les lignes doivent être ajoutées entre les balises et par exemple:

# Forms mod_osso authentication directive 
..

require valid-user
authType Basic

..

Arrêtez et redémarrez le serveur Oracle HTTP pour que les changements prennent effet.

Oracle Forms Single Sign-On - Configuration des Forms

Créez une section de configuration SSO dans le fichier formsweb.cfg.

  1. Modifiez le fichier $ORACLE_HOME\forms90\server\formsweb.cfg.
  2. Faites défiler jusqu'en bas et ajoutez une nouvelle section de configuration, par exemple :
    Pour Forms 9i:
    # Forms mod_osso authentication directive 
    
    
    require valid-user
    authType Basic
    
    
    

    Pour Forms 10g:
    # Forms mod_osso authentication directive 
    
    
    require valid-user
    authType Basic
    
    
    

    (Si le paramètre de l'applet ssoDynamicResourceCreate est défini sur true, l'utilisateur SSO aura la possibilité de spécifier les informations d'accès aux ressources (Resource Access Descriptor - RAD) s'il ne dispose pas déjà de ce compte associé à FORMS_SSO_DB dans cet exemple.
    L'entrée ssoCancelURL ici pointe vers un document HTML personnalisé qui indique à l'utilisateur ce qu'il doit faire après avoir cliqué sur le bouton d'annulation dans l'écran de création des informations d'accès aux ressources (RAD) de l'OID/DAS.)

    Remarque importante : Le nom de la section de configuration doit être identique au "nom de la ressource" créé sous "Resource Access Information" dans l'Oracle Internet Directory.

  3. Enregistrez le fichier modifié.

Oracle Forms Single Sign-On - Test de la Configuration

Exécutez le formulaire en utilisant l'URL: http://machinename.domain:portno/forms90/f90servlet?config=FORMS_SSO_DB Par exemple: http://mymachine.oracle.com:port/forms90/f90servlet?config=FORMS_SSO_DB

Dans la page de dialogue Oracle Single Sign-On, entrez FORMS_SSO_USER1 comme nom d'utilisateur et mot de passe. (C'est le même nom d'utilisateur et mot de passe créé dans OID.)

L'applet Forms devrait être invoquée. Aucun dialogue d'authentification de la base de données n'apparaîtra. Cela est dû au fait que les informations de connexion à la base de données ont déjà été stockées et associées à l'utilisateur SSO dans l'OID.

Quittez l'application Forms et toutes les sessions du navigateur.

Testez maintenant que l'utilisateur SSO n'a besoin de se connecter qu'une seule fois lorsqu'il utilise des applications Web Oracle à partir de la même session du navigateur.

Lancez un nouveau navigateur et connectez-vous à Oracle Portal: http://machinename.domain:portno/pls/portal Par exemple : http://mymachine.oracle.com:port/pls/portal

Connectez-vous en utilisant le même nom d'utilisateur et mot de passe SSO : FORMS_SSO_USER1.

Après vous être connecté à Portal dans la même session du navigateur, tapez l'URL pour invoquer l'application Forms, par exemple: http://machinename.domain:portno/forms90/f90servlet?config=FORMS_SSO_DBPar exemple: http://mymachine.oracle.com:port/forms90/f90servlet?config=FORMS_SSO_DB

L'applet Forms devrait apparaître sans demander de nom d'utilisateur et mot de passe SSO ou de base de données.

Limitations du Single Sign-On d'Oracle Forms 9i et nouvelles fonctionnalités SSO de Forms 10g

Pas de paramètre d'applet Forms ssoMode disponible pour Forms 9i.

Au lieu de cela, l'alias f90servlet doit être protégé dans la configuration de mod_osso. L'alias 'forms90/f90servlet' est l'alias fourni par l'installation/configuration par défaut. En protégeant cet alias, toutes les tentatives d'invoquer des forms via 'forms90/f90servlet' seront soumises à une boîte de dialogue de connexion Single Sign-On. Il peut donc être préférable de créer d'autres noms d'alias pour le Forms Listener Servlet afin que le SSO puisse être utilisé pour certaines applications, mais pas pour d'autres.

Référence:
Note 220629.1 Comment activer le SSO pour certaines applications Forms 9i et pas pour d'autres ?

Dans Oracle Application Server 10g Forms Services, la création d'alias supplémentaires pour le Forms Listener Servlet n'est pas nécessaire. Au lieu de cela, le SSO peut être activé ou désactivé en définissant le paramètre d'applet Forms ssoMode sur true ou false.

Reference:
Note 263145.1 Comment activer le SSO pour certaines applications Forms 10g et pas pour d'autres ?

Récupération programmatique des informations utilisateur SSO en utilisant GET_APPLICATION_PROPERTY

Dans Forms 9i, il est seulement possible d'obtenir le nom d'utilisateur Single Sign-On via :

GET_APPLICATION_PROPERTY(sso_userid);

Cela retourne une chaîne contenant l'ID utilisateur Single Sign-On si l'utilisateur a été authentifié via le Login Server. Une valeur NULL est retournée si le SSO n'a pas été utilisé.

Dans Forms 10g, la fonction intégrée GET_APPLICATION_PROPERTY a été améliorée pour qu'il soit également possible d'obtenir le nom distingué de l'utilisateur (dn) et le nom distingué de l'abonné (subscriber dn), par exemple :

GET_APPLICATION_PROPERTY(sso_usrdn);
GET_APPLICATION_PROPERTY(sso_subdn);

Création dynamique des informations d'accès aux ressources

Dans Forms 9i, l'intégration SSO échouera s'il n'existe aucune information d'accès aux ressources (Resource Access Descriptor - RAD) pour l'utilisateur Single Sign-On qui tente d'exécuter l'application forms.

Dans Forms 10g, la fonctionnalité SSO a été améliorée pour que cette situation puisse être mieux gérée de l'une des trois manières suivantes :

  • Le paramètre d'applet Forms `ssoDynamicResourceCreate` est défini sur `true` (valeur par défaut). Cela permet à l'utilisateur SSO de créer les informations d'accès aux ressources manquantes "à la volée". L'utilisateur SSO se verra présenter la page de dialogue Resource Access Information / Resource Access Descriptor (RAD) dans laquelle il pourra entrer les détails d'accès aux ressources.
  • Le paramètre d'applet Forms `ssoDynamicResourceCreate` est défini sur `false`. L'utilisateur SSO ne peut pas créer les informations d'accès aux ressources manquantes / Resource Access Descriptor (RAD) et recevra un message d'erreur indiquant que les informations d'accès aux ressources / RAD n'existent pas, et il ne sera pas possible d'exécuter l'application forms.
  • Le paramètre d'applet Forms `ssoDynamicResourceCreate` est défini sur `false`. L'utilisateur SSO peut être redirigé vers une URL personnalisée / page Web lorsque les informations d'accès aux ressources ne sont pas définies. Cela peut être fait en définissant le paramètre d'applet Forms `ssoErrorUrl` sur l'URL souhaitée.

Reference:

Note 248105.1 Comment créer dynamiquement un descripteur d'accès aux ressources (RAD) Single Sign-On (SSO) en utilisant Forms 10g ?

Résumé technique d'Oracle Application Server 10g Forms Single Sign-On

Gestion de l'expiration du mot de passe de la base de données

Dans Forms 6i / 9i, les détails d'une expiration/changement de mot de passe ne sont pas propagés aux informations d'accès aux ressources (Resource Access Descriptor - RAD) détenues dans l'Oracle Internet Directory. Par conséquent, l'expiration du mot de passe entraîne l'arrêt de l'intégration Single Sign-On, jusqu'à ce que le mot de passe dans le RAD soit également changé. Les détails du RAD peuvent être modifiés manuellement via le service d'administration déléguée de l'OID (DAS) ou par programme via l'API OID.

Dans Forms 10g, l'expiration du mot de passe est automatiquement gérée. Si le mot de passe de la base de données a expiré et que l'application Oracle Forms exécutée en mode SSO est utilisée pour le renouveler, alors le nouveau mot de passe entré par l'utilisateur est utilisé pour mettre à jour le Resource Access Descriptor (RAD) dans l'OID pour cette application. Cela garantit que le Single Sign-On continue de fonctionner même lorsqu'un mot de passe de base de données a changé. Aucune configuration n'est nécessaire pour activer cette fonctionnalité, elle existe par défaut.

Mise à niveau d'Oracle Forms de 9i ou 10g vers la dernière version: Automatisez votre processus de mise à niveau Oracle Forms avec ORMIT™-Forms

Mettre à niveau Oracle Forms à partir de versions plus anciennes, obsolètes ou dépréciées est essentiel pour maintenir des performances, une sécurité et une compatibilité optimales. Les versions plus récentes d'Oracle Forms offrent des fonctionnalités améliorées, des interfaces utilisateur perfectionnées et une meilleure intégration avec les technologies modernes, garantissant un fonctionnement fluide dans les environnements informatiques dynamiques d'aujourd'hui. Les mises à jour de sécurité et les correctifs des dernières versions protègent contre les vulnérabilités susceptibles de compromettre les données sensibles. De plus, les versions plus récentes prennent en charge les systèmes d'exploitation et les navigateurs les plus récents, améliorant ainsi l'accessibilité et l'expérience utilisateur. La mise à niveau apporte également une conformité aux normes actuelles, réduisant le risque de problèmes juridiques et opérationnels. En outre, le support d'Oracle pour les versions obsolètes est limité voire inexistant, rendant le dépannage et la maintenance de plus en plus difficiles. En mettant à niveau, les organisations peuvent tirer parti des dernières innovations d'Oracle, rationaliser les processus et garantir un développement et un déploiement d'applications robustes, évolutifs et sécurisés. Investir dans une mise à niveau est une démarche stratégique pour pérenniser les applications et maximiser le retour sur investissement.

ORMIT™-Forms automatise chaque mise à niveau d'Oracle Forms depuis toutes les versions antérieures jusqu'aux versions les plus récentes. ORMIT™-Forms garantit le succès global de votre mise à niveau Oracle Forms avec un accent sur l'efficacité, les économies de coûts et de temps, en éliminant tout risque potentiel. Le processus automatisé est extrêmement rapide et sécurisé. Il automatise une grande quantité d'actions tout en éliminant les approximations associées aux mises à niveau manuelles. ORMIT™-Forms minimise également les temps d'arrêt et identifie les tâches manuelles nécessitant une intervention de DBA.

Oracle Forms Upgrade

Migrer vers Java à partir d'Oracle Forms 9i ou 10g : un moyen facile d'économiser en évitant les nombreuses mises à niveau vers la dernière version avec ORMIT-OpenJava

Mettre à niveau Oracle Forms à partir de versions anciennes, obsolètes ou dépréciées est essentiel pour maintenir des performances optimales, la sécurité et la compatibilité. Les versions plus récentes d'Oracle Forms offrent des fonctionnalités améliorées, des interfaces utilisateur optimisées et une meilleure intégration avec les technologies modernes, assurant ainsi un fonctionnement fluide dans les environnements informatiques dynamiques d'aujourd'hui. Les mises à jour de sécurité et les correctifs dans les versions les plus récentes protègent contre les vulnérabilités susceptibles de compromettre les données sensibles. De plus, les versions plus récentes prennent en charge les systèmes d'exploitation et les navigateurs les plus récents, améliorant ainsi l'accessibilité et l'expérience utilisateur. La mise à niveau assure également la conformité aux normes actuelles, réduisant le risque de problèmes juridiques et opérationnels. De plus, le support d'Oracle pour les versions obsolètes est limité ou inexistant, rendant le dépannage et la maintenance de plus en plus difficiles. En mettant à niveau, les organisations peuvent tirer parti des dernières innovations d'Oracle, rationaliser les processus et garantir un développement et un déploiement d'applications robustes, évolutifs et sécurisés. Investir dans une mise à niveau est une démarche stratégique pour pérenniser les applications et maximiser le retour sur investissement.

ORMIT™-Forms automatise chaque mise à niveau d'Oracle Forms à partir de toutes les versions antérieures vers les dernières versions. ORMIT™-OpenJava garantit le succès global de votre mise à niveau d'Oracle Forms en mettant l'accent sur l'efficacité, les économies de coûts et de temps, tout en éliminant tout risque potentiel. Le processus automatisé est extrêmement rapide et sécurisé. Il automatise une grande quantité d'actions tout en éliminant les approximations associées aux mises à niveau manuelles. ORMIT™-Forms minimise également les temps d'arrêt et identifie les tâches manuelles nécessitant l'intervention d'un DBA.

Migration Oracle Forms

Tous les articles