Configuration du bloc de construction d'instructions de travail pour l'utilisateur de session (authentification Windchill)
L'option d'authentification Utilisateur de session utilise Windchill pour s'authentifier auprès de ThingWorx. Lorsqu'un utilisateur accède à ThingWorx, il est dirigé vers Windchill pour s'authentifier. Une fois qu'il a été authentifié, l'utilisateur est redirigé vers ThingWorx. Cette configuration nécessite que le même utilisateur existe à la fois dans Windchill et ThingWorx.
ThingWorx comprend une option de configuration permettant de créer automatiquement des utilisateurs dans ThingWorx une fois qu'ils ont été authentifiés dans Windchill. Si cette option de configuration n'est pas sélectionnée, les utilisateurs devront alors être créés indépendamment à la fois dans Windchill et ThingWorx. L'utilisateur ThingWorx doit être ajouté au groupe d'utilisateurs ThingWorx approprié afin de pouvoir accéder aux entités et services du bloc de construction d'instructions de travail. Si vous sélectionnez l'option permettant de créer automatiquement des utilisateurs dans ThingWorx, vous pouvez désigner le groupe d'utilisateurs auquel ils seront automatiquement ajoutés.
La configuration du bloc de construction d'instructions de travail pour utiliser l'option d'authentification Utilisateur de session nécessite des configurations dans Windchill, ThingWorx et le bloc de construction d'instructions de travail.
Conditions requises pour l'authentification Windchill
Windchill doit être configuré pour SSL.
ThingWorx doit être configuré pour SSL.
Configuration du bloc de construction d'instructions de travail et de ThingWorx pour utiliser l'authentification Windchill
Procédez comme suit pour configurer le bloc de construction d'instructions de travail et ThingWorx pour utiliser Windchill pour l'authentification :
1. Déclarez les certificats du serveur Windchill auprès de l'instance Java de ThingWorx. Pour cela, importez le certificat (racine) dans le keystore Java utilisé par ThingWorx.
2. Si le paramètre EnableSSO apparaît dans le fichier platform-settings.json pour ThingWorx, définissez-le sur faux, puis redémarrez votre serveur ThingWorx. Sinon, passez directement à l'étape 3.
3. Créez une nouvelle forme de données dans ThingWorx nommée CustomHeadersDataShape. Sous Définitions de champ, créez les deux définitions de champ suivantes avec un Type de base=Chaîne :
Accept-Language
Authorization
4. Créez un doublon de l'objet PTC.SCA.SCO.MPMLink_ODataConnector pour vos configurations, car les personnalisations, telles que le remplacement d'un service, doivent être effectuées sur un double. Pour plus d'informations, consultez les rubriques Configuration du connecteur OData MPMLink et Duplication d'entités de bloc de construction.
a. Sous Configuration, définissez les valeurs suivantes :
Sous Paramètres de connexion au connecteur générique, sélectionnez Aucun comme Type d'authentification.
Sous Paramètres CSRF, entrez /servlet/odata pour URL relative pour requête Get CSRF.
Sous Paramètres de connexion au connecteur HTTP :
Laissez les champs Nom d'utilisateur et Mot de passe vides.
Sous URL de base, entrez https://<nom_hôte Windchill>:<port>/Windchill/sslClientAuth, où <nom_hôte Windchill> et <port> sont les valeurs appropriées pour votre système Windchill.
Sous URL relative, entrez /servlet/odata.
Sous URL de connexion, entrez /servlet/WindchillGW/wt.httpgw.HTTPServer/ping.
Cliquez sur Enregistrer.
b. Sous Services, remplacez le service GetCustomHeaderParameters. Ajoutez le code suivant au service :
var Language = Resources["CurrentSessionInfo"].GetCurrentUserLanguage();
var params = {
infoTableName: "InfoTable",
dataShapeName: "CustomHeadersDataShape"
};
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
params = {
tableName: "GenericConnectorConnectionSettings" /* STRING */
};
var configTable = me.GetConfigurationTable(params);
var row = configTable.getRow(0);
var authType = row.getStringValue("AuthenticationType");
if ("None".equals(authType)) {
var CurrentUser = Resources["CurrentSessionInfo"].GetCurrentUser();
var baseEncodedStr = base64EncodeString(CurrentUser + ':');
var authHeaderValue = "Basic " + baseEncodedStr;
row = {
"Accept-Language": Language,
"Authorization": authHeaderValue
};
} else {
row = {
"Accept-Language": Language
};
}
result.AddRow(row);
c. Cliquez sur Terminé.
d. Cliquez sur Enregistrer.
5. Ouvrez l'objet PTC.SCA.SCO.MPMLinkWorkDefinitionConverter pour le modifier. Assurez-vous que le champ Connecteur fait référence au connecteur en double que vous avez configuré à l'étape 4.
6. Ouvrez l'objet PTC.SCA.SCO.OperatorAdvisorContentProxyMediaEntity pour le modifier. Sous Configuration, définissez les valeurs suivantes :
Sous Informations de connexion à la source de contenu :
Sélectionnez la case à cocher Contenu dynamique.
Sous URL, saisissez https://<nom_hôte Windchill>:<port>, où <nom_hôte Windchill> et <port> sont les valeurs appropriées pour votre système Windchill.
Sélectionnez la case à cocher Ignorer les erreurs SSL.
Sous Type d'authentification, sélectionnez Utilisateur de session.
Laissez les champs Nom d'utilisateur et Mot de passe vides.
Sous URL de connexion test, entrez https://<nom_hôte Windchill>:<port>/Windchill/sslClientAuth/servlet/odata, où <nom_hôte Windchill> et <port> sont les valeurs appropriées pour votre système Windchill.
Sous Configuration de connexion SSL, définissez les valeurs suivantes :
Sous Chemin du magasin de clés SSL, entrez le chemin d'accès au keystore ThingWorx.
Sous Mot de passe du magasin de clés SSL, entrez le mot de passe de votre keystore ThingWorx.
Sous Chemin du magasin d'approbations SSL, entrez le chemin d'accès au truststore.
Sous Mot de passe du magasin d'approbations SSL, entrez le mot de passe de votre truststore.
Sous Configuration utilisateur de la session, pour Paramètre de requête utilisateur de session, entrez wt.effectiveUid
7. Cliquez sur Enregistrer.
8. Configurez Integration Runtime. Pour plus d'informations, consultez la rubrique Configuration d'Integration Runtime.
9. Testez la configuration pour ThingWorx :
a. Accédez à l'objet PTC.SCA.SCO.MPMlink_ODataConnector à partir de l'étape 4.
b. Sous Services, exécutez le service ValidateConnection. Le résultat suivant confirme que la connexion a été établie :
Sortie du service ValidateConnection.
Configuration de l'authentificateur de fournisseur d'identité PTC
* 
Avant de configurer l'authentificateur de fournisseur d'identité PTC, assurez-vous que la dernière extension ptc-windchill-extension-[ReleaseVersion] est importée dans ThingWorx. Pour accéder à la dernière extension :
1. Téléchargez et décompressez le contenu du fichier PTC-Windchill-Extension-for-ThingWorx. Pour localiser le téléchargement, accédez à la page Télécharger un logiciel PTC, puis développez les dossiers suivants : PTC Smart Connected Applications > Release Apps > PTC Windchill Extension for ThingWorx.
2. Ouvrez le fichier ptc-windchill-extension-<version>.zip et supprimez le fichier ptc-thingview-extension.zip. Une version plus récente de ptc-thingview-extension.zip a déjà été importée dans le cadre du bloc de construction d'instructions de travail.
3. Importez le fichier ptc-windchill-extension-<version>.zip.
Pour configurer l'authentificateur de fournisseur d'identité PTC, procédez comme suit :
1. Dans ThingWorx Composer, accédez à Sécurité > Authentificateurs dans le volet de navigation.
2. Ouvrez ptc-identity-provider-authenticator.
3. Sous Informations générales :
Sélectionnez la case à cocher Activé.
Sous Priorité, entrez la valeur appropriée. La valeur par défaut est 1, ce qui indique que cet authentificateur est le premier authentificateur à exécuter. La valeur de Priorité est importante si vous souhaitez implémenter des vérifications par plusieurs authentificateurs. Si l'authentificateur ayant la priorité 1 échoue, l'authentificateur suivant effectue le contrôle d'authentification, et ainsi de suite.
4. Sous Configuration :
Sous Configuration de l'authentificateur, vous pouvez configurer les deux options CreateUserDynamically et HomeMashup.
CreateUserDynamically : lorsque cette option est sélectionnée, l'authentificateur crée automatiquement un utilisateur dans ThingWorx si l'utilisateur n'existe pas encore et s'il a été authentifié par Windchill. Si la case n'est pas cochée, le navigateur est toujours dirigé vers Windchill pour l'authentification, mais ne parvient pas à ouvrir ThingWorx si l'utilisateur n'existe pas dans ThingWorx.
HomeMashup : affecte une application composite d'accueil aux utilisateurs nouvellement créés. Si aucune application composite d'accueil n'est spécifiée, ThingWorx dirige le navigateur vers la page de recherche de ThingWorx.
Sous User Configuration, ajoutez un UserGroup. Il s'agit du groupe d'utilisateurs auquel les utilisateurs ThingWorx créés dynamiquement sont automatiquement ajoutés. Sélectionnez un groupe d'utilisateurs qui permet d'accéder aux entités et services du bloc de construction d'instructions de travail.
5. Cliquez sur Enregistrer.
Ajout de filtres Servlet à la configuration Tomcat
Le filtre d'authentification du fournisseur d'identité Windchill est utilisé pour rediriger un utilisateur ThingWorx non authentifié vers le formulaire de connexion Windchill pour procéder à l'authentification. Une fois l'authentification terminée, l'application ThingWorx reçoit une clé et un nom d'utilisateur.
Le côté ThingWorx du filtre est configuré dans le fichier web.xml situé dans le répertoire d'installation de ThingWorx Tomcat :
1. Arrêtez Tomcat et Integration Runtime.
2. Ouvrez le fichier PTC-Windchill-Extension-for-ThingWorx précédemment téléchargé, puis copiez le fichier ptc-identity-provider-authentication-filter-<version>.jar du répertoire idp vers le répertoire WEB-INF/lib de l'installation Tomcat de ThingWorx.
3. Accédez au fichier <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml.
4. Effectuez une copie du fichier web.xml et enregistrez-le à un emplacement connu.
5. Remplacez le fichier <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml par le fichier web.xml dans le répertoire \idp\twx-8.x.x du fichier PTC-Windchill-Extension-for-ThingWorx précédemment téléchargé.
6. Ouvrez ce fichier web.xml, puis ajoutez les détails de votre serveur Windchill aux entrées IdentityProviderAuthenticationFilter et IdentityProviderKeyValidatorFilter dans le format suivant :
[http or https]://[Windchill-host]:[Windchill-port]/[Windchill WebApp name]
Le [nom application Web Windchill] peut être récupéré en effectuant une recherche sur wt.webapp.name dans <Windchill>\codebase\wt.properties.
7. Démarrez Tomcat et Integration Runtime.
Autres configurations Windchill
1. Créez un fichier ca-bundle.crt dans <ACCUEIL_SERVEUR_HTTP>\conf\.
2. Modifiez le fichier ca-bundle.crt :
Ajoutez le contenu du certificat SSL du serveur Windchill
Ajoutez le contenu du certificat SSL de ThingWorx
* 
Si Windchill est configuré avec un certificat de chaîne SSL tiers, ajoutez ou copiez le contenu des certificats Windchill et ThingWorx dans ca-bundle.crt dans l'ordre suivant :
a. Certificat racine Windchill
b. Certificat intermédiaire Windchill
c. Certificat de serveur Windchill
d. Certificat ThingWorx
3. Enregistrez le fichier ca-bundle.crt.
4. Créez un fichier sslclientauth.conf dans <ACCUEIL_SERVEUR_HTTP>\conf\sslvhostconf.d.
5. Modifiez le fichier sslclientauth. conf pour y ajouter la ligne suivante :
SSLCACertificateFile <CHEMIN>\ca-bundle.crt
Remplacez <CHEMIN> par le chemin d'accès au fichier ca-bundle.crt.
6. Enregistrez le fichier sslclientauth.conf.
7. Modifiez le fichier <ACCUEIL_SERVEUR_HTTP>\conf\conf.d\20-mod_ssl.conf :
Supprimez le commentaire de la ligne contenant les éléments suivants (supprimez le caractère dièse (#) au début de la ligne) :
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
Supprimez le commentaire de la ligne contenant les éléments suivants :
SSLVerifyDepth
8. Enregistrez le fichier 20-mod_ssl.conf.
9. Modifiez le fichier <ACCUEIL_SERVEUR_HTTP>\conf\httpd.conf. Assurez-vous que les lignes suivantes ne sont pas commentées (supprimez es caractères dièse (#) au début de ces lignes) :
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
10. Enregistrez le fichier httpd.conf.
11. Ouvrez le fichier <ACCUEIL_SERVEUR_HTTP>\conf\conf.d\30-app-Windchill-Auth.conf. Confirmez qu'une entrée sslClientAuth similaire celle qui suit est présente :
# SSL client certificate authenticated resources
<IfModule ssl_module>
<LocationMatch ^/+Windchill/+sslClientAuth(;.*)?>
Require all granted
SSLVerifyClient require
SSLOptions +ExportCertData
</LocationMatch>
</IfModule>
12. Redémarrez le serveur HTTP de PTC avec l'option -DSSL pour activer SSL.
13. Modifiez le fichier <Windchill>\codebase\WEB-INF\web.xml.
a. Localisez <filter-name>TrustedSSLAuthFilter</filter-name>.
b. Ajouter une nouveau paramètre init-param à la suite de celui-ci :
<init-param>
<param-name>trustedSubjectPattern.1</param-name>
<param-value>.*[hostname].* </param-value>
</init-param>
Utilisez le nom d'hôte de l'objet du certificat pour [hostname]. Par exemple, si l'objet est CN=mycompany.domain.com, utilisez mycompany pour [hostname].
14. Enregistrez le fichier web.xml.
15. Redémarrez Windchill.
Vérification de votre configuration
Le même nom d'utilisateur administrateur doit être reconnu par Windchill et ThingWorx. Pour cela, les deux options suivantes sont possibles :
Si vous n'avez pas apporté de modifications à Windchill, un utilisateur administrateur nommé Administrator a été créé lors de l'installation de Windchill. A l'aide d'un système ThingWorx configuré, vous pouvez vous authentifier à l'aide de cet utilisateur et disposer des droits d'accès administrateur complets dans ThingWorx.
Si vous avez modifié Windchill et qu'il n'existe plus d'utilisateur nommé Administrator, vous devez choisir un nom d'utilisateur commun à Windchill et à ThingWorx, puis l'ajouter dans ThingWorx au groupe d'utilisateurs Administrateurs.
Pour vérifier la configuration de l'authentification Windchill, entrez l'URL de ThingWorx dans un navigateur. Le navigateur est redirigé vers Windchill pour l'authentification. Entrez les informations d'identification de Windchill pour Administrator (ou un autre utilisateur configuré comme administrateur ThingWorx). Le navigateur est redirigé vers ThingWorx Composer. Vérifiez que vous exécutez à présent ThingWorx en tant que cet utilisateur. Cette vérification permet de vous assurer que ThingWorx est correctement configuré avec l'authentification Windchill.
Si vous avez opté pour la création automatique d'utilisateurs par l'authentificateur, vérifiez son fonctionnement. Pour ce faire, entrez l'URL de ThingWorx dans un navigateur. Vous êtes alors redirigé vers Windchill pour l'authentification. Entrez les informations d'identification Windchill d'un utilisateur qui n'existe pas dans ThingWorx. Le navigateur est redirigé vers ThingWorx, vers la page spécifiée comme application composite d'accueil pour les utilisateurs créés dynamiquement. Vérifiez que vous êtes maintenant en train d'exécuter ThingWorx sous le nom de cet utilisateur.
Est-ce que cela a été utile ?