Préparation pour l'authentification unique (SSO) > Exemple de configuration Okta > Créer une intégration d'application pour ThingWorx dans Okta
  
Créer une intégration d'application pour ThingWorx dans Okta
SAML
1. Connectez-vous à Okta Admin Console.
* 
Vous devez être administrateur.
2. Accédez à Applications > Applications. Ensuite, cliquez sur Create App Integration.
3. Dans la fenêtre Create a new application integration, sélectionnez SAML 2.0 comme Sign-in method, puis cliquez sur Next :
4. Dans l'onglet General Settings de la page Create SAML Integration, entrez les informations suivantes, puis cliquez sur Next.
App name : donnez un nom à votre application (par exemple, ThingworxSAML).
App logo : (facultatif) ajoutez un logo à votre application.
App visibility : indiquez si vous souhaitez afficher ou non l'icône de l'application pour les utilisateurs.
5. Dans l'onglet Configure SAML, saisissez et sélectionnez les informations suivantes :
Single Sign On URL : saisissez http://<ThingWorx FQDN>:<port>/Thingworx/saml/SSO.
* 
Laissez la case à cocher Use this for Recipient URL and Destination URL désactivée.
Audience URI (SP Entry ID) : saisissez ThingWorxSP.
Default RelayState : laissez ce champ vide.
Name ID format : sélectionnez Unspecified.
Application username : sélectionnez Okta username.
Update application username on : sélectionnez Create and update.
6. Toujours dans l'onglet Configurer SAML, faites défiler vers le bas jusqu'à ATTRIBUTE STATEMENTS.
7. Saisissez user.firstName dans le champ Name, laissez Unspecified dans Name format et sélectionnez user.firstName pour Value. Cliquez sur Add Another.
8. Dans le nouveau jeu de champs d'instruction d'attribut, entrez user.email dans le champ Name, laissez Unspecified dans Name format, puis sélectionnez user.email pour Value.
9. Sous Group Attribute Statements (optional) saisissez role dans le champ Name, laissez Unspecified dans Name format et entrez gr dans Starts with.
10. Cliquez sur Next. Dans l'onglet Feedback, cliquez sur Finish.
11. L'intégration de votre application est créée et vous êtes redirigé vers l'onglet Sign On de la nouvelle application.
12. Dans l'onglet Sign On, cliquez sur Copy sous Metadata URL, puis collez l'URL dans un nouvel onglet de navigateur. Lorsque le contenu du fichier s'affiche, cliquez avec le bouton droit de la souris sur la page et sélectionnez Save As ou Save Page As selon le navigateur que vous utilisez. Si vous utilisez Chrome ou Edge, le fichier sera téléchargé en tant que fichier XML.
* 
Le simple fait de copier-coller la sortie peut créer des problèmes de formatage. Veillez donc à utiliser Save As.
13. Accédez au dossier ThingworxPlatform sur votre système et ouvrez le fichier platform-settings.json. Assurez-vous que les éléments suivants sont spécifiés comme indiqué ci-dessous.
14. Dans le même dossier ThingworxPlatform sur votre système, ouvrez le dossier ssoSecurityConfig, puis ouvrez le fichier sso-settings.json. Assurez-vous que les configurations suivantes sont effectuées sous BasicSettings :
* 
Pour plus d'informations sur le dossier ssoSecurityConfig et le fichier sso-settings.json, consultez les rubriques Création du répertoire ssoSecurityConfig et Configuration du fichier sso-settings.json dans le Centre d'aide ThingWorx.
idpMetadataFilePath : spécifiez le chemin d'accès au fichier que vous avez copié à l'étape metadata_okta.xml 11.
metadataEntityId : saisissez la valeur du champ Audience Restriction (comme indiqué à l'étape 4) de la section SAML Settings dans l'onglet General de l'application Okta.
samlAssertionUserNameAttributeName : entrez le nom user.email de l'instruction d'attribut que vous avez créée (à l'étape 8).
15. Lorsque vous êtes toujours dans le fichier sso-settings.json, assurez-vous que le paramètre enabled sous ApplicationKeySettings est défini sur true.
16. Ensuite, dans le fichier sso-settings.json, faites défiler jusqu'à KeyManagerSettings et assurez-vous que les éléments suivants sont spécifiés :
17. Enregistrez le fichier sso-settings.json, puis fermez-le.
18. Redémarrez ThingWorx.
19. Vérifiez que l'authentification Okta a été correctement configurée en utilisant les informations d'identification appropriées pour vous connecter à ThingWorx Composer en tant qu'administrateur.
20. Une fois la connexion établie, accédez à l'onglet Configuration de ThingworxSSOAuthenticator, puis entrez role dans Groups pour l'attribut de groupe créé à l'étape 9.
* 
Si la tentative de connexion échoue avec l'erreur 403 App Not Assigned, affectez les utilisateurs à l'application ThingWorx dans Okta et essayez de vous reconnecter.
OAuth 2.0
1. Connectez-vous à Okta Admin Console.
2. Accédez à Applications > Applications.
3. Dans la fenêtre Create App Integration, sélectionnez OIDC – OpenID Connect. Une fois que vous avez sélectionné cette option, la section Application type s'affiche. Sélectionnez Web Application et cliquez sur Next.
4. Sous General Settings, entrez les informations suivantes, puis cliquez sur Save.
App name : donnez un nom à votre application (par exemple, ThingworxResourceProvider).
Logo : (facultatif) ajoutez un logo pour votre application.
Proof of possession : indiquez si vous souhaitez ou non exiger l'en-tête "Demonstrating Proof of Possession" (DPoP) dans les demandes de jeton.
Grant type : par défaut, la case Authorization Code est cochée sous Client acting on behalf of a user.
Sign-in redirect URIs : entrez votre URI de redirection de connexion. Par exemple, http://localhost:8515/Thingworx/oauth2_authorization_code_redirect
Assignments : sélectionnez Skip group assignments for now.
5. Ensuite, accédez à Sécurité > API. Dans l'onglet Authorization Servers, cliquez sur default.
6. Dans l'onglet Scopes, cliquez sur Add Scope. Nommez l'étendue THINGWORX, puis cliquez sur Create.
7. Assurez-vous que ThingWorx a été configuré en tant que serveur de ressources avant de continuer. Pour plus d'informations, consultez la rubrique Configuration de ThingWorx en tant que serveur de ressources dans le Centre d'aide ThingWorx.
8. Accédez au dossier ThingworxPlatform de votre système, puis ouvrez le fichier resourceServerSettings.json. Spécifiez les valeurs suivantes :
Attribut
Valeur
userAuthenticationConverterUserNameAttribute
sub
Cette valeur correspondra au nom de la réclamation créée sur le serveur d'autorisation par défaut (default) dans Okta. Vous trouverez cette valeur en accédant à Security > API > Authorization Servers > default > Claims.
oathTokenEndPoint
Cette valeur sera identique à celle de token_endpoint dans l'URL des métadonnées. Pour trouver cette valeur, ouvrez Okta Admin Console et accédez à Security > API > Authorization Servers > default > Settings. Cliquez sur Metadata URI et recherchez la valeur de token_endpoint. Le code se présentera sous cette forme :
https://<nom_serveur_unique>.okta.com/oauth2/default/v1/token
checkTokenEndpointUrl
Cette valeur sera identique à celle de introspection_endpoint dans l'URL des métadonnées. Pour trouver cette valeur, ouvrez Okta Admin Console et accédez à Security > API > Authorization Servers > default > Settings. Cliquez sur Metadata URI et recherchez la valeur de introspection_endpoint. Le code se présentera sous cette forme :
https://<nom_serveur_unique>.okta.com/oauth2/default/v1/introspect
clientId
Il s'agit de la même valeur que celle du champ Client ID de l'application ThingworxResourceProvider dans Okta.
Pour trouver cette valeur, ouvrez Okta Admin Console et accédez à Applications > Applications dans le volet de navigation de gauche. Cliquez sur l'application ThingworxResourceProvider. Dans l'onglet General, recherchez le champ Client ID sous Client Credentials.
clientSecret
Il s'agit de la même valeur que celle du champ Client secret pour l'application ThingworxResourceProvider dans Okta.
Pour trouver cette valeur, ouvrez Okta Admin Console et cliquez sur Applications dans le panneau de navigation de gauche. Cliquez sur l'application ThingworxResourceProvider. Dans l'onglet General, accédez à la section CLIENT SECRETS sous Client Credentials.
9. Procurez-vous un jeton d'accès OAuth à l'aide de Postman. Pour plus d'informations, consultez la rubrique Obtention d'un jeton d'accès OAuth pour l'administrateur ThingWorx à l'aide de Postman.
10. Ensuite, vous allez créer une intégration d'application pour Experience Service.