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 à > . 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 :
◦ 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 à > .
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 à > . 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.
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 à > > > > . |
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 à > > > > . 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 à > > > > . 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 à > 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. |