sso-settings.json ファイルの設定
ssoSecurityConfig ディレクトリに sso settings.json ファイルを作成します。
お使いの環境で別のパスが必要な場合は、THINGWORX_SSO_SETTINGSsso-settings.json ファイルが別の場所に保存されるように 環境変数の値を設定します。
以下は、sso-settings.json ファイルの構造の例です。
{
"BasicSettings": {
"clientBaseUrl": "See information in the table below",
"idpMetadataFilePath": "See information in the table below",
"metadataEntityId": "See information in the table below",
"metadataEntityBaseUrl": "See information in the table below",
"webSSOProfileConsumerResponseSkew": "See information in the table below",
"webSSOProfileConsumerReleaseDOM": "See information in the table below",
"webSSOProfileResponseSkew": "See information in the table below",
"retriggerOnScopesRemoval": "See information in the table below",
"samlAssertionUserNameAttributeName": "See information in the table below",
"samlAssertionMaxAuthenticationAge": "See information in the table below",
"ptcOperatorsGroupName": "See information in the table below",
"samlGroupClaimName": "See information in the table below",
"administratorAlias": "See information in the table below",
“administratorInternalName": "Administrator",
"authnContextAsPassword": "See information in the table below",
"authenticationType": "See information in the table below
},
"AccessTokenPersistenceSettings": {
"dbType": "See information in the table below",
"driverClassName": "See information in the table below",
"url": "See information in the table below",
"username": "See information in the table below",
"password": "See information in the table below",
"encryptTokenInDatabase": "See information in the table below",
},
"KeyManagerSettings": {
"keyStoreFilePath": "See information in the table below",
"keyStoreStorePass": "See information in the table below",
"keyStoreKey": "See information in the table below",
"keyStoreKeyPass": "See information in the table below"
},
"AuthorizationServersSettings": {
"<AuthorizationServerId1>": {
"clientId": "See information in the table below",
"clientSecret": "See information in the table below",
"authorizeUri": "See information in the table below",
"tokenUri": "See information in the table below",
"clientAuthScheme": "See information in the table below"
},
"<AuthorizationServerId2>": {
"clientId": "See information in the table below",
"clientSecret": "See information in the table below",
"authorizeUri": "See information in the table below",
"tokenUri": "See information in the table below",
"clientAuthScheme": "See information in the table below"
"mandatoryScopes": "See information in the table below"
},
"OIDCSettings": {
"accessTokenClaimsValidation":"See information in the table below",
"additionalScopes": "See information in the table below",
"assertionUserNameAttributeName": "See information in the table below",
"clientId": "See information in the table below",
"clientSecret": "See information in the table below",
"openIdConfigurationUri": "See information in the table below",
"proxyAuthentication": "See information in the table below",
"useAccessTokenClaims": "See information in the table below"
},
"AzureSettings": {
"apiEndPoint": "See information in the table below"
}
}
* 
要件に合わせて各パラメータの値を編集するようにしてください。実装は、ThingWorx がホストされている場所、組織のセキュリティポリシー、フェデレーションの CAS など、いくつかの要因によって異なる場合があります。次のテーブルに示す情報をガイダンスとして使用して、さまざまなパラメータの値を設定します。
以下のテーブルでは、sso-settings.json ファイルの BasicSettings セクションの各種パラメータとデフォルト値について説明します。
パラメータ
説明
clientBaseUrl
ThingWorx サーバーインスタンスの URL を指定します。
これは ThingWorx サーバーの完全修飾ドメイン名 (FQDN) に設定します。
高可用性 (HA) 環境で動作するように ThingWorx を設定している場合、ロードバランサーのホストとポートを指定します。
http://<ThingWorx-FQDN>:<port-number>/Thingworx
または
高可用性環境では、https://<ロードバランサーのホスト名>:<ロードバランサーのポート番号>/Thingworx
idpMetadataFilePath
SAML 認証でのみ必須です。IdP メタデータファイルの絶対ファイルパスの場所を指定します。
/ThingworxPlatform/ssoSecurityConfig/sso-idp-metadata.xml
metadataEntityId
SAML 認証でのみ必須です。サービスプロバイダ接続のエンティティ ID を指定します。
CAS として PingFederate を使用: サービスプロバイダの接続を設定するときに選択した一意の ID を使用します。
CAS として Microsoft Entra ID を使用: 基本 SAML 設定を行ったときに定義した Identifier (Entitity ID) を使用します。
CAS として AD FS を使用: 証明書利用者の信頼設定を行ったときに定義した「Relying party trust identifier」を使用します
-
metadataEntityBaseUrl
SAML 認証でのみ必須です。ThingWorx サーバーの完全修飾ドメイン名を指定します。
* 
完全修飾でないドメイン名を使用することはお勧めしません。完全修飾でないドメイン名を使用することを組織で選択している場合は、そのドメイン名がクライアントマシンからアクセス可能であることと、ThingWorx SSO コンフィギュレーションファイル内で正しく設定されていることを、その組織の IT 部門が確認する必要があります。
高可用性 (HA) 環境で動作するように ThingWorx を設定している場合、ロードバランサーのホストとポートを指定します。
http://<ThingWorx-FQDN>:<port-number>/Thingworx
または
高可用性環境では、https://<ロードバランサーのホスト名>:<ロードバランサーのポート番号>/Thingworx
webSSOProfileConsumerResponseSkew
SAML 2.0 WebSSO Assertion Consumer 応答スキュー公差を指定します。
この値を設定するときは、ユーザー個別のセキュリティ要件と企業ネットワークの遅延を考慮してください。
この設定を使用して、CAS から ThingWorx にログインリクエスト応答が返されるまで待つことができる時間の長さ (秒) を設定します。ログインリクエスト応答が返されるまでこの値よりも長い時間がかかる場合、ログイン試行は失敗します。
スキュー公差は、システムクロック間で想定される差を原因として、受信者が許容する応答有効期間の偏差です。関連する各システムのクロックが正しく同期されていることを確認して、スキューの影響を最小限に抑えることが最良事例です。
300
webSSOProfileConsumerReleaseDOM
認証が完了した後にセキュリティフレームワークが SAML アサーションを保持するかどうかを決定します。
False に設定すると、認証が完了した後も SAML アサーションが保持されます。
true
webSSOProfileResponseSkew
SAML 2.0 Web SSO プロファイル応答スキュー公差を指定します。
この値を設定するときは、ユーザー個別のセキュリティ要件と企業ネットワークの遅延を考慮してください。
スキュー公差は、システムクロック間で想定される差を原因として、受信者が許容する応答有効期間の偏差です。関連する各システムのクロックが正しく同期されていることを確認して、スキューの影響を最小限に抑えることが最良事例です。
300
retriggerOnScopesRemoval
必要な範囲のリストが変更され、更新する必要があるかどうかを指定します。
値が true に設定された場合、必要な範囲のリストから範囲が追加または除去されたことを示します。
値が false に設定された場合、必要な範囲のリストに範囲が追加されたことを示します。
true
samlAssertionUserNameAttributeName
SAML 認証でのみ必須です。ログイン時に ThingWorx ユーザーのユーザー名が格納される値を伝達する SAML 属性を指定します。ID プロバイダ内のこの属性の値が、ThingWorx ユーザー名に使用するユーザー名の値と対応していることを確認します。
* 
ThingWorx 管理者アカウントの場合は、ユーザー名の値を Administrator に設定する必要があります。管理者アカウントの Administrator の値を返すように IdP を設定してください。詳細については、ID プロバイダでの ThingWorx 管理者エイリアスの作成を参照してください。
CAS として PingFederate または Microsoft Entra ID を使用:
uid
CAS として AD FS を使用:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
samlAssertionMaxAuthenticationAge
SAML 認証でのみ必須です。SAML 2.0 アサーションが期限切れになるまでの最大経過時間 (秒) を指定します。これにより、認証アサーションの最大セッション時間も指定します。
ID プロバイダで指定したセッションのタイムアウト値に一致する値を設定します。この値は使用されている IdP によって異なります。
LDAP IdP を使用した CAS として PingFederate を使用 (Windchill): 7200 (これがデフォルトです)
IdP として AD FS を使用 (CAS として AD FS または PingFederate を使用): 28800
IdP として Microsoft Entra ID を使用 (CAS として Microsoft Entra ID または PingFederate を使用): 86400
ptcOperatorsGroupName
オプション。
このパラメータを設定して、グループ (IDP で定義されている) が自動的に ThingWorx 管理者グループの一部になるように設定します
administratorAlias
OIDC 認証の場合は必須です。
CAS[IDP] で設定されている管理者のユーザー名。
administratorInternalName
administratorAlias が定義されている場合には必須です。
ThingWorx で設定されている管理者のユーザー名。たとえば、Administrator などです。
samlGroupClaimName
オプションですが、SAML 認証でのみ必須です。
このパラメータは、ptcOperatorsGroupName が定義されている場合にのみ関連します。
CAS で設定されている IDP SAML Group Claim Name を入力して、Thingworx SSO 認証システムでそのグループの自動化を完了します。詳細については、ThingworxSSOAuthenticatorを参照してください。
例:
PingFederate CAS の場合 : group
authnContextAsPassword
オプション。まれに、次のアサーションを SAML リクエストに配置する必要が生じる場合があります。
<saml2p:RequestedAuthnContext Comparison="exact">
<saml2:AuthnContextClassRef xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
</saml2:AuthnContextClassRef>
</saml2p:RequestedAuthnContext>
そのような場合に、このプロパティを定義する必要があります。
false
authenticationType
オプション。認証タイプ: oidc/saml。デフォルト値 = saml
PingFederate と ADFS では不要です (saml がデフォルトであるため)
Microsoft Entra ID の場合 - saml/oidc
Azure AD B2C および Atlas IAM の場合 - oidc
* 
SSO が有効なときにアプリケーションキー認証を有効にする場合は、次の ApplicationKeySettings のコンフィギュレーションに関するセクションを、BasicSettings の下の sso-settings.json の設定に追加します。この設定は、REST API リクエストを介した認証にアプリケーションキーを使用する場合にのみ必要です。この設定が有効/無効であることに関係なく、アプリケーションキーは、WebSocket を介してエッジデバイスから使用できます。
{
"BasicSettings": {
...
},
"ApplicationKeySettings": {
"enabled": true
},
...
}
以下のテーブルでは、sso-settings.json ファイルの AccessTokenPersistenceSettings セクションの各種パラメータとデフォルト値について説明します。
パラメータ
説明
dbType
ThingWorx のインストールで設定および使用するデータベースのタイプを指定します。
platform-settings.json ファイルで設定されているものと同じデータベースを使用するには、platform-settings.json で設定されているものと同じデータベースタイプおよび資格証明を指定します。
postgres
mssql
driverClassName
platform-settings.json ファイルで使用しているドライバークラス名を指定します。
dbTypepostgres として設定されている場合は、org.postgresql.Driver に設定します。
dbTypemssql として設定されている場合は、com.microsoft.sqlserver.jdbc.SQLServerDriver に設定します。
url
ThingWorx インストールのデータベースの場所を示す URL を指定します。
dbTypepostgres として設定されている場合は、jdbc:postgresql://<ホスト名>:<ポート>/thingworx に設定します。
dbTypemssql として設定されている場合は、jdbc:sqlserver://<ホスト名>:<ポート>;databaseName=thingworx;applicationName=Thingworx に設定します。
username
システムがアクセストークンを保存するために使用するデータベースのユーザー名を指定します。これは、platform-settings.json ファイルで指定したユーザー名と一致している必要があります。
-
password
システムがアクセストークンを保存するために使用するデータベースのパスワードを指定します。これは、platform-settings.json ファイルで指定したパスワードと一致している必要があります。
-
encryptTokenInDatabase
データベースで永続化する前にアクセストークンを暗号化する場合は true に設定します。
true
dbType の値に応じて、OAuth 2.0 アクセストークン (権限承認) はさまざまな場所に格納されます。次のテーブルは、権限承認が格納されるデータベース内の場所に関する情報を示しています。
dbType
権限承認が格納されるデータベース内の場所
postgres
ThingWorx PostgreSQL データベースの oauth_client_token テーブル内。
mssql
ThingWorx MS SQL データベースの oauth_client_token テーブル内。
以下のテーブルでは、sso-settings.json ファイルの KeyManagerSettings セクションの各種パラメータとデフォルト値について説明します。
パラメータ
説明
keyStoreFilePath
キーストアの絶対ファイルパスの場所を指定します。使用する環境に応じて、キーストアファイルが保存されるディレクトリを使用するようにパスを修正します。
* 
キーストアキーには、sso-settings.json ファイルが格納されている場所とは異なるストレージの場所を使用することを強くお勧めします。これにより、これらのファイルにきめ細かいファイルシステムアクセス制御を適用できます。ThingWorx の全般設定は、キーストアキーおよび sso-settings.json ファイルのどちらとも異なる場所に保存する必要があります。
Windows の場合: <ドライブ>:\\ThingworxPlatform\\ssoSecurityConfig\\sso-keystore.jks
この <ドライブ> には、ThingWorx をインストールしたドライブを指定します。
Linux の場合: <フルパス>/ThingworxPlatform/ssoSecurityConfig/sso-keystore.jks
keyStoreStorePass
キーストアのパスワードを指定します。
-
keyStoreKey
デフォルトのキーを指定します。
-
keyStoreKeyPass
プライベートキーにアクセスするためのパスワードを指定します。
-
以下のテーブルでは、sso-settings.json ファイルの AuthorizationServersSettings セクションの各種パラメータとデフォルト値について説明します。
* 
AuthorizationServersSettings 設定には、複数の認証サーバーの情報が含まれることがあります。各サーバーは、sso-settings.json ファイル内で一意の識別子によって識別されます。
パラメータ
説明
<AuthorizationServerId1>.clientId
認証サーバーからアクセストークンを取得するときに使用するクライアント識別子を指定します。
* 
AuthorizationServerId1 変数に指定する値を選択します。AuthorizationServerId1 変数のこの値は、統合コネクタまたはメディアエンティティの接続設定に使用されます。コネクタの設定を構成する管理者または開発者が ssoSecurityConfig ディレクトリにアクセスできない場合は、この情報を管理者または開発者に提供する必要があります。
-
<AuthorizationServerId1>.clientSecret
認証サーバーによる認証に使用されるクライアントの資格証明を指定します。
ネットワーク上の完全修飾ドメイン名サーバーの URL に設定します。
-
<AuthorizationServerId1>.authorizeUri
アクセストークンを承認するためにユーザーがリダイレクトされる URI を指定します。
CAS として PingFederate を使用:
https://<PingFederate ホスト名>:<PingFederate ポート番号>/as/authorization.oauth2
* 
PingFederate インストールで提供される PingFederate ランタイムポートを使用します。
CAS として Microsoft Entra ID を使用: Microsoft Entra ID 認証ドキュメントの「ThingWorx コンフィギュレーションファイルの更新」を参照してください。
CAS として AD FS を使用: AD FS 認証ドキュメントの「Update the ThingWorx Configuration Files」を参照してください。
<AuthorizationServerId1>.tokenUri
OAuth2 アクセストークンを取得するために使用する URI を指定します。
ネットワーク上の完全修飾ドメイン名サーバーの URL に設定します。
https://<PingFederate ホスト名>:<PingFederate ポート番号>/as/token.oauth2
* 
PingFederate インストールで提供される PingFederate ランタイムポートを使用します。
<AuthorizationServerId1>.clientAuthScheme
クライアントを認証するために使用する方式を指定します。次の値を使用できます。
form
header
query
none
form
<AuthorizationServerId1>.mandatoryScopes
Microsoft Entra ID および ADFS 以外の CAS ではオプションです。このパラメータが定義されていると、この範囲はリクエストされた accessToken に自動的に追加されます。
* 
複数の範囲がある場合は、区切り記号としてスペースを使用します。
CAS として Microsoft Entra ID を使用する場合は必須です。必須の値は "offline_access" です。
ADFS では必須です。これには ADFS サーバー上の範囲のリストで定義されていない値を指定できます。
以下の表では、sso-settings.json ファイルの OIDCSettings セクションの各種パラメータとデフォルト値について説明します。このセクションは、認証タイプが OIDC の場合にのみ必要です。
パラメータ
説明
openIdConfigurationUri
必須
これは OpenID サーバーメタデータの URI です。
通常、これは well-known URL でパブリッシュされています。
clientId
認証サーバーからアクセストークンを取得するときに使用するクライアント識別子を指定します。
clientSecret
認証サーバーによる認証に使用されるクライアントの資格証明を指定します。
additionalScopes
オプション
oidc 認証の追加のスコープから成るコンマ区切り文字列
assertionUserNameAttributeName
ログイン時に ThingWorx ユーザーのユーザー名が格納される値を伝達する OpenID クレームを指定します。ID プロバイダ内のこの属性の値が、ThingWorx ユーザー名に使用するユーザー名の値と対応していることを確認します。
Azure AD B2C の場合 - この属性の値がすべての ID プロバイダ間で一意であることを確認します。
accessTokenClaimsValidation
オプション
アクセストークンクレームの存在とクレーム値の検証を指定します。
入力は単純な JSON 文字列であり、各プロパティは必要なクレーム名、値は必要なクレーム値です。値が指定されていない場合 (空の文字列) - クレーム名の存在のみが検証されます。
useAccessTokenClaims
オプション
ユーザー拡張機能のマッピング用にアクセストークンクレームを取得するかどうかを指定します。
次の場合にのみ、このプロパティを true に設定します。
OpenID トークンに含まれていない、ユーザー拡張機能に必要なクレームがアクセストークンに含まれている。
Azure AD B2C の場合 - AzureSettings.apiEndPoint を使用してユーザーグループ情報を取得する場合。
true/false
authorizeUriAdditionalParameters
オプション
OIDC 認証の追加パラメータ。
以下の表では、sso-settings.json ファイルの AzureSettings セクションの各種パラメータとデフォルト値について説明します。このセクションは、OIDC コンフィギュレーションの Azure Entra ID でのみ必要です。
パラメータ
説明
apiEndPoint
オプション
Azure Graph エンドポイント
グループ情報の取得にのみ必要です (OpenID/アクセストークンにグループクレームが含まれていない場合)
* 
このオプションを使用する場合、OIDCSettings.useAccessTokenClaims を true に設定する必要があります。
これは役に立ちましたか?