シングルサインオン (SSO) の準備 > Okta のコンフィギュレーション例 > Okta における ThingWorx のアプリ統合の作成
  
Okta における ThingWorx のアプリ統合の作成
SAML
1. Okta 管理コンソールにサインインします。
* 
管理者でなければなりません。
2. 「Applications」 > 「Applications」に移動します。次に、「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 で次のコンフィギュレーションが実施されていることを確認します。
* 
ssoSecurityConfig フォルダと sso-settings.json ファイルの詳細については、ThingWorx ヘルプセンターの「ssoSecurityConfig ディレクトリの作成」および「sso-settings.json ファイルの設定」を参照してください。
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. 「Applications」 > 「Applications」に移動します。
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. 次に、「Security」 > 「API」に移動します。「Authorization Servers」タブで、「default」をクリックします。
6. 「Scopes」タブで、「Add Scope」をクリックします。スコープに「THINGWORX」という名前を付け、「Create」をクリックします。
7. 続行する前に、ThingWorx がリソースサーバーとして設定されていることを確認してください。詳細については、ThingWorx ヘルプセンターの「リソースサーバーとしての ThingWorx の設定」を参照してください。
8. システム上の ThingworxPlatform フォルダに移動し、resourceServerSettings.json ファイルを開きます。次の値を指定します。
属性
userAuthenticationConverterUserNameAttribute
sub
この値は、Okta の デフォルトの認証サーバーで作成されるクレームの名前になります。この値は、「Security」 > 「API」 > 「Authorization Servers」 > 「default」 > 「Claims」の順に移動して確認できます。
oathTokenEndPoint
この値は、「Metadata URL」の token_endpoint の値と同じになります。この値を見つけるには、Okta 管理コンソールを開き、「Security」 > 「API」 > 「Authorization Servers」 > 「default」 > 「Settings」に移動します。「Metadata URI」をクリックし、token_endpoint の値を見つけます。これは次のようになります。
https://<一意のサーバー名>.okta.com/oauth2/default/v1/token
checkTokenEndpointUrl
この値は、「Metadata URL」の introspection_endpoint の値と同じになります。この値を見つけるには、Okta 管理コンソールを開き、「Security」 > 「API」 > 「Authorization Servers」 > 「default」 > 「Settings」に移動します。「Metadata URI」をクリックし、introspection_endpoint の値を見つけます。これは次のようになります。
https://<一意のサーバー名>.okta.com/oauth2/default/v1/introspect
clientId
これは、Okta の ThingworxResourceProvider アプリケーションの「Client ID」フィールドと同じ値になります。
この値を見つけるには、Okta 管理コンソールを開き、左側のナビゲーション枠で「Applications」 > 「Applications」に移動します。ThingworxResourceProvider アプリケーションをクリックします。「General」タブの「Client Credentials」で、「Client ID」フィールドを見つけます。
clientSecret
これは、Okta の ThingworxResourceProvider アプリケーションの「Client secret」フィールドと同じ値になります。
この値を見つけるには、Okta 管理コンソールを開き、左側のナビゲーションパネルで「Applications」をクリックします。ThingworxResourceProvider アプリケーションをクリックします。「General」タブの「Client Credentials」で、「CLIENT SECRETS」セクションを見つけます。
9. Postman を使用して OAuth アクセストークンを取得します。詳細については、Postman を使用した ThingWorx 管理者の OAuth アクセストークンの取得を参照してください。
10. 次に、Experience Service のアプリ統合を作成します。