Création de connexions PingFederate
Dans PingFederate, créez les points de terminaison client auxquels les applications de votre solution SSO se connectent pour obtenir ou vérifier les jetons d'accès ou authentifier les utilisateurs. Il est recommandé de créer un client distinct pour chaque rôle qu'une application remplira dans votre solution d'authentification unique. Vous pouvez ainsi définir avec précision les paramètres du client pour un rôle spécifique.
Pour l'authentification unique ThingWorx, les clients suivants doivent être créés dans PingFederate :
Connexion de type fournisseur de services (SP) pour ThingWorx en tant que fournisseur de services
Client OAuth pour ThingWorx en tant que fournisseur de services
Pour en savoir plus sur la création et la configuration des connexions PingFederate, reportez-vous à la documentation de PingFederate ou contactez le support client PingIdentity. Les procédures suivantes contiennent des paramètres requis pour l'authentification SSO ThingWorx. D'autres paramètres peuvent cependant être requis pour la solution d'authentification unique de votre entreprise.
Connexion de type fournisseur de services (SP) pour ThingWorx en tant que fournisseur de services
Cette connexion est utilisée pour l'authentification SAML. ThingWorx dirige vers PingFederate les requêtes de connexion de l'utilisateur.
1. Sur la page IDP Configuration, sélectionnez SP Connections, puis cliquez sur Create New.
2. Dans la section Connection Type, sélectionnez l'option Browser SSO Profiles pour spécifier le protocole SAML 2.0.
3. Dans la section Connection Options, sélectionnez Browser SSO.
4. Dans la section General Info, effectuez les opérations suivantes :
a. Définissez Partner's Entity ID (Connection ID) sur une valeur unique. Notez cet ID car il sera requis lors de la configuration du fichier sso-settings.json.
b. Fournissez un nom descriptif dans le champ Connection Name. Il s'agit du nom qui est affiché dans la liste des connexions de type SP.
c. Définissez Base URL sur l'URL d'hébergement du fournisseur de services de votre application Web (ThingWorx).
5. Dans la section Protocol Settings, définissez Assertion Consumer Service URL Endpoint sur URL:/Thingworx/saml/SSO.
6. Dans la section Credentials, définissez Digital Signature Settings sur Selected Certificate.
7. Dans la section Signature Verification, ajoutez un certificat pour les éléments suivants :
Signature Verification Certificate: Selected Certificate
Signature Verification Certificate: Selected Encryption Certificate
Select XML Encryption Certificate: Selected Encryption Certificate
8. Confirmez que le nouveau fournisseur de services est actif. Affichez la connexion SP. Un indicateur de bouton d'option en haut de la page Activation & Summary doit être défini sur Active.
9. Cliquez sur Enregistrer.
PingFederate utilise un mécanisme appelé contrat de règlement pour relier les connexions entre les fournisseurs de services et le fournisseur d'identité sur lequel repose PingFederate. Vous devrez créer un contrat de règlement pour cette connexion de type fournisseur de services. Lorsque vous procèderez, listez les attributs devant être échangés dans les assertions SAML.
Pour en savoir plus, consultez la section "Working with Third-Party Identity Providers" du manuel anglais PTC Single Sign-on Architecture and Configuration Overview (Guide de présentation de la configuration et de l'architecture d'authentification unique PTC).
Client OAuth pour ThingWorx en tant que fournisseur de services
Le client OAuth constitue un point de connexion permettant à PingFederate de fournir les jetons d'accès à ThingWorx. ThingWorx utilise ces jetons d'accès pour demander auprès des fournisseurs de ressources les ressources protégées par OAuth.
1. Sur la page OAuth Settings, sélectionnez Clients, puis cliquez sur Create New.
2. Dans le champ Client ID, entrez une valeur. Elle sera utilisée pour le paramètre AuthorizationServersSettings.<AuthServerId>.clientId lors de la configuration du fichier sso-settings.json.
3. Sélectionnez Client Secret, puis entrez une valeur de clé secrète client. Notez-la car elle sera utilisée pour le paramètre AuthorizationServersSettings.<AuthServerId>.clientSecret lors de la configuration du fichier sso-settings.json.
4. Dans le champ Name, saisissez une valeur. Elle sera affichée dans la liste des clients de PingFederate.
5. Dans le champ Description, saisissez une description.
6. Dans la section Redirect URIS, entrez l'URI de redirection du serveur ThingWorx. Par exemple : http://<monserveur>:<monport>/Thingworx/oauth2_authorization_code_redirect, où <monserveur> correspond à votre serveur ThingWorx.
* 
Si vous avez installé sur une instance de ThingWorx Core que vous configurez pour l'authentification unique (SSO), spécifiez cette valeur sous la forme https://<nom-hôte Nginx ThingWorx Flow>:<numéro-port Nginx ThingWorx Flow>/Thingworx/oauth2_authorization_code_redirect.
7. Dans la section Allow Grant Types, sélectionnez Refresh Token et Authorization Code.
8. Dans la section Persistent Grants Expiration, sélectionnez Grants Do Not Expire.
9. Dans la section Refresh Token Rolling Policy, sélectionnez Roll.