Authentifizierungen erstellen
ThingWorx Flow kann jedes beliebige Authentifizierungsschema verarbeiten. Es verfügt über einen einfacheren Verarbeitungsmechanismus für OAuth, der durch Konfiguration eingerichtet werden kann. Jede andere Authentifizierung fällt unter der Verbindungsklassifikation und muss vom Konnektor-Entwickler beim Herstellen einer Verbindung mit dem Dienst über das Verbindungsobjekt codiert werden.
Die meisten Dienste erfordern irgendeine Form von Authentifizierung. Sie können einen Authentifizierungsmechanismus mithilfe der Befehle "add connection" und "add OAuth" hinzufügen. Die ThingWorx Flow Befehlszeilenschnittstelle und der ThingWorx Flow Server unterstützen OAuth 2.0- und OAuth 1.0-Authentifizierung.
In der folgenden Liste werden häufig verwendete Authentifizierungsmethoden beschrieben:
Basisauthentifizierung: Dies ist ein einfaches Authentifizierungsschema, das in das HTTP-Protokoll integriert ist. Sie müssen den Benutzernamen und das Passwort angeben, wenn Sie eine Anforderung machen.
API-Schlüssel-Authentifizierung: Ermöglicht den Zugriff auf Daten. Dieser Mechanismus umfasst beispielsweise, dass ein Schlüssel-Wert-Paar entweder als ein Abfragezeichenfolgeparameter oder als eine Kopfzeile gesendet wird.
OAuth-basierte Authentifizierung: Dies eine Authentifizierungsmethode auf Token-Basis, die es ermöglicht, dass Ihre Kontoinformationen von einem externen Dienst verwendet werden, ohne dass Sie das Passwort freilegen. Beispielsweise können Sie die Ressourcen eines Dienstes zugreifen, indem Sie sich bei dem Konto anmelden.
Beispielsweise verwendet Windchill sowohl die Basisauthentifizierung als auch die OAuth-basierte Authentifizierung.
OAuth erstellen 
Gehen Sie wie folgt vor, um eine OAuth zu erstellen:
1. Führen Sie in der Eingabeaufforderung die folgenden Befehle aus:
a. cd <user project root directory>
b. flow add oauth <oauth name>
* 
Der OAuth-Name darf keine Sonderzeichen mit Ausnahme von Bindestrichen (-) enthalten. Beispielsweise kann Ihr Name "Konnektorname-OAuthName" lauten.
Die folgenden Optionen sind für den OAuth-Befehl verfügbar:
Optionen
Beschreibung
Datentyp
--version
Zeigt die Versionsnummer an.
[Boolean]
--help
Zeigt die Hilfe an.
[Boolean]
--parentDir, -d
Das Elternverzeichnis für das Projekt.
[Standardwert: "."]
--logLevel, -1
Legt die Protokollebene fest.
[Standardwert: "info"]
--useV1
Gibt an, dass die OAuth 1.0-Konfiguration verwendet wird.
[Standardwert: false]
Ein neuer Ordner namens <Konnektorname-OAuthName> wird im Ordner <Projektverzeichnis>/auth/oauth/ erstellt, in dem die Datei config.json enthalten ist.
Wenn Sie beispielsweise eine zu Gmail gehörige Aktion in Ihrem Workflow verwenden, müssen Sie sich zunächst bei Ihrem Gmail-Konto anmelden und dann den ThingWorx Flow Workflow autorisieren, bestimmte Aufgaben in Ihrem Namen auszuführen.
Die in der Abbildung oben dargestellten Zugriffsparameter werden in der Datei config.json festgelegt. Die vollständige Datei config.json sieht folgendermaßen aus:
{
"_id": "56a0df8552199d8d51e0280d",
"created_at": "2017-04-11T14:08:59.858Z",
"updated_at": "2017-04-11T14:08:59.858Z",
"uid": "oau652869757c50d1cfbd1061",
"category": "Google",
"name": "google_gmail",
"title": "Gmail",
"icon": "google-mail",
"__v": 0,
"version": "v1",
"oauth2_params_other": [
"{\"access_type\":\"offline\"}"
],
"oauth2_params_scope": [
"{\"https://www.googleapis.com/auth/gmail.labels\":\"Manage mailbox labels\"}",
"{\"https://www.googleapis.com/auth/gmail.insert\":\"Insert mail into your mailbox\"}",
"{\"https://www.googleapis.com/auth/gmail.modify\":\"All read/write operations except immediate, permanent deletion of threads and messages, bypassing Trash.\"}",
"{\"https://www.googleapis.com/auth/gmail.readonly\":\"Read all resources and their metadata—no write operations.\"}",
"{\"https://www.googleapis.com/auth/gmail.compose\":\"Create, read, update, and delete drafts. Send messages and drafts.\"}",
"{\"https://www.googleapis.com/auth/gmail.send\":\"Send email on your behalf\"}"
],
"oauth2_validate_method": "GET",
"oauth2_validate_headers": [
"{\"Authorization\":\"Bearer {access_token}\"}",
"{\"Content-Type\":\"application/json\"}"
],
"oauth2_validate_url": "https://www.googleapis.com/gmail/v1/users/me/labels",
"oauth2_refresh_data": [
"{\"grant_type\":\"refresh_token\"}",
"{\"refresh_token\":\"{refresh_token}\"}"
],
"oauth2_refresh_url": "/token",
"oauth2_token_data": [
"{\"grant_type\":\"authorization_code\"}"
],
"oauth2_token_url": "/token",
"oauth2_auth_query": [
"{\"response_type\":\"code\"}",
"{\"approval_prompt\":\"force\"}",
"{\"access_type\":\"{access_type}\"}"
],
"oauth2_auth_url": "/auth",
"oauth2_no_state": false,
"env_production_params": [
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}",
"{\"client_id\":\"{{{production.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{production.CLIENT_SECRET}}}\"}"
],
"env_pre_prod_params": [
"{\"client_id\":\"{{{pre_prod.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{pre_prod.CLIENT_SECRET}}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
"env_staging_params": [
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}",
"{\"client_id\":\"{{{staging.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{staging.CLIENT_SECRET}}}\"}"
],
"env_development_params": [
"{\"client_id\":\"{{{development.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{development.CLIENT_SECRET}}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
"env_local_params": [
"{\"client_id\":\"{{{local.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{local.CLIENT_SECRET}}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
"base_url": "https://accounts.google.com/o/oauth2",
"oauth_type": "OAuth2",
"development_phase": "gold",
"advanced_enabled": true,
"express_enabled": true,
"deleted_at": null,
"published": true
}
* 
OAUTH_ENDPOINT_OAUTH_RETURN wird automatisch vom Flow Server archiviert, basierend auf dem Wert in der Datei deploymentConfig.json.
In der Tabelle sind die verschiedenen wichtigen Felder und deren Bedeutung von der Datei config.json aufgeführt.
Eigenschaften in der Datei config.json
Eigenschaft
Beschreibung
base_url
Basis-URL. Weitere Informationen finden Sie in der Dokumentation des Identitätsanbieters (IdP).
oauth_type
Bearbeiten Sie diese Eigenschaft nicht.
Standardmäßig generiert die Befehlszeilenschnittstelle die OAuth2-Konfiguration. Um eine OAuth1-Konfiguration zu generieren, verwenden Sie die Option –useV1.
oauth2_params_scope
Von der Anwendung definierte Umfänge; bestimmt, welche Operationen im System ausgeführt werden können. Das Token enthält Umfänge, für die der Benutzer der Anwendung Zugriff gewährt.
oauth2_auth_url
Generiert den Bildschirm mit der Eingabeaufforderung für Benutzername und Passwort für die Anwendung.
Dieser Wert kann absolut oder relativ zur Basis-URL sein.
oauth2_auth_query
Parameter, die der IdP für das Stellen einer Anfrage an die Authentifizierungs-URL vorschreibt.
oauth2_token_url
Verwendet, um ein Zugriffstoken oder Aktualisierungs-Token anzufordern. Dieser Wert kann eine absolute URL oder eine URL relativ zur Basis-URL sein.
oauth2_token_data
Enthält die Daten, die an die oauth2_token_url gesendet werden müssen.
oauth2_refresh_url
Generiert ein Aktualisierungs-Token. Einige IdPs verwenden die gleiche URL wie die Token-URL für das Anfordern eines Aktualisierung-Tokens.
oauth2_refresh_data
Enthält die Daten, die an die oauth2_refresh_url gesendet werden müssen.
oauth2_validate_url
Validiert ein Token
oauth2_validate_headers
Kopfzeilen, die in der Anfrage an die oauth2_validate_url gesendet werden.
oauth2_validate_method
HTTP-Methode, die für das Stellen der Validierungsanfrage verwendet wird.
Die Konfigurationsdatei enthält Informationen, die ThingWorx Flow verwendet, um verschiedene OAuth2-Operationen auszuführen.
Die Eigenschaftswerte sind Arrays von Zeichenfolgen sind und benötigen daher Escape. Die Werte können konstante Werte sein, oder Sie können die Textersetzung nutzen. env_local_params, env_staging_params und env_production_params ermöglichen es, den Wert der verschiedenen Parameter basierend auf der Bereitstellung zu variieren.
Die wichtigen Informationen in der Datei config.json sind client_id und client_secret.
Informationen zur Bereitstellung der Konnektoren finden Sie im Abschnitt Bereitstellung.
OAuth-Konfigurationen sollten keine sensiblen Informationen oder Tenant-spezifischen Informationen enthalten. Sie enthalten Client-ID (client_id) und Client-Verschlüsselungswort (client_secret). Die Informationen werden wie folgt angegeben:
"env_pre_prod_params": [
"{\"client_id\":\"{{pre_prod.CLIENT_ID}}\"}",
"{\"client_secret\":\"{{pre_prod.CLIENT_SECRET}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
"env_staging_params": [],
"env_development_params": [
"{\"client_id\":\"{{development.CLIENT_ID}}\"}",
"{\"client_secret\":\"{{development.CLIENT_SECRET}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
"env_local_params": [
"{\"client_id\":\"{{local.CLIENT_ID}}\"}",
"{\"client_secret\":\"{{local.CLIENT_SECRET}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
Wenn die Informationen nicht für eine Bereitstellung spezifisch sind, sollte diesen kein Bereitstellungsname wie "local" oder "development" vorangestellt werden.
Hilfe zum Erstellen von Anwendungen, die die Google-APIs verwenden, finden Sie in der API-Konsolen-Hilfe. Informationen zu anderen Anwendungen finden Sie in der IdP- oder System-Dokumentation.
Weitere Informationen zum Erstellen der OAuth-Konfiguration finden Sie im Tutorial B.
OAuths für Out-of-the-Box-Konnektoren konfigurieren 
Im Lieferumfang von ThingWorx Flow sind einige Konnektoren enthalten, die OAuth für die Autorisierung erfordern. Der erste Schritt besteht darin, eine OAuth-Load-Datei zu erstellen. Sie können wählen, ob alle oder nur einige der OAuth-Konfigurationen aktiviert werden sollen. Die OAuth-Load-Datei hat das folgenden Format:
{
"onedrive": {
"OneDrive": {
"CLIENT_ID": "<client-id-here>"
"CLIENT_SECRET": "<client-secret-here>"
}
}
"trello": {
"Trello": {
"CONSUMER_KEY":"<consumer-key-here>",
"CONSUMER_SECRET":"<consumer-secret-here>"
}
}
}
In der Datei oben sind die Schlüssel auf der obersten Ebene die Namen von Konnektoren. Ein Beispiel für eine OAuth2-Konfiguration und OAuth1-Konfiguration ist OneDrive.
Im Dokument können Sie client-id und client-secret für jede der Konnektoren erlangen. Der Anzeigename der OAuth-Konfiguration befindet sich auf der nächsten Ebene. Dies ist der Text, der in OAuth2-Dropdown-Menüs als "<Anzeigename>-Anmeldung hinzufügen" angezeigt wird.
Verwenden Sie das Tool flow-deploy, um die OAuths in das System zu laden. Wenn eine übereinstimmende Konfiguration basierend auf Konnektor- und Anzeigename gefunden wird, wird diese aktualisiert; ansonsten wird eine neue erstellt.
Informationen zum Konfigurieren von OAuth für die anderen standardmäßige Konnektoren finden Sie im ThingWorx Hilfe-Center.
Weitere Informationen finden Sie im Thema Konnektoren bereitstellen.
Nachdem das Tool die Bereitstellung erfolgreich abgeschlossen hat, sind die neuen OAuths verfügbar.
War dies hilfreich?