Configurazione del building block delle istruzioni di lavorazione per l'utente della sessione (autenticazione Windchill)
L'opzione di autenticazione Utente sessione utilizza Windchill per l'autenticazione con ThingWorx. Quando un utente accede a ThingWorx, viene indirizzato a Windchill per l'autenticazione. Dopo avere eseguito l'autenticazione, l'utente viene reindirizzato a ThingWorx. Questa configurazione richiede che lo stesso utente esista sia in Windchill che in ThingWorx.
ThingWorx include un'opzione di configurazione per la creazione automatica di utenti in ThingWorx dopo che sono stati autenticati in Windchill. Se questa opzione di configurazione non è selezionata, gli utenti devono esistere in modo indipendente sia in Windchill che in ThingWorx. Per poter accedere alle entità e ai servizi del building block delle istruzioni di lavorazione, l'utente di ThingWorx deve essere aggiunto al gruppo di utenti di ThingWorx appropriato. Se si seleziona l'opzione per la creazione automatica di utenti in ThingWorx, è possibile designare il gruppo di utenti a cui vengono aggiunti automaticamente.
La configurazione del building block delle istruzioni di lavorazione per l'uso dell'opzione di autenticazione Utente sessione richiede le configurazioni in Windchill, ThingWorx e nel building block delle istruzioni di lavorazione.
Prerequisiti per l'autenticazione Windchill
Windchill deve essere configurato per SSL.
ThingWorx deve essere configurato per SSL.
Configurazione del building block delle istruzioni di lavorazione e di ThingWorx per l'uso dell'autenticazione Windchill
Completare le operazioni di seguito indicate per configurare il building block delle istruzioni di lavorazione e ThingWorx per l'uso di Windchill per l'autenticazione.
1. Fare in modo che l'istanza Java di ThingWorx riconosca i certificati per il server Windchill. Importare il certificato (radice) nel keystore Java utilizzato da ThingWorx.
2. Se l'opzione EnableSSO viene visualizzata nel file platform-settings.json per ThingWorx, impostarla su false e riavviare il server ThingWorx. In caso contrario, procedere al passo 3.
3. Creare una nuova data shape CustomHeadersDataShape in ThingWorx. In Definizioni campi, creare le seguenti due definizioni di campo con Tipo di base=String:
Accept-Language
Authorization
4. Creare un duplicato dell'oggetto PTC.SCA.SCO.MPMLink_ODataConnector per le proprie configurazioni, perché le personalizzazioni, ad esempio la sostituzione di un servizio, devono essere eseguite su un duplicato. Per ulteriori informazioni, vedere Configurazione del connettore OData per MPMLink e Duplicazione delle entità del building block.
a. In Configurazione, impostare i valori riportati di seguito.
In Impostazioni connessione connettore generico, selezionare Nessuna come Tipo di autenticazione.
In Impostazioni CSRF, immettere /servlet/odata come URL relativo per richiesta Get CSRF.
In Impostazioni connessione connettore HTTP, eseguire le operazioni riportate di seguito.
Lasciare vuoti i campi Nome utente e Password.
Nel campo URL base, immettere https://<nomehost Windchill>:<porta>/Windchill/sslClientAuth, dove <nomehost Windchill> e <porta> sono i valori relativi al sistema Windchill.
Nel campo URL relativo immettere /servlet/odata
Nel campo URL connessione immettere /servlet/WindchillGW/wt.httpgw.HTTPServer/ping.
Fare clic su Salva.
b. In Servizi sostituire il servizio GetCustomHeaderParameters. Aggiungere il codice seguente al servizio:
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. Fare clic su Fine.
d. Fare clic su Salva.
5. Aprire l'oggetto PTC.SCA.SCO.MPMLinkWorkDefinitionConverter per la modifica. Assicurarsi che il campo Connettore faccia riferimento al connettore duplicato configurato al passo 4.
6. Aprire l'oggetto PTC.SCA.SCO.OperatorAdvisorContentProxyMediaEntity per la modifica. In Configurazione, impostare i valori riportati di seguito.
In Informazioni connessione origine contenuto, eseguire le operazioni riportate di seguito.
Selezionare la casella di controllo Contenuto dinamico.
Nel campo URL, immettere https://<nomehost Windchill>:<porta>, dove <nomehost Windchill> e <porta> sono i valori relativi al sistema Windchill.
Selezionare la casella di controllo Ignora errori SSL.
Nel campo Tipo di autenticazione, selezionare Utente sessione.
Lasciare vuoti i campi Nome utente e Password.
Nel campo URL test connessione, immettere https://<nomehost Windchill>:<porta>/Windchill/sslClientAuth/servlet/odata, dove <nomehost Windchill> e <porta> sono i valori relativi al sistema Windchill.
In Configurazione connessione SSL, impostare i valori riportati di seguito.
Nel campo Percorso keystore SSL, immettere il percorso del keystore ThingWorx
Nel campo Password keystore SSL, immettere la password del keystore ThingWorx
Nel campo Percorso truststore SSL, immettere il percorso del truststore.
Nel campo Password truststore SSL, immettere la password del truststore.
In Configurazione utente sessione , nel campo Parametro di interrogazione utente sessione, immettere wt.effectiveUid
7. Fare clic su Salva.
8. Impostare Integration Runtime. Per ulteriori informazioni, vedere Configurazione di Integration Runtime.
9. Testare la configurazione per ThingWorx.
a. Passare all'oggetto PTC.SCA.SCO.MPMlink_ODataConnector del passo 4.
b. In Servizi, eseguire il servizio ValidateConnection. Il risultato illustrato di seguito conferma l'esito positivo della connessione:
Output del servizio ValidateConnection.
Configurazione di PTC Identity Provider Authenticator
* 
Prima di configurare PTC Identity Provider Authenticator, verificare che l'estensione ptc-windchill-extension-[VersioneRelease] più recente sia importata in ThingWorx. Per accedere all'ultima estensione, attenersi alla procedura riportata di seguito.
1. Scaricare e decomprimere il contenuto del file PTC-Windchill-Extension-for-ThingWorx. Per individuare il file da scaricare, accedere alla pagina PTC Software Download ed espandere le seguenti cartelle: PTC Smart Connected Applications > Release Apps > PTC Windchill Extension for ThingWorx.
2. Aprire il file ptc-windchill-extension-<versione>.zip ed eliminare il file ptc-thingview-extension.zip. Una versione più recente di ptc-thingview-extension.zip è già stata importata come parte del building block delle istruzioni di lavorazione.
3. Importare il file ptc-windchill-extension-<versione>.zip.
Per configurare PTC Identity Provider Authenticator, attenersi alla procedura descritta di seguito.
1. In ThingWorx Composer, accedere a Protezione > Autenticatori nel riquadro di navigazione.
2. Aprire il file ptc-identity-provider-authenticator.
3. In Informazioni generali, eseguire le operazioni descritte di seguito.
Selezionare la casella di controllo Attivato.
Immettere un valore appropriato nel campo Priorità. Per default, il valore è 1, a indicare che questo autenticatore è il primo autenticatore da eseguire. Il valore del campo Priorità è importante se si desidera implementare i controlli da più autenticatori. Se l'autenticatore con priorità 1 ha esito negativo, il controllo di autenticazione viene eseguito dall'autenticatore successivo e così via.
4. In Configurazione, eseguire le operazioni descritte di seguito.
In Configurazione autenticatore sono presenti due opzioni da configurare: CreateUserDynamically e HomeMashup.
CreateUserDynamically - Se questa opzione è selezionata, l'autenticatore crea automaticamente un utente in ThingWorx, se l'utente non esiste ancora ed è stato autenticato da Windchill. Se la casella di controllo non è selezionata, il browser viene comunque indirizzato a Windchill per l'autenticazione, ma non riesce ad aprire ThingWorx se l'utente non esiste anche in ThingWorx.
HomeMashup - Assegna un mashup di default ai nuovi utenti creati. Se non è specificato alcun mashup di default, ThingWorx indirizza il browser alla pagina di ricerca di ThingWorx.
In User Configuration, aggiungere un UserGroup. Si tratta del gruppo di utenti a cui vengono aggiunti automaticamente gli utenti di ThingWorx creati dinamicamente. Selezionare un gruppo di utenti che fornisce l'accesso alle entità e ai servizi del building block delle istruzioni di lavorazione.
5. Fare clic su Salva.
Aggiungere filtri servlet alla configurazione di Tomcat
Il filtro di autenticazione del provider di identificativi di Windchill viene utilizzato per reindirizzare un utente non autenticato di ThingWorx al modulo di accesso di Windchill per l'autenticazione. Dopo aver completato l'autenticazione, l'applicazione ThingWorx riceve una chiave e un nome utente.
La parte ThingWorx del filtro viene configurata nel file web.xml che si trova nella directory di installazione di Tomcat per ThingWorx.
1. Arrestare Tomcat e Integration Runtime.
2. Aprire il file PTC-Windchill-Extension-for-ThingWorx precedentemente scaricato e copiare il file ptc-identity-provider-authentication-filter-<versione>.jar dalla directory idp alla directory WEB-INF/lib dell'installazione di ThingWorx Tomcat.
3. Accedere al file <Tomcat ThingWorx>\webapps\Thingworx\WEB-INF\web.xml.
4. Creare una copia del file web.xml e salvarla in una posizione nota.
5. Sostituire il file <Tomcat ThingWorx>\webapps\Thingworx\WEB-INF\web.xml con il file web.xml della directory \idp\twx-8.x.x del file PTC-Windchill-Extension-for-ThingWorx scaricato in precedenza.
6. Aprire il file web.xml e aggiungere i dettagli del server Windchill alle voci IdentityProviderAuthenticationFilter e IdentityProviderKeyValidatorFilter nel formato seguente:
[http or https]://[Windchill-host]:[Windchill-port]/[Windchill WebApp name]
È possibile trovare il [nome WebApp Windchill] cercando wt.webapp.name in <Windchill>\codebase\wt.properties.
7. Avviare Tomcat e Integration Runtime.
Configurazioni aggiuntive di Windchill
1. Creare un file ca-bundle.crt in <HOME_DIRECTORY_HTTPSERVER>\conf\.
2. Modificare il file ca-bundle.crt, eseguendo le operazioni descritte di seguito.
Aggiungere il contenuto del certificato SSL del server Windchill
Aggiungere il contenuto del certificato SSL di ThingWorx
* 
Se Windchill è configurato con un certificato di catena SSL di terze parti, aggiungere o copiare il contenuto dei certificati Windchill e ThingWorx nel file ca-bundle.crt nell'ordine riportato di seguito.
a. Certificato Windchill radice
b. Certificato Windchill intermedio
c. Certificato server Windchill
d. Certificato ThingWorx
3. Salvare il file ca-bundle.crt.
4. Creare un file sslclientauth.conf in <HOME_DIRECTORY_HTTPSERVER>\conf\sslvhostconf.d.
5. Modificare il file sslclientauth.conf aggiungendo la riga seguente:
SSLCACertificateFile <PERCORSO>\ca-bundle.crt
Sostituire <PERCORSO> con il percorso del file ca-bundle.crt.
6. Salvare il file sslclientauth.conf.
7. Modificare il file <HOME_DIRECTORY_HTTPSERVER>\conf\conf.d\20-mod_ssl.conf, eseguendo le operazioni descritte di seguito.
Rimuovere il commento dalla riga contenente il testo seguente (rimuovere il carattere cancelletto (#) all'inizio della riga):
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
Rimuovere il commento dalla riga contenente il testo seguente:
SSLVerifyDepth
8. Salvare il file 20-mod_ssl.conf.
9. Modificare il file <HOME_DIRECTORY_HTTPSERVER_>\conf\httpd.conf. Assicurarsi che le righe seguenti non siano commentate (rimuovere eventuali caratteri cancelletto (#) all'inizio delle righe):
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. Salvare il file httpd.conf.
11. Aprire il file <HOME_DIRECTORY_HTTPSERVER>\conf\conf.d\30-app-Windchill-Auth.conf. Verificare che sia presente una voce sslClientAuth simile alla seguente:
# SSL client certificate authenticated resources
<IfModule ssl_module>
<LocationMatch ^/+Windchill/+sslClientAuth(;.*)?>
Require all granted
SSLVerifyClient require
SSLOptions +ExportCertData
</LocationMatch>
</IfModule>
12. Riavviare PTC HTTP Server con l'opzione -DSSL per attivare SSL.
13. Modificare il file <Windchill>\codebase\WEB-INF\web.xml.
a. Individuare <filter-name>TrustedSSLAuthFilter</filter-name>.
b. Aggiungere un nuovo init-param dopo uno esistente:
<init-param>
<param-name>trustedSubjectPattern.1</param-name>
<param-value>.*[hostname].* </param-value>
</init-param>
Utilizzare il nome host dell'oggetto del certificato come [hostname]. Ad esempio, se l'oggetto è CN=mycompany.domain.com, utilizzare mycompany come [hostname].
14. Salvare il file web.xml.
15. Riavviare Windchill.
Verificare la configurazione
Sia Windchill che ThingWorx devono concordare il nome dell'utente amministratore. Considerare le opzioni descritte di seguito.
Se non sono state apportate modifiche in Windchill, durante l'installazione di Windchill è stato creato un utente amministratore denominato Administrator. Utilizzando un sistema ThingWorx configurato, è possibile eseguire l'autenticazione con le credenziali di quell'utente e disporre di diritti di accesso completi come utente amministratore in ThingWorx.
Se è stato modificato Windchill in modo che non sia presente alcun utente denominato Administrator, è necessario decidere un nome utente comune a Windchill e ThingWorx e aggiungerlo in ThingWorx al gruppo di utenti Administrators.
Per verificare la configurazione dell'autenticazione Windchill, aprire un browser usando l'URL ThingWorx. Il browser viene indirizzato a Windchill per l'autenticazione. Specificare le credenziali dell'utente Windchill per Administrator (o di un altro utente configurato per essere l'amministratore di ThingWorx). Il browser viene reindirizzato a ThingWorx Composer. Accertarsi di eseguire ThingWorx con il nome dell'utente specificato. In questo modo si verifica che ThingWorx sia configurato correttamente con l'autenticazione Windchill.
Se è stato selezionata l'opzione di creazione automatica degli utenti da parte dell'autenticatore, effettuarne il test. Per procedere con la verifica, aprire un browser usando l'URL ThingWorx. Si viene reindirizzati a Windchill per l'autenticazione. Specificare le credenziali Windchill di un utente che non esiste in ThingWorx. Il browser viene reindirizzato a ThingWorx, alla pagina specificata come mashup di default per gli utenti creati dinamicamente. Verificare che ora si stia eseguendo ThingWorx con il nome dell'utente specificato.
È stato utile?