Cree una integración de aplicaciones para ThingWorx en Okta
SAML
1. Inicie sesión en la consola de administración de Okta.
|
Para ello, debe ser administrador.
|
2. Vaya a > . A continuación, pulse en Create App Integration.
3. En la ventana Create a new application integration, seleccione SAML 2.0 como Sign-in method y, a continuación, pulse en Next:
4. En la ficha General Settings de la página Create SAML Integration, introduzca la siguiente información y, a continuación, pulse en Next.
◦ App name: asigne un nombre a la aplicación (por ejemplo, ThingworxSAML).
◦ App logo: (opcional) añada un logotipo para la aplicación
◦ App visibility: seleccione si desea mostrar o no el icono de la aplicación a los usuarios.
5. En la ficha Configure SAML, introduzca y seleccione la siguiente información:
◦ Single Sign On URL: introduzca http://<ThingWorx FQDN>:<port>/Thingworx/saml/SSO
| Deje seleccionada la casilla Use this for Recipient URL and Destination URL. |
◦ Audience URI (SP Entry ID): introduzca ThingWorxSP
◦ Default RelayState: deje este campo vacío
◦ Name ID format: seleccione Unspecified
◦ Application username: seleccione Okta username
◦ Update application username on: seleccione Create and update
6. Mientras sigue en la ficha Configure SAML, desplácese hacia abajo hasta ATTRIBUTE STATEMENTS.
7. Introduzca user.firstName en el campo Name, deje Unspecified para Name format y seleccione user.firstName para Value. Pulse Add another.
8. En el nuevo conjunto de campos de declaración de atributos, introduzca user.email en el campo Name, deje Unspecified para Name format y seleccione user.email para Value.
9. En Group Attribute Statements (optional), introduzca role en el campo Name, deje Unspecified para Name format e introduzca gr para Starts with.
10. Pulse Next. En la ficha Feedback, pulse Finish.
11. Se creará la integración de su aplicación y accederá a la ficha Sign On de la nueva aplicación.
12. En la ficha Sign On, pulse Copy bajo Metadata URL y péguelo en una nueva ficha del navegador. Cuando aparezca el contenido del fichero, pulse con el botón derecho en la página y seleccione Save as o Save Page As según el navegador que esté utilizando. Si utiliza Chrome o Edge, el fichero se descargará como un fichero XML.
| Simplemente copiar y pegar la salida puede crear problemas de formato, así que asegúrese de utilizar Save as. |
13. Navegue a la carpeta ThingworxPlatform de su sistema, y abra el fichero platform-settings.json, asegúrese de que se especifica lo siguiente como se muestra a continuación.
14. En la misma carpeta ThingworxPlatform de su sistema, abra la carpeta ssoSecurityConfig y, a continuación, abra el fichero sso-settings.json. Asegúrese de que se realizan las siguientes configuraciones en BasicSettings:
◦ idpMetadataFilePath—Especifique la ruta del fichero metadata_okta.xml que copió en el paso 11.
◦ metadataEntityId—Introduzca el valor del campo Audience Restriction (como se muestra en el paso 4) de su sección SAML Settings en la ficha General de la aplicación en Okta.
◦ samlAssertionUserNameAttributeName—Introduzca el nombre de user.email de la declaración de atributos que creó (en el paso 8).
15. Mientras aún se encuentra en el fichero sso-settings.json, asegúrese de que el parámetro enabled en ApplicationKeySettings está configurado como true.
16. A continuación, en el fichero sso-settings.json, desplácese hasta KeyManagerSettings y asegúrese de que se ha especificado lo siguiente:
17. Guarde y cierre el fichero sso-settings.json.
18. Reinicie ThingWorx.
19. Compruebe que la autenticación Okta se haya configurado correctamente utilizando las credenciales adecuadas para iniciar sesión en ThingWorx Composer como administrador.
20. Después de iniciar sesión, navegue hasta la ficha Configuration de ThingworxSSOAuthenticator, introduzca role en Groups para el atributo de grupo que creó en el paso 9.
| Si el intento de inicio de sesión falla con el error 403 App Not Assigned, asigne los usuarios a la aplicación ThingWorx en Okta e intente iniciar sesión de nuevo. |
OAuth 2.0
1. Inicie sesión en la consola de administración de Okta.
2. Vaya a > .
3. En la ventana Create App Integration, seleccione OIDC - OpenID Connect. Una vez seleccionada esta opción, aparecerá la sección Application type. Seleccione Web Application y pulse Next.
4. En General Settings, introduzca la siguiente información y pulse Save.
◦ App name: asigne un nombre a la aplicación (por ejemplo, ThingworxResourceProvider).
◦ Logo: (opcional) añada un logotipo para su aplicación
◦ Proof of possession: seleccione si desea o no requerir la cabecera de Demonstrating Proof of Possession (DPoP) en las solicitudes de tokens.
◦ Grant type: por defecto, la casilla Authorization code está seleccionada en Client acting on behalf of a user
◦ Sign-in redirect URIs: introduzca su URI de redirección de inicio de sesión. Por ejemplo, http://localhost:8515/Thingworx/oauth2_authorization_code_redirect
◦ Assignments: seleccione Skip group assignments for now
5. A continuación, navegue hasta > . En la ficha Authorization Servers, pulse default.
6. En la ficha Scopes, pulse Add Scope. Asígnele al ámbito el nombre THINGWORX y pulse en Create.
8. Navegue hasta la carpeta ThingworxPlatform de su sistema y abra el fichero resourceServerSettings.json. Especifique los siguientes valores:
Atributo | Valor |
userAuthenticationConverterUserNameAttribute | sub Este valor será el nombre de la notificación creada en el servidor de autorización default (predeterminado) en Okta. Este valor puede encontrarse navegando a > > > > . |
oathTokenEndPoint | Este valor será el mismo que el de token_endpoint en el URL de metadatos. Para encontrar este valor, abra la consola de administración de Okta y navegue hasta > > > > . Pulse en el URI de metadatos y busque el valor token_endpoint. Debería tener un aspecto similar al siguiente: https://<nombre_unívoco_de_servidor>.okta.com/oauth2/default/v1/token |
checkTokenEndpointUrl | Este valor será el mismo que el de introspection_endpoint en el URL de metadatos. Para encontrar este valor, abra la consola de administración de Okta y navegue hasta > > > > . Pulse en el URI de metadatos y busque el valor introspection_endpoint. Debería tener un aspecto similar al siguiente: https://<nombre_unívoco_de_servidor>.okta.com/oauth2/default/v1/introspect |
clientId | Este será el mismo valor que el campo Client ID para la aplicación ThingworxResourceProvider en Okta. Para encontrar este valor, abra la consola de administración de Okta y navegue hasta > en el panel de navegación izquierdo. Pulse en la aplicación ThingworxResourceProvider. En la ficha General, busque el campo Client ID en Client Credentials. |
clientSecret | Este será el mismo valor que el campo Client secret para la aplicación ThingworxResourceProvider en Okta. Para encontrar este valor, abra la consola de administración de Okta y pulse en Applications en el panel de navegación izquierdo. Pulse en la aplicación ThingworxResourceProvider. En la ficha General, busque la sección CLIENT SECRETS en Client Credentials. |