パッケージ
|
説明
|
---|---|
com.thingworx.security.authentication.sso
|
すべての ThingWorx SSO 認証コンポーネント用のパッケージ。次の例は、ロガーパッケージ内のエントリを示しています。
• たとえば、アプリケーションログに送られるメッセージの場合は、以下のとおりです。
LogUtilities.getInstance().getApplicationLogger([class name]):
<logger name="com.thingworx.security.authentication.sso" level="DEBUG"/> • セキュリティロガーは、このパッケージ内のクラスの多くで使用されます。次に例を示します。
LogUtilities.getInstance().getSecurityLogger(ThingworxSSOAuthenticator.class);
これらのロガーを有効にするには、ルート親ロガーとして SecurityLog を追加します。
<logger name="SecurityLog.com.thingworx.security.authentication.sso" level="DEBUG"/>
|
SecurityLog.com.thingworx.security.sso
|
アクセストークン、およびそのコンフィギュレーションを取得する際に統合コネクタによって使用される委任認証ワークフロー用のパッケージ。
|
com.thingworx.ptc.eauth.identity
|
すべての PTC コア SSO ライブラリコンポーネント用のパッケージ。
|
com.springframework.security
|
すべての spring フレームワークセキュリティコンポーネント用のパッケージ。
|
com.springframework.jdbc
|
すべての spring フレームワーク JDBC 認証コンポーネント用のパッケージ。
|
問題
|
ThingWorx 管理者がサインインできない - Invalid_scope エラーの受取り
|
説明
|
サインイン後、ユーザーは、システムに認証コンフィギュレーションエラーが現在発生していることを示す ThingWorx エラーページにリダイレクトされます。
|
ソリューション
|
ThingWorx 統合コネクタまたはメディアエンティティに登録されている範囲の 1 つ以上が、PingFederate (または選択した CAS) に登録されている範囲と一致しません。PingFederate 間の範囲の不一致が原因で、ThingWorx 管理者がロックされる可能性があります。ThingWorx に登録されたリソースサーバーの範囲は、セキュリティログで確認できます。これを解決するには、以下のようにします。
1. PingFederate にログインして、ThingWorx セキュリティログから報告された範囲を、PingFederate に登録された範囲と比較します。PingFederate に登録されていない ThingWorx の範囲、または名前が一致しない範囲があれば、PingFederate で範囲を追加するか、ThingWorx でのスペルと一致するように名前を修正します (これが範囲の正しいスペルではない場合でも)。
2. これで権限承認ページが正しく機能するようになり、ThingWorx に管理者としてサインインできます。ThingWorx Composer で、範囲を使用しようとしている統合コネクタまたはメディアエンティティに移動します。その範囲を、統合コネクタまたはメディアエンティティの範囲登録テーブルから除去します。ThingWorx の新しいセッションでログインして、ログインが正常に行われることを確認します。
3. 登録されていない範囲を ThingWorx が使用しようとしていた場合は、PingFederate で範囲管理ページから不要な範囲を除去します。範囲名が一致していない場合、その範囲を削除してから、正しいスペルで PingFederate と ThingWorx 統合コネクタまたはメディアエンティティに再度登録します。
|
問題
|
統合コネクタまたはメディアエンティティ上のサービスが動作しない - アクセストークンの取得に失敗した。
|
説明
|
ThingWorx Composer にログインし、すでにアクセストークンを持っています。範囲を含むコネクタをインポートまたは作成し、コネクタ上でサービスを実行しようとしましたが、機能しませんでした。
|
ソリューション
|
ログアウトして再度ログインし、コネクタの範囲の権限承認ページを開きます。サービスが機能するためには、新しく登録された範囲の権限を承認する必要があります。
範囲を含むメディアエンティティをインポートまたは作成する場合にも、同じことが当てはまります。
|
問題
|
ThingWorx 起動時の SSO コンテキストおよびビーン初期化エラー。
|
説明
|
ThingWorx が起動に失敗します。
|
ソリューション
|
エラーログを参照して問題を特定します。コンテキストまたはビーンの初期化警告またはエラーログの末尾のテキストに、問題の説明があります。たとえば、考えられるエラーの記述は以下のとおりです。
SSOConfigurationException: BasicSettings > idpMetadataFilePath cannot be null or empty
sso settings.json ファイル内の idpMetadataFilePath パラメータの値を確認して、適切な値を追加します。
|
問題
|
PingFederate の「Request Grant Approval」ページで、要求対象の範囲に対してユーザーが「Don't allow」をクリックした後、ThingWorx マッシュアップまたはアプリケーションがロードされない。
|
説明
|
「Request Grant Approval」ページで「Don't allow」をクリックした後、マッシュアップがロードされず、ブラウザ URL の末尾はハッシュ記号 "#" とピリオド記号 "." になります。
|
ソリューション
|
デフォルトでは、PingFederate はフラグメントのプレースホルダーとしてピリオド "." を使用します。この問題は、これが原因で発生します。この問題を解決するには、以下のことを行います。
1. PingFederate のインストール場所で、<PingFederateInstallation>\server\default\data\config-store\sanitize-fragments.xml に移動します。
2. この XML ファイルを編集して、フラグメントのプレースホルダーからピリオド "." を除去します。この行は以下のようになります: <con:item name="FragmentPlaceholder"></con:item>
3. PingFederate サーバーを再起動します。
|
問題
|
ログインが正常に行われた後、http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html#mashup=<MyMashup> に対する SAML 認証が、http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html にリダイレクトされます。
|
説明
|
マッシュアップ URL に対するログイン時に、URL のフラグメント部分 (つまり、#mashup=<MyMashup>) が ThingWorx サーバーまたは認証サーバーに送信されず、正常なログイン後のリダイレクトが正しく行われません。これは、そのデータがクライアントのみによる使用を目的としてブラウザに保管されるからです。このため、ThingWorx サーバーと認証サーバーはフラグメントを除いた URL を受け取ります (http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html)。
|
ソリューション
|
最初の認証ポイントとして使用されるマッシュアップ URL の場合は、フラグメントパラメータの代わりに照会パラメータを使用して URL を作成します。
したがって、この例では、URL http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html?mashup=<MyMashup> を使用します。
|
問題
|
ログインのたびに、PingFederate から「Request Grant Approval」ページが表示される。
|
説明
|
PingFederate は権限承認プロセスが成功してもスコープを返しません。
|
ソリューション
|
PingFederate で以下の操作を行います。
1. <PingFederate インストールフォルダ>/server/default/data/config-store の場所にある oauth-scope-settings.xml ファイルを以下のように作成または編集します。
<?xml version="1.0" encoding="UTF-8"?>
<z:config xmlns:z="http://www.sourceid.org/2004/05/config"> <z:item name="always-return-scope-for-authz-code">true</z:item> </z:config> 2. PingFederate を再起動します。
|
問題
|
ログインが正常に行われた後、http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html#mashup=<MyMashup> に対する SAML 認証が、http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html にリダイレクトされます。
|
説明
|
マッシュアップ URL に対するログイン時に、URL のフラグメント部分 (つまり、#mashup=<MyMashup>) が ThingWorx サーバーまたは認証サーバーに送信されず、正常なログイン後のリダイレクトが正しく行われません。これは、そのデータがクライアントのみによる使用を目的としてブラウザに保管されるからです。このため、ThingWorx サーバーと認証サーバーはフラグメントを除いた URL を受け取ります (http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html)。
|
ソリューション
|
最初の認証ポイントとして使用されるマッシュアップ URL の場合は、フラグメントパラメータの代わりに照会パラメータを使用して URL を作成します。
したがって、この例では、URL http://<お使いのサーバー>:<ポート>/Thingworx/runtime/index.html?mashup=<MyMashup> を使用します。
|
問題
|
PingFederate の server.log ファイルに次のエラーが表示される。
ERROR [SpringLdapGuidFormatter] Decoded binary guidAttribute is empty. Please check that the source datastore is configured with 'objectGUID' as a binary attribute. [] Channel: channel1
|
説明
|
PingFed 11.3 での変更により、SCIM を手動で設定する必要があります。
|
ソリューション
|
LDAP バイナリ属性の追加に記載されている手順に従います。
|
問題
|
AzureAD が CAS として設定されている場合、エンドユーザーが ThingWorx コネクタベースの SSO 接続タイプを使用してリソースサーバー (RS) からデータを取得できない (アクセストークンが期限切れになっている場合と同様)。
|
説明
|
SecurityLog.log ファイルに次のエラーが表示されます。
ERROR: [ Failed to retrieve access token. ][ A redirect is required to get the users approval ]
|
ソリューション
|
sso-settings.json 内の AuthorizationServersSettings でプロパティ mandatoryScopes の値を offline_access に設定します。
|