Okta における ThingWorx のアプリ統合の作成
SAML
1. Okta 管理コンソールにサインインします。
2. > に移動します。次に、「Create App Integration」をクリックします。
3. 「Create a new application integration」ウィンドウで、「SAML 2.0」を「Sign-in method」として選択し、次に「Next」をクリックします。
4. 「Create SAML Integration」ページの「General Settings」タブで以下の情報を入力し、次に「Next」をクリックします。
◦ App name - アプリケーションの名前を入力します (ThingworxSAML など)。
◦ App logo - (オプション) アプリケーションのロゴを追加します。
◦ App visibility - ユーザーに対してアプリケーションアイコンを表示するかどうかを選択します。
5. 「Configure SAML」タブで、以下の情報を入力または選択します。
◦ Single Sign On URL - http://<ThingWorx FQDN>:<ポート>/Thingworx/saml/SSO と入力します。
| 「Use this for Recipient URL and Destination URL」チェックボックスはオンのままにします。 |
◦ Audience URI (SP Entry ID) - ThingWorxSP と入力します。
◦ Default RelayState - 空白のままにします。
◦ Name ID format -「Unspecified」を選択します。
◦ Application username - 「Okta username」を選択します。
◦ Update application username on - 「Create and update」を選択します。
6. 「Configure SAML」タブで、「ATTRIBUTE STATEMENTS」まで下にスクロールします。
7. 「Name」フィールドに「user.firstName」と入力し、「Name format」を「Unspecified」のままにし、「Value」で「user.firstName」を選択します。「Add Another」をクリックします。
8. 新しい属性ステートメントのフィールドで、「Name」フィールドに「user.email」と入力し、「Name format」を「Unspecified」のままにし、「Value」で「user.email」を選択します。
9. 「Group Attribute Statements (optional)」の下で、「Name」フィールドに「role」と入力し、「Name format」を「Unspecified」のままにして、「Starts with」に「gr」と入力します。
10. 「Next」をクリックします。「Feedback」タブで、「Finish」をクリックします。
11. アプリ統合が作成され、新しいアプリケーションの「Sign On」タブに移動します。
12. 「Sign On」タブで、「Metadata URL」の下にある「Copy」をクリックし、新しいブラウザタブに貼り付けます。ファイルのコンテンツが表示された後、ページを右クリックし、使用しているブラウザに応じて「名前を付けて保存」または「名前を付けてページを保存」を選択します。Chrome または Edge を使用している場合、ファイルは XML ファイルとしてダウンロードされます。
| 出力を単にコピーして貼り付けるだけではフォーマットの問題が発生する可能性があるため、必ず「名前を付けて保存」を使用してください。 |
13. システム上の ThingworxPlatform フォルダに移動して platform-settings.json ファイルを開き、以下に示すように指定されていることを確認します。
14. システム上の同じ ThingworxPlatform フォルダで、ssoSecurityConfig フォルダを開き、sso-settings.json ファイルを開きます。BasicSettings で次のコンフィギュレーションが実施されていることを確認します。
◦ idpMetadataFilePath - 手順 11 でコピーした metadata_okta.xml ファイルへのパスを指定します。
◦ metadataEntityId - Okta のアプリケーションの「General」タブにある「SAML Settings」セクションから「Audience Restriction」フィールドの値 (手順 4 を参照) を入力します。
◦ samlAssertionUserNameAttributeName - 手順 8 で作成した属性ステートメントから user.email の名前を入力します。
15. sso-settings.json ファイルで、ApplicationKeySettings の下の enabled パラメータが true に設定されていることを確認します。
16. 次に、sso-settings.json ファイルで KeyManagerSettings まで下にスクロールし、以下のように指定されていることを確認します。
17. sso-settings.json ファイルを保存して閉じます。
18. ThingWorx を再起動します。
19. 適切な資格証明を使用して管理者として ThingWorx Composer にサインインすることで、Okta 認証が適切に設定されていることを確認します。
20. サインインに成功した後、ThingworxSSOAuthenticator の「Configuration」タブに移動し、手順 9 で作成したグループ属性の「Groups」に「role」と入力します。
| 「403 App Not Assigned」のエラーでサインインの試行が失敗した場合は、Okta の ThingWorx アプリケーションにユーザーを割り当て、もう一度サインインを実行してください。 |
OAuth 2.0
1. Okta 管理コンソールにサインインします。
2. > に移動します。
3. 「Create App Integration」ウィンドウで、「OIDC – OpenID Connect」を選択します。このオプションを選択すると、「Application type」セクションが表示されます。「Web Application」を選択し、「Next」をクリックします。
4. 「General Settings」で、次の情報を入力し、「Save」をクリックします。
◦ App name - アプリケーションに名前を付けます (例: ThingworxResourceProvider)
◦ Logo - (オプション) アプリケーションのロゴを追加します。
◦ Proof of possession - トークンリクエストで Demonstrating Proof of Possession (DPoP) ヘッダーを要求するかどうかを選択します。
◦ Grant type - デフォルトでは、「Client acting on behalf of a user」の下の「Authorization Code」チェックボックスが選択されています。
◦ Sign-in redirect URIs - サインインのリダイレクト URI を入力します。例: http://localhost:8515/Thingworx/oauth2_authorization_code_redirect
◦ Assignments - 「Skip group assignments for now」を選択します。
5. 次に、 > に移動します。「Authorization Servers」タブで、「default」をクリックします。
6. 「Scopes」タブで、「Add Scope」をクリックします。スコープに「THINGWORX」という名前を付け、「Create」をクリックします。
8. システム上の ThingworxPlatform フォルダに移動し、resourceServerSettings.json ファイルを開きます。次の値を指定します。
属性 | 値 |
userAuthenticationConverterUserNameAttribute | sub この値は、Okta の デフォルトの認証サーバーで作成されるクレームの名前になります。この値は、 > > > > の順に移動して確認できます。 |
oathTokenEndPoint | この値は、「Metadata URL」の token_endpoint の値と同じになります。この値を見つけるには、Okta 管理コンソールを開き、 > > > > に移動します。「Metadata URI」をクリックし、token_endpoint の値を見つけます。これは次のようになります。 https://<一意のサーバー名>.okta.com/oauth2/default/v1/token |
checkTokenEndpointUrl | この値は、「Metadata URL」の introspection_endpoint の値と同じになります。この値を見つけるには、Okta 管理コンソールを開き、 > > > > に移動します。「Metadata URI」をクリックし、introspection_endpoint の値を見つけます。これは次のようになります。 https://<一意のサーバー名>.okta.com/oauth2/default/v1/introspect |
clientId | これは、Okta の ThingworxResourceProvider アプリケーションの「Client ID」フィールドと同じ値になります。 この値を見つけるには、Okta 管理コンソールを開き、左側のナビゲーション枠で > に移動します。ThingworxResourceProvider アプリケーションをクリックします。「General」タブの「Client Credentials」で、「Client ID」フィールドを見つけます。 |
clientSecret | これは、Okta の ThingworxResourceProvider アプリケーションの「Client secret」フィールドと同じ値になります。 この値を見つけるには、Okta 管理コンソールを開き、左側のナビゲーションパネルで「Applications」をクリックします。ThingworxResourceProvider アプリケーションをクリックします。「General」タブの「Client Credentials」で、「CLIENT SECRETS」セクションを見つけます。 |