Active Directory でのユーザーの管理
ユーザーが Microsoft Active Directory (AD) ディレクトリサービスにすでに存在する場合、ThingWorx でユーザーおよびユーザーグループを管理できます。ThingWorx では、Active Directory ユーザーグループを ThingWorx ユーザーグループにマッピングできます。ユーザープロビジョニングオプションを使用して、ユーザーの作成、修正、または削除を行うことができます。アクセス許可は、ユーザーグループごとに ThingWorx で管理されます。
* 
ThingWorx のデフォルトでは、Active Directory 機能は無効になっています。ThingWorx での認証に Active Directory を使用するには、まず ThingWorx 管理者ユーザーが Active Directory を有効にする必要があります。
このトピックには以下の情報が含まれています。
はじめに
開始するには、エンティティが含まれている XML ファイルを ThingWorx にインポートすることによって、ディレクトリサービスを ThingWorx に作成します。ファイルがインポートされた後、ThingWorx でディレクトリサービスを設定できます。XML ファイルを操作するとき、以下の規則に従ってください。
XML ファイルには、DirectoryService エレメントの className 属性として、com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService Java クラスを使用するディレクトリサービスが 1 つ以上含まれている必要があります。
DirectoryService エレメントの name には、一意の値を指定する必要があります。
また、name の値は、ThingWorx ランタイム内に存在するすべてのディレクトリサービスにわたって一意でなければなりません。
priority 属性には、一意の認証優先順位の番号を指定する必要があります。さらに、ファイル内および ThingWorx ランタイム内の各ディレクトリサービスに一意の優先順位を追加しなければなりません。この優先順位は、ThingWorx が資格証明を検証する際にディレクトリサービスを参照する順序に対応しています。
* 
ディレクトリサービスは、リンクされた認証優先順位に従って使用されます。最も低い優先順位が設定されたディレクトリサービス (以下の例では 1) がユーザー認証の検証に失敗した場合は、このチェーンで次に高い優先順位が設定されたディレクトリサービスに対してユーザーの検証が試行されます。以下の例を参照してください。
XML の例: 単一のディレクトリサービス
以下の例には、ThingWorx 内で新規のディレクトリサービスをインポートするために必要な最小限のコンフィギュレーション XML ファイルが含まれています。
* 
以下の例は管理者ユーザー向けです。

<Entities>
<DirectoryServices>
<DirectoryService
className="com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService"
description="Active Directory Directory Services"
documentationContent="" enabled="false" homeMashup=""
lastModifiedDate="" name="ADDS1" priority="1" projectName=""
tags="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables/>
<ConfigurationChanges />
</DirectoryService>
</DirectoryServices>
</Entities>

XML の例: 2 つのディレクトリサービス
以下の例では、2 つのディレクトリサービスがあります。各 DirectoryService で、priority 属性が定義されています。
<Entities>
<DirectoryServices>
<DirectoryService
className="com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService"
description="Active Directory Directory Services"
documentationContent="" enabled="false" homeMashup=""
lastModifiedDate="" name="ADDS1" priority="1" projectName=""
tags="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables/>
<ConfigurationChanges />
</DirectoryService>
<DirectoryService
className="com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService"
description="Active Directory Directory Services"
documentationContent="" enabled="false" homeMashup=""
lastModifiedDate="" name="ADDS2" priority="2" projectName=""
tags="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables/>
<ConfigurationChanges />
</DirectoryService>
</DirectoryServices>
</Entities>
ディレクトリサービスのコンフィギュレーション
Active Directory ディレクトリサービス用の XML ファイルをインポートした後、これを設定する必要があります。ThingWorx Composer のコンフィギュレーションページにアクセスするには、以下の手順に従います。
1. 「ブラウズ」ナビゲーションパネルで、「セキュリティ」を展開し、「ディレクトリサービス」を選択します。
2. 「ディレクトリサービス」ページで、Active Directory ディレクトリサービスの名前をクリックします。そのディレクトリサービスの「一般情報」ページが表示されます。
3. 「有効」チェックボックスをオンにしてこのディレクトリサービスを有効にし、「保存」をクリックします。
4. 「コンフィギュレーション」を選択して「コンフィギュレーション」ページを表示します。ディレクトリサービスを設定する準備が整いました。
* 
このセクションおよび以降の各セクションで説明するコンフィギュレーションオプションはすべて、ディレクトリサービスエンティティの「コンフィギュレーション」ページに表示されます。コンフィギュレーションのエラーメッセージについては、 コンフィギュレーションのエラーメッセージを参照してください。
ThingWorx へのログイン時にユーザー入力の資格証明を検証するには、User Base Distinguished Name コンフィギュレーションテーブル設定内で、ユーザーオブジェクトとそのオブジェクトに対するパスワードを検索します。Active Directory エンティティ上のドメインを指定する場所は 2 つあり、これらは相互に完全に独立した状態にできます。グループの検索時には Domain Distinguished Name が使用されるので、グループマッピング機能を使用する場合には、ユーザーが存在するすべてのグループが、指定された Domain Distinguished Name 値に該当することを確認します。User Base Distinguished Name は、ThingWorx へのログイン時に指定されたユーザー名とパスワードによって、Active Directory 内のユーザーオブジェクトを検索するときに使用される場所です。
* 
複数のディレクトリサービスオブジェクトを設定するときには、Active Directory 構造内でユーザーサーチベースが重ならないようにします。
接続の設定
v.8.3.5 では、Active Directory コンフィギュレーションの「接続の設定」セクションに「動的ユーザーのログイン」オプションが含まれています。改訂されたページを以下に示します。
以下の表に、ディレクトリサービスの「接続の設定」の説明を示します。接続の設定のフィールドはすべて必須です。
名前
説明
XML 属性名
デフォルト値
値の例
URI スキーム
Active Directory サーバーとの通信に使用される関連プロトコルを指定する文字列。
protocol
LDAP
LDAP
サーバー FQDN または IP アドレス
ディレクトリの照会の対象となるサーバー名/アドレス。
server
localhost
localhost、domainserver.acme.com、127.0.0.1
サーバーネットワークポート
ディレクトリの照会の対象となるサーバーのポート。
port
389
389、369、10389
ドメイン識別名
ユーザーグループの検索時に使用するトップレベルディレクトリの識別名。
domain
該当なし
DC=test、DC=acme、DC=com
動的ユーザーのログイン
動的ユーザーのログインが有効かどうかを決定します。詳細については、次のセクションを参照してください。
dynamicUserLogin
このチェックボックスは空 (無効) になっています。
このチェックボックスをオンにします。
管理プリンシパル名
指定されたドメインオブジェクトに対して管理読み取りアクセス権を持つユーザーの名前。この名前の値は、「スキーママッピング」コンフィギュレーションテーブルで指定された User Id Attribute によって決まります。
adminPrincipal
該当なし
AcmeAdmin
管理パスワード
「接続の設定」コンフィギュレーションテーブルで指定された「管理プリンシパル名」のパスワード。
adminPassword
該当なし
AcmePassword
動的ユーザーのログイン
* 
「動的ユーザーのログイン」を有効にしたときには、ThingWorx Platform で同じユーザー名を使用してユーザー認証を行うことをお勧めします。それを行わない場合、ThingWorx Platform の現在の制限により、同じユーザーに対して複数の ThingWorx Platform アカウントが作成されます。たとえば、あるユーザーがその displayName である testuser を使用してログインしたとします。プラットフォームに testuser という名前のユーザーアカウントが作成されます。ただし、同じユーザーがその Universal Principal Name (UPN) (この例では testuser@domain.com) を使用してログインした場合、このプラットフォームにユーザー testuser@domain.com も作成されます。
「動的ユーザーのログイン」が有効になっている場合、「管理プリンシパル名」と「管理プリンシパルパスワード」の接続設定は無視されます。ThingWorx Platform ディレクトリにログインするユーザーは、そのユーザー名とパスワードを使用して Active Directory で認証されます。現在サポートされている Active Directory の認証方法は、displayName、UPN、および domain\samAccountName を使用する方法です。
「動的ユーザーのログイン」が無効になっている場合、ユーザーログインのワークフローは ThingWorx Platform 8.3.0 から 8.3.4 までのものと同じままです。
グループマッピング
マッピングを意図したとおりに設定するには、ユーザーとグループに対する ThingWorx の 表示アクセス許可、および 組織の規則を理解しておかなければなりません。アクセス許可が正しく割り当てられていなければ、アクセスする権限を持つべきではないユーザーがコンテンツにアクセスできる可能性があります。
グループマッピングは必須ではありませんが、グループマッピングを使用しなければ、ユーザーをプロビジョニングまたは更新する場合に、アクセス許可に制限が生じます (デフォルトのアクセス許可のみがユーザーに与えられる)。
「グループマッピング」コンフィギュレーションは Active Directory ディレクトリサービスの「コンフィギュレーション」ページのほぼ中央にあります。グループマッピングをセットアップするには
1. ThingWorx Composer で、Active Directory ディレクトリサービスに移動します (「セキュリティ」 > 「ディレクトリサービス」 > 「<Active Directory のサービス名>」)。
2. 「コンフィギュレーション」ページを開き、「グループマッピング」セクションまで下方スクロールし、以下の図に示す「追加」をクリックします。
3. 「グループマッピング」ウィンドウの「Active Directory グループ名」フィールドに、ThingWorx グループにマッピングする Active Directory グループの名前を入力します。
4. 以下に示すように、「ThingWorx グループ名」フィールドの + 記号をクリックして、ThingWorx グループのドロップダウンリストを表示します。ここでは「アドバンスサーチ」を使用して、特定のエンティティによってフィルタするなどの詳細を指定できます。このドロップダウンリストは v.8.3.5 の ThingWorx で使用できます。
* 
以下の GroupMappings フォームは「動的ユーザーのログイン」が無効になっている場合に表示されます。
5. 以下のバージョンの GroupMappings フォームでは、「Dynamic Group Login」が有効になっている場合、「資格証明が必要です」というメッセージが表示されます。「Active Directory グループ名」を入力するには、緑色のロックアイコンをクリックします。
6. 「資格証明を指定」ダイアログが表示された場合、AdministrativePrincipalNameAdministrativePassword を設定し、「設定」をクリックします。
次の表に、グループマッピングの設定の説明を示します。
グループマッピング
名前
説明
有効な値
アクティブなディレクトリグループ名
ランタイムでのアクセス許可/認証の検証のために ThingWorx グループに関連付けられる、またはマップされる Active Directory グループの名前。
設定されたドメインの下で Active Directory 内の groupObjectClass オブジェクトに対応するグループ名を含む、空でなくブランクでない文字列。
ThingWorx グループ名
ランタイムに使用される ThingWorx アクセス許可/認証のコンフィギュレーションを含む ThingWorx グループの名前。Active Directory によってプロビジョニングされるユーザーは、この ThingWorx グループに追加されます。この ThingWorx グループにマップされる Active Directory グループは、ユーザーが所属する Active Directory グループに基づきます。
ThingWorx のグループエンティティに対応するグループ名を含む、空でなくブランクでない文字列。
「動的ユーザーのログイン」でのグループマッピング
v.8.3.5 で「動的ユーザーのログイン」が追加されたことに伴い、GetDomainGroups および IsValidGroup サービスは、「動的ユーザーのログイン」機能が有効になっている場合、UI などから Active Directory 管理者ユーザーの資格証明を渡すことができる引数をとります。「動的ユーザーのログイン」が無効になっている場合 (デフォルト)、管理者ユーザーの資格証明は IsValidGroup および GetDomainGroups サービスではオプションです。TestConnection サービスは必要なすべての資格証明で動作します。パラメータが空の場合、これらのサービスは管理者の資格証明を使用します。
グループマッピングでのグループ検証
v.8.3.5 の ThingWorx Composer では、「グループマッピング」ページのテキストボックスに Active Directory グループの名前を入力できます。ドロップダウンリストから Active Directory グループを選択するオプションも引き続き使用可能です。このテキストボックスにはグループの名前または完全な識別名を入力できます。たとえば、名前 TestGroup は単純名、CN=TestGroup, CN=Users, DC=domain, DC=com は完全な識別名です。
v.8.3.5 では IsValidGroup サービスも提供されており、Active Directory での有効なグループの名前をサーチできます。このサービスは、検索するグループの名前を指定する単一の STRING パラメータ groupName をとります。このサービスはそのグループが Active Directory に存在するかどうかを示す BOOLEAN の結果を返します。
* 
groupName の入力の一部としてワイルドカード文字 ("*") は使用できません。
ネストされたグループメンバーシップ
v.8.3.5 では、Active Directory コンフィギュレーションの「スキーママッピング」セクションで「マッピングされている祖先グループにユーザーを追加」コンフィギュレーションオプションを使用できます。ネストされたグループメンバーシップを BOOLEAN 設定によって有効または無効にします。
ネストされたグループメンバーシップを有効にすると、以下が行われます。
拡張可能な一致規則を使用して Active Directory が照会されて、ユーザーが属しているグループと、それらのグループが属しているグループの両方が、ネストの任意の深さまで取得されます。
これらのグループが「グループマッピング」テーブルと比較され、結果の ThingWorx ユーザーがユーザーグループに割り当てられます。
このオプションによって、Active Directory での負荷が増大してパフォーマンスに影響が生じたり、大きな結果セットが生成されたりする可能性があります。
ネストされたグループメンバーシップが無効になっている場合、ワークフローは ThingWorx Platform v.8.3.0 から 8.3.4 までのものと同じです。
スキーママッピング
認証およびグループの取得/マッピングが機能するためには、このセクションの「ユーザー ID の属性名」、「グループオブジェクトクラス名」、「グループメンバーシップ属性名」、「グループ属性名」、「ユーザーフラグの属性名」、「ユーザー制御属性の無効なビット」、「ユーザー制御属性のロックアウトビット」のフィールドの入力が必須です。
スキーママッピング
名前
説明
XML 属性名
デフォルト値
値の例
ユーザー ID の属性名
ThingWorx へのログイン時に指定されたユーザー名と一致させるために使用される、ユーザー名の値を含む属性の名前。
attributeUserIdName
cn
cn、userPrincipleName
ユーザーベースの識別名
ユーザーの資格証明の検証時に使用する最上位レベルディレクトリの識別名。
userBaseDN
ou=people
DC=test、DC=acme、DC=com
グループオブジェクトクラス名
オブジェクトがグループであることを示す objectClass 属性の値。グループオブジェクトが照会され、「グループマッピング」コンフィギュレーションテーブルの Active Directory/ThingWorx グループマッピングに表示されます。
groupObjectClass
group
group
LDAP フィルタをグループ化してドメイングループをフィルタ
多数のドメイングループをフィルタできます。
* 
多数のグループがある場合は、このパラメータを設定する必要があります (未設定のままにしないでください)。未設定のままにした場合、多数のグループを読み込む際のパフォーマンスが低下する可能性があります。
groupLdapFilter
該当なし
(cn=a_testgroup111*)(cn=b_testgroup222*)
グループメンバーシップ属性名
ユーザーまたはグループが別のグループの "メンバー" であることを示す属性の名前。Active Directory のユーザー内の memberOf エントリごとに、memberOf エントリに指定されている Active Directory グループにマップされた ThingWorx グループに、そのユーザーがメンバーとして追加されます。
memberOfAttribute
memberOf
memberOf
グループ属性名
ThingWorx UI (具体的には、「グループマッピング」コンフィギュレーションテーブルの選択項目) にグループの表示名を読み込むために使用する属性の名前。
* 
distinguishedName を使用して、Active Directory 内のグループの位置への完全なパスを表示します。これにより、1 つのグループが複数のドメインに存在する場合に、そのグループが属すサブドメインのコンテキストが提供されます。
groupAttribute
cn
cn
ユーザーフラグの属性名
詳細については、 https://msdn.microsoft.com/en-us/library/cc223145.aspx を参照してください。
userControlAttribute
userAccountControl
userAccountControl
ユーザー制御属性の無効なビット
指定されたユーザーフラグの属性名に含まれる無効ビットフラグの整数/10 進値 (つまり、デフォルトの userControlAttribute)。詳細については、 https://msdn.microsoft.com/en-us/library/cc223145.aspx を参照してください。
userDisableBit
2
2
ユーザー制御属性のロックアウトビット
指定されたユーザーフラグの属性名に含まれるロックアウトビットフラグの整数/10 進値 (つまり、デフォルトの userControlAttribute)。詳細については、 https://msdn.microsoft.com/en-us/library/cc223145.aspx を参照してください。
userLockoutBit
16
16
フォレスト名の識別子
ドメインコントローラのコレクション/フォレストを識別します。同じ文字列で設定されている各ディレクトリサービスオブジェクトは、「グループマッピング」コンフィギュレーション内で互いのドメインからグループをマッピングできるようになります。このオプションの使用例については、次のセクションを参照してください。
forestNameIdentifier
該当なし
ユーザープロビジョニング
ユーザープロビジョニングでは、ThingWorx でユーザーを自動的に作成、修正、および削除するオプションを使用できます。
名前
説明
XML 属性名
デフォルト値
注記
ユーザー作成有効
ログインリクエストを処理する Active Directory サーバーでユーザー資格証明が正しく検証された場合に、ThingWorx ユーザーの自動作成/プロビジョニングを行うかどうかを制御します。
このフィールドがオンの場合は、指定されたログインユーザー名と、「User Default Settings」コンフィギュレーションテーブルに指定されたデフォルト値を使用して、ユーザーが作成されます。
このフィールドがオフまたは false (デフォルト) の場合、ユーザーがログインを試みる前に ThingWorx に存在していなければなりません。
ログインを正常に実行するには、ユーザーが ThingWorx に存在している必要があります。「ユーザープロビジョニング除外リスト」コンフィギュレーションテーブルにユーザーが含まれている場合、このフィールドはユーザーの自動作成に影響を及ぼしません。
userCreationEnabled
false
ThingWorx でディレクトリサービスによるユーザーの自動作成を可能にする場合は、true に設定します。
ユーザー修正有効
ログインリクエストを処理する Active Directory サーバーでユーザー資格証明が正しく検証された場合に、ThingWorx ユーザーの自動更新/プロビジョニングを行うかどうかを制御します。
このフィールドがオンまたは true の場合、ユーザーはログインが試行されるたびに更新されます。ユーザーの更新は、「User Default Settings」コンフィギュレーションテーブルに指定されているデフォルト値を使用して行われます。
このフィールドがオフまたは false の場合は (デフォルト)、ユーザーが自動作成/プロビジョニングされたときにログインが最初に試行された後には、ログインの試行のたびにユーザーが更新されることはありません。ログインを正常に実行するには、ユーザーが ThingWorx に存在している必要があります。
「ユーザープロビジョニング除外リスト」コンフィギュレーションテーブルにユーザーが含まれている場合、このフィールドはユーザーの自動更新に影響を及ぼしません。
userModificationEnabled
false
ThingWorx でディレクトリサービスによるユーザーの更新を可能にする場合は、true に設定します。
ユーザー削除有効
ログインリクエストを処理する Active Directory サーバーにユーザーが存在しない場合に、ThingWorx ユーザーの自動削除/プロビジョニング解除を行うかどうかを制御します。
フィールドがオンまたは true の場合、ユーザーはログイン試行時に削除されます。
フィールドがオフまたは偽の場合、ユーザーはログイン試行時に削除されません。ログインと削除を正常に実行するには、ユーザーが ThingWorx に存在する必要があります。ユーザープロビジョニング除外リストコンフィギュレーションテーブルにユーザーが含まれている場合、このフィールドはユーザーの自動削除に影響を及ぼしません。
userDeletionEnabled
false
ThingWorx でディレクトリサービスによるユーザーの削除を可能にする場合は、true に設定します。
ユーザーのデフォルト設定
次の表に、ユーザーに対して使用可能なデフォルト設定の説明を示します。これらのフィールドはオプションです。
名前
説明
XML 属性名
有効な値
注記
プロビジョニングされたユーザーのデフォルトのドメインプレフィックス
ドメインサーバー Y のユーザー X と、ドメインサーバー Z のユーザー X を区別するために、ユーザー名のプレフィックスとして付けられることが想定される文字列の値。
これにより、設定された Active Directory ディレクトリサービスは、検証対象のユーザーを管理の対象としていることを明示的に認識できます。値が設定されている場合、Active Directory ディレクトリサービスはユーザーの検証やプロビジョニングは行わず、代わりにセキュリティメッセージをログに記録して、ユーザーのログイン試行を、チェーン内で次の ThingWorx ディレクトリサービスに渡します。
* 
同じユーザーが複数のドメインサーバーとそれらのドメインに存在する場合は、ドメインプレフィックスを使用することをお勧めします。これにより、ユーザーの検証が失敗したときに、"下流への伝搬" 機能によって生じる可能性がある不確定な挙動を最小限に抑えることができます。
userDefaultDomainPrefix
空の文字列、または有効なエンティティ名の文字を含む任意の文字列
設定されているドメインサーバーが複数ある場合は、このコンフィギュレーションを使用してください。たとえば、NA または EUR をドメインプレフィックスとして使用できます。
* 
この設定によって、Active Directory とのバインドを試みる前にユーザー認証時に入力されたユーザー名から、プロビジョニングされたユーザーのデフォルトのドメインプレフィックスが削除されるので、「動的ユーザーのログイン」を有効にした場合に予期しない結果が生じることがあります。たとえば、「プロビジョニングされたユーザーのデフォルトのドメインプレフィックス」が "mydomain\" に設定されているときに、ThingWorx での認証時に "mydomain\username" と入力した場合、認証のために "username" だけが Active Directory に送信されます。"mydomain\username" がそのユーザーの Active Directory 内での domain\samAccountName である場合でも、そのユーザーの認証が失敗することがあります
* 
複数の Active Directory ドメインに同じユーザー名が存在する場合、ログインしているユーザーが Active Directory 内に存在する実際のユーザーでなければ認証に失敗します。これは照会の順序に基づきます。
プロビジョニングされたユーザーのデフォルトの説明
プロビジョニングされたすべてのユーザーの説明として設定される、説明文字列の値。これは、たとえば「ドメインサーバー Y によって自動プロビジョニング」のように、ユーザーにコンテキスト情報を追加できる便利な設定です。
userDefaultDescription
空の文字列、または任意の説明の文字列
プロビジョニングされたすべてのユーザー (つまり、自動作成/更新されたユーザー) にデフォルトの説明を付ける場合は、このオプションを使用する必要があります。
プロビジョニングされたユーザーのデフォルトのホームマッシュアップ
プロビジョニングされたすべてのユーザーのデフォルトマッシュアップとして設定される、ホームマッシュアップ名の値。この設定により、プロビジョニングされたすべてのユーザーが、ThingWorx へのログイン時に共通のホームマッシュアップから開始できます。これらのマッシュアップの例としては、ゲストホームマッシュアップ、セルフサービスホームマッシュアップ、オペレータホームマッシュアップなどがあります。
userDefaultHomeMashupName
設定を解除する場合は空の文字列、それ以外の場合は有効な既存のマッシュアップ名
プロビジョニングされたすべてのユーザー (つまり、自動作成/更新されたユーザー) にデフォルトのホームマッシュアップを使用する場合は、このオプションを使用する必要があります。
たとえば、すべてのユーザーに対して、ThingWorx アプリケーションに入るときに同じ GuestMashup、SelfServiceMashup、または LandingPageMashup を初期に指定する場合に、このオプションが便利です。
プロビジョニングされたユーザーのデフォルトのモバイルマッシュアップ
モバイルデバイスで使用される、プロビジョニングされたすべてのユーザーに対して設定されたモバイルマッシュアップ名の値。この設定により、プロビジョニングされたすべてのユーザーが、ThingWorx へのログイン時に共通のモバイルマッシュアップから開始できます。これらのマッシュアップの例としては、ゲストモバイルマッシュアップ、セルフサービスモバイルマッシュアップ、オペレータモバイルマッシュアップなどがあります。
userDefaultMobileMashupName
設定を解除する場合は空の文字列、それ以外の場合は有効な既存のマッシュアップ名
プロビジョニングされたすべてのユーザー (つまり、自動作成/更新されたユーザー) にデフォルトのモバイルマッシュアップを使用する場合は、このオプションを使用します。
たとえば、すべてのユーザーに対して、ThingWorx アプリケーションに入るときに同じ GuestMashup、SelfServiceMashup、または LandingPageMashup を初期に指定する場合に、このオプションが便利です。
プロビジョニングされたユーザーのデフォルトのタグ
プロビジョニングされたすべてのユーザーに対して設定されるモデルタグのセット。この設定を使用すると、プロビジョニングされたすべてのユーザーに対して、サーチ/コンテキストの識別に使用できる共通のタグを指定できます。これらのタグの例としては、オペレータタグ、ProvisionedByDomainServerY、ProvisionedByDomainServerZ などがあります。
userDefaultTags
設定を解除する場合は空の文字列、それ以外の場合は有効な既存のタグ名
プロビジョニングされたすべてのユーザー (つまり、自動作成/更新されたユーザー) にモデルタグのデフォルトセットを指定する場合は、このオプションを使用する必要があります。
ユーザープロビジョニング除外リスト
Active Directory ディレクトリサービスの管理者が、このコンフィギュレーションテーブルを使用して特定の ThingWorx ユーザーを除外することにより、そのユーザーは Active Directory ディレクトリサービスのユーザープロビジョニング機能の対象外になります。
ユーザープロビジョニング機能には、ユーザーの作成、修正、および削除が含まれます。Active Directory ディレクトリサービスを使用して ThingWorx を設定する際に、既存のユーザーについてはコンフィギュレーションと存在を Active Directory によって管理せずに、資格証明の検証にのみ使用する場合があります。これらのタイプのユーザーは、「ユーザープロビジョニング除外リスト」コンフィギュレーションに追加しなければなりません。
* 
管理者ユーザーはこのリストに自動的に追加されます。除去することはできません。
管理者ユーザーは、作成または破棄できないデフォルトの ThingWorx ユーザーです。管理者ユーザーを自動的に修正することはできません。自動修正が行われると、ログイン時に不要なコンフィギュレーションの変更が生じる可能性があります。
ユーザーのログインのシナリオ
以下の表は、ThingWorx 内の Active Directory ディレクトリサービスで設定されたコンフィギュレーションオプションに応じた、ThingWorx へのログイン試行時のユーザーの実行前と実行後の状態を示しています。
* 
以下のシナリオによって、Active Directory サーバー内のユーザーの状態/構成が変更されることはありません。
太字の項目は、ThingWorx 内でユーザーの実行後状態を決定する主な要因です。
AD サーバーでのユーザーの状態
ThingWorx でのユーザーの実行前状態
コンフィギュレーションオプション
ThingWorx でのユーザーの実行後状態
存在しない
存在しない
すべてのコンフィギュレーション
存在しない
ログインには使用不可
存在しない
存在する (ThingWorx 管理者によって手動で作成される)
ThingWorx でパスワードが設定された/存在している
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされている
存在する
修正または削除されない
ログインに使用可能
存在しない
存在する (ThingWorx 管理者によって手動で作成される)
ThingWorx でパスワードが設定されていなかった、または存在しない
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされている
存在する
修正または削除されない
ログインには使用不可
存在しない
存在する (ThingWorx 管理者によって手動で作成される)
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされていない
存在しない
ログインには使用不可
存在しない
存在する (ThingWorx 管理者によって手動で作成される)
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が無効
「ユーザープロビジョニング除外リスト」にリストされていない
存在しない
ログインには使用不可
存在する
存在しない
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされている
存在しない
ログインには使用不可
存在する
無効
存在しない
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされていない
存在しない
ログインには使用不可
存在する
ロック済み
存在しない
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされていない
存在しない
ログインには使用不可
存在する
存在しない
ユーザープロビジョニングの作成が無効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされていない
存在しない
ログインには使用不可
存在する
存在しない
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされていない
存在する (作成される)
マッピングされたグループにメンバーとして追加される
デフォルトのユーザー設定が追加される
ログインに使用可能
存在する
存在する
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされていない
ユーザーのデフォルト設定が構成されている
ユーザーが修正される
マッピングされたグループのメンバーとして追加/除去される
デフォルトのユーザー設定が追加される
ログインに使用可能
存在する
存在する
ユーザープロビジョニングの作成が有効
ユーザープロビジョニングの修正が有効
ユーザープロビジョニングの削除が有効
「ユーザープロビジョニング除外リスト」にリストされている
ユーザーのデフォルト設定が構成されている
ユーザーは修正されない
ログインに使用可能
存在する
ロック済み
存在する
すべてのコンフィギュレーション
ユーザーはロックされている
ログインには使用不可
存在する
無効
存在する
すべてのコンフィギュレーション
ユーザーは無効
ログインには使用不可
ユーザーのロックアウトのシナリオ
アカウントのロックアウト設定は、ThingWorx の ユーザー管理サブシステムで構成されます。
ロックアウトマネージャは、ロックの評価に基づいてロックアウトを決定するシステム (ThingWorx または Active Directory) として定義されています。
以下の表では、次に示すキーが使用されます。
ThingWorx のロックアウト試行のコンフィギュレーション: TLA
Active Directory のロックアウト試行のコンフィギュレーション: ADL
ロックの評価
ロックアウトマネージャ
ロックアウトマネージャの最大試行回数のコンフィギュレーション例
操作
結果
TLA > ADL
ADL
2 回の試行
ThingWorx が Active Directory 内でロックされているユーザーを検出する
ThingWorx ユーザーはすぐにロックされる
TLA > ADL
ADL
2 回の試行
ユーザーがログインを 2 回間違える
2 回の試行後に ThingWorx ユーザーがロックされる
TLA = ADL
* 
推奨されるロックアウトのコンフィギュレーションは、ThingWorx と Active Directory を一致させることです。
ADL
2 回の試行
ユーザーがログインを 2 回間違える
2 回の試行後に ThingWorx ユーザーがロックされる
TLA < ADL
ADL
2 回の試行
ユーザーがログインを 2 回間違える
2 回の試行後に ThingWorx ユーザーがロックされる
Active Directory または ThingWorx ディレクトリサービスの変更
ドメインサーバー内でユーザーを削除または更新すると、関連付けられている ThingWorx Active Directory ディレクトリサービス内でグループマッピングが更新されます。ユーザーのデフォルト設定を変更する場合は、ThingWorx でそのユーザーの CurrentSessionInfo リソースにある TerminateUserSessions サービスを使用することをお勧めします。
* 
以下に示すコンフィギュレーション変更のいずれかが行われた場合に、前のコンフィギュレーションで作成されたユーザーが存在すると、Active Directory ディレクトリサービスは過去のユーザーを新規ユーザーにマイグレーションできません。代わりに、「ユーザー ID の属性名」またはドメイン (あるいはその両方) で指定された属性によって設定される新しい値または異なる値に基づいて、新規ユーザーが作成および管理されます。
「スキーママッピング」コンフィギュレーション内の「ユーザー ID の属性名」の値がユーザー名である。
ドメインプレフィックスが変更された。
Active Directory から ThingWorx UserExtension プロパティへのユーザー属性のマッピング
新規 Active Directory ユーザーがログインすると、ThingWorx でそのユーザーが作成され、Active Directory での Create User の設定によっては、そのユーザーが自動的にプロビジョニングされることがあります。以下の表で説明するオプションを使用して、マッピング属性を Active Directory サーバーから ThingWorx でのそのユーザーの UserExtension プロパティテーブルに自動的にマッピングできます。既存の Active Directory ユーザーがログインすると、そのユーザーの UserExtension マッピングに修正された値が取り込まれます。新しい UserExtension コンフィギュレーションテーブル行マッピングを追加した場合は、ユーザーの UserExtension プロパティに新しいデータが取り込まれます。
ThingWorx Composer でマッピングをセットアップするには、次の操作を行います。
1. Composer で、Active Directory ディレクトリサービスに移動します (「セキュリティ」 > 「ディレクトリサービス」 > 「<Active Directory のサービス名>」)。
2. 「コンフィギュレーション」ページを表示し、「ユーザー情報プロパティマッピングのコンフィギュレーションテーブル」セクションまで下方スクロールし、以下に示すように「追加」をクリックします。
3. 「UserExtensionPropertyMapping」ウィンドウの「Active Directory 属性名」フィールドに、ThingWorx プロパティに自動的にマッピングする Active Directory 属性の名前を入力します。以下のスクリーンショットには、ThingWorx プロパティを選択するドロップダウンメニューが示されています。このドロップダウンメニューは v.8.3.5 以降の ThingWorx で使用できます。このリストでいずれかの値を選択します。
4. 選択を行って「追加」をクリックすると、コンフィギュレーションテーブルに新しい行が表示されます。
以下のコンフィギュレーションテーブルのオプションが使用できるのは、ThingWorx 8.2.1 以降のみです。
属性
説明
activeDirectoryAttributeName
マッピング可能な Active Directory ユーザーの属性内の属性の名前。このフィールドを空白のままにすることで、Active Directory から同期化されるすべてのユーザーにデフォルト値を指定できます。
* 
属性が指定されているが Active Directory のユーザー内で見つからない場合、アプリケーションログに以下のエラーメッセージが表示されます。
Attribute: <attribute_name> not found.
userExtensionPropertyName
Active Directory 属性にマッピングする必要がある、ThingWorx ユーザーの UserExtension テーブル内のユーザー情報プロパティの名前。
* 
userExtensionProperty の名前が無効であるというエラーメッセージがアプリケーションログに表示されている場合は、 トラブルシューティング: UserExtension プロパティの無効な名前を参照してください。
userExtensionDefaultValue
属性が AD サーバーで見つからなかったか、無効または空であった場合の、UserExtension プロパティのデフォルト値。
複数のドメインに存在するユーザーとグループのマッピング
「フォレスト名の識別子」オプションを使用して、別個の Active Directory ドメイン内のグループのメンバーであるユーザーを、ThingWorx で各グループにマッピングできます。このフィールドに任意の文字列が設定されると、ドメインコントローラのコレクション/フォレストが識別されます。同じ文字列で設定されている各ディレクトリサービスオブジェクトは、「グループマッピング」コンフィギュレーション内で互いのドメインからグループをマッピングできるようになります。
フォレスト名の識別子の値
結果
<空白> または空の文字列
グループは、要求先の特定のディレクトリサービスオブジェクトからのみ表示される。
その他のディレクトリサービスコンフィギュレーションとは一致しない文字列
グループは、要求先の特定のディレクトリサービスオブジェクトからのみ表示される。
1 つ以上のディレクトリサービスコンフィギュレーションと一致する文字列
グループは、要求先の特定のディレクトリサービスオブジェクトから、およびフォレスト名の識別子が一致する別のディレクトリサービスオブジェクトからのみ表示される。
例 1: グループは、要求される特定のディレクトリサービスオブジェクトと、フォレスト名の識別子が一致する別のディレクトリサービスオブジェクトから表示される。
ドメイン名
設定されるグループ
フォレスト名の識別子の値
マッピングで表示されるグループ
Domain1
Group1、Group2
<空白>
Group1、Group2
Domain2
Group3、Group4
<空白>
Group3、Group4
Domain3
Group5、Group6
<空白>
Group5、Group6
例 2: ディレクトリサービスのすべてのオブジェクトのフォレスト名の識別子が異なっている。
ドメイン名
設定されるグループ
フォレスト名の識別子の値
マッピングで表示されるグループ
Domain1
Group1、Group2
"domainForest1"
Group1、Group2
Domain2
Group3、Group4
"DomainForest"
Group3、Group4
Domain3
Group5、Group6
"Domain Forest"
Group5、Group6
例 3: 3 つのディレクトリサービスオブジェクトのうち 2 つのフォレスト名の識別子が同じである。
ドメイン名
設定されるグループ
フォレスト名の識別子の値
マッピングで表示されるグループ
Domain1
Group1、Group2
"domainForest"
Group1、Group2、Group3、Group4
Domain2
Group3、Group4
"domainForest"
Group1、Group2、Group3、Group4
Domain3
Group5、Group6
<空白>
Group5、Group6
例 4: ディレクトリサービスのすべてのオブジェクトのフォレスト名の識別子が同じである。
ドメイン名
設定されるグループ
フォレスト名の識別子の値
マッピングで表示されるグループ
Domain1
Group1、Group2
"domainForest"
Group1、Group2、Group3、Group4、Group5、Group6
Domain2
Group3、Group4
"domainForest"
Group1、Group2、Group3、Group4、Group5、Group6
Domain3
Group5、Group6
"domainForest"
Group1、Group2、Group3、Group4、Group5、Group6
インポートの検証に失敗
Active Directory エンティティをインポートする際、XML ファイルで指定されている値がフィールドのデータ型と一致しない場合にだけインポートが失敗します。たとえば、値 test<port> エレメントに指定されている場合、インポートは失敗します。以下に示す XML スニペットではこの問題が発生しています。

<Row>
<adminPassword><![CDATA[]]></adminPassword>
<adminPrincipal><![CDATA[CN=Administrator,CN=Users,DC=domain,DC=com]]></adminPrincipal>
<domain><![CDATA[dc=domain,dc=com]]></domain>
<port>test</port> <================================ INVALID DATA TYPE VALUE FOR <port>. MUST BE AN INTEGER.
<protocol><![CDATA[LDAP]]></protocol>
<server><![CDATA[10.80.21.164]]></server>
</Row>
Composer での表示を以下のスクリーンショットに示します。
以下のエラーがアプリケーションログに書き込まれます。

ERROR: [message: Conversion Error on Field port : Unable To Convert From com.sun.org.apache.xerces.internal.dom.ElementNSImpl to INTEGER]
ERROR: Entity import failed
インポートの検証に成功
必要なフィールドがないかまたはコンフィギュレーションが無効であることが原因で検証に失敗した場合でも、ディレクトリサービスエンティティはインポートできますが、無効のマークが付きます。このエンティティを有効にするには、無効なフィールドを更新する必要があります。
* 
ディレクトリサービスエンティティが有効になるまで、認証に使用できません。無効としてインポートされたディレクトリサービスエンティティを有効にするプロセスは手動です。ThingWorx Composer で無効なエンティティに移動し、これを有効にし、保存します。
無効なコンフィギュレーションの例を以下に示します。無効なパラメータ (protocol) の下にコメントが表示されています。

<Row>
<adminPassword><![CDATA[]]></adminPassword>
<adminPrincipal><![CDATA[CN=Administrator,CN=Users,DC=domain,DC=com]]></adminPrincipal>
<domain><![CDATA[dc=domain,dc=com]]></domain>
<port>test</port>
<protocol><![CDATA[INVALID-PROTOCOL]]></protocol>
<== INVALID CONFIGURATION VALUE FOR <protocol>. MUST BE EITHER LDAP OR LDAPS.
<server><![CDATA[10.80.21.164]]></server>
</Row>
このエンティティは ThingWorx に正常にインポートされることに注意してください。
ただし、そのエンティティ自体の「有効」チェックボックスはオフになっており、そのエンティティは無効になっていることに注意してください。以下に例を示します。
この場合、以下のエラーがアプリケーションログに表示されます。

ERROR: Directory Service Error: The URI Scheme must be LDAP or LDAPS
コンフィギュレーションのエラーメッセージ
次の表に、Active Directory エンティティの無効な設定済みフィールドに基づいてアプリケーションログに表示される可能性のあるエラーメッセージを示します。
コンフィギュレーションのエラーメッセージ
フィールド
コンフィギュレーションセクション
エラーメッセージ
URI スキーム
接続の設定
Directory Service Error: The URI Scheme must be LDAP or LDAPS.
サーバー FQDN または IP アドレス/
サーバーネットワークポート
接続の設定
Directory Service Error: The Server FQDN or IP address cannot be null.
Directory Service Error: java.net.MalformedURLException: Not an LDAP URL: <IP>:<Port> Cannot parse url: <IP><Port
Directory Service Error:
java.net.ConnectException: Connection refused (Connection refused) to 'Server FQDN or IP address' and 'Server Network Port' <IP>:<Port>
サーバーネットワークポート
接続の設定
Directory Service Error: The Server Network port must be in the range of 0 to 65535.
ドメイン識別名
接続の設定
Directory Service Error: The Domain cannot be null.
管理プリンシパル名
接続の設定
Directory Service Error: The Administrative Principal Name cannot be null.
* 
「動的ユーザーのログイン」が有効になっていない/オフになっている場合、管理プリンシパル名が必要です。
管理パスワード
接続の設定
Directory Service Error: The Administrative Password cannot be null.
* 
「動的ユーザーのログイン」が有効になっていない場合、管理パスワードが必要です。
ユーザー ID の属性名
スキーママッピング
Directory Service Error: The attributeUserIdName cannot be null.
ユーザーベースの識別名
スキーママッピング
Directory Service Error: The userBaseDN cannot be null.
グループオブジェクトクラス名
スキーママッピング
Directory Service Error: The groupObjectClass cannot be null.
グループメンバーシップ属性名
スキーママッピング
Directory Service Error: The memberOfAttribute cannot be null.
グループ属性名
スキーママッピング
Directory Service Error: The groupAttribute cannot be null.
ユーザーフラグの属性名
スキーママッピング
Directory Service Error: The userControlAttribute cannot be null.
ユーザー制御属性の無効なビット
スキーママッピング
Directory Service Error: The userDisableBit cannot be null and must be an integer.
ユーザー制御属性のロックアウトビット
スキーママッピング
Directory Service Error: The userLockoutBit cannot be null and must be an integer.
Active Directory グループ名
グループマッピング
Directory Service Error: The activeDirectoryGroupName cannot be null.
ThingWorx グループ名
グループマッピング
Directory Service Error: The thingworxGroupName cannot be null.
プロビジョニングされたユーザーのデフォルトのホームマッシュアップ
ユーザーデフォルト
Directory Service Error: The userDefaultHomeMashupName cannot be an invalid mashup name.
プロビジョニングされたユーザーのデフォルトのモバイルマッシュアップ
ユーザーデフォルト
Directory Service Error: The userDefaulMobileMashupName cannot be an invalid mashup name.
プロビジョニングされたユーザーのデフォルトのタグ
ユーザーデフォルト
Directory Service Error: The userDefaulTags cannot have invalid tags.
Directory Service Error: The userDefaulTags cannot have an invalid tag name.
ThingWorx ユーザー名
ユーザープロビジョニング除外リスト
Directory Service Error: The thingworxUserName cannot be null.
Active Directory への接続のテスト
v.8.3.5 では、「ディレクトリサービス」コンフィギュレーションページの「接続の設定」セクションで、「テスト接続」の下の「検証」ボタンを使用して、現在のコンフィギュレーションに基づいて、Active Directory サーバーへの接続をテストできます。コンフィギュレーションの「接続の設定」セクションの以下のフィールドを使用して Active Directory への接続がテストされます。
URI スキーム
サーバー FQDN または IP アドレス
サーバーネットワークポート
管理プリンシパル名
管理パスワード
「検証」ボタンは TestConnection サービスを開始します。このサービスは以下のパラメータをとります。
TestConnection サービスのパラメータ
パラメータ
ベースタイプ
説明
userName
STRING
Active Directory でのユーザーの名前。
password
STRING
Active Directory ユーザーの暗号化されたパスワード。
protocol
STRING
使用されるスキーマ (LDAP または LDAPS)。
server
STRING
Active Directory インスタンスのホストまたは IP アドレス。
port
INTEGER
Active Directory インスタンスのポート。
接続テストの結果は INFOTABLE である result に返され、これには以下の情報が含まれています。
status: (ブール) Active Directory への接続に成功したかどうかを示します。
message: (文字列) テストに失敗した原因について、役立つ情報を提供するメッセージ。
* 
動的ユーザーのログインが有効になっている場合、管理プリンシパル名と管理パスワードは使用されず、「検証」ボタンは非表示になります。
トラブルシューティング: Active Directory ドメインプレフィックスと動的ユーザーのログイン
Active Directory ディレクトリサービスにはコンフィギュレーション設定 Provisioned User's Default Domain Prefix があり、これは動的ユーザーのログインに影響を与える可能性があります。「ユーザーデフォルト」のセットを以下に示します。
Provisioned User's Default Domain Prefix の設定では、ディレクトリサービスによって認証可能なユーザーを制限するプレフィックスを指定できます。同じ ThingWorx Platform に複数の Active Directory ディレクトリサービスを設定している場合、すべてのディレクトリサービスが同じユーザーの認証を試みないようにするため、このオプションを使用してください。
ただし、このプレフィックスは Active Directory に渡されるユーザー名からは削除されます。指定したプレフィックスがユーザーの Active Directory ドメインである場合、そのユーザーは Active Directory にログインできません。
例:
1. Provisioned User's Default Domain Prefix として DOMAIN\ が指定されています。
2. ユーザー DOMAIN\user1 が ThingWorx Platform へのログインを試みます。
3. Active Directory に渡されるユーザー名から DOMAIN\ が削除され、user1 はログインできません
現在のところ、「動的ユーザーのログイン」が無効になっている Active Directory ディレクトリサービスには、この問題の影響はありません。
この問題を回避するには、以下の事例に従います。
デフォルトのドメインプレフィックスの使用を避ける (推奨) - 「動的ユーザーのログイン」が有効になっている場合、ユーザーのデフォルトのドメインプレフィックスの設定を使用しません。
ユーザーが入力しなければならない別のプレフィックスを使用するか、ユーザーにドメインプレフィックスを 2 回入力してもらう - DOMAIN\SamAccountName を介したログインに必要な、DOMAIN\ プレフィックス以外の追加のプレフィックスを指定できます。たとえば、プレフィックスを PREFIX- にした場合、ユーザーは PREFIX-DOMAIN\prefix でログインします。
トラブルシューティング: UserExtension プロパティの無効な名前
Active Directory 属性を ThingWorx UserExtension プロパティにマッピングする際には、UserExtension プロパティの名前をドロップダウンメニューから選択します。ThingWorx アプリケーションログに次のエラーメッセージが表示されることがあります。
Property name: <property_name> not found
in UserExtensions properties
このエラーは、次の条件によって発生します。
Active Directory ディレクトリサービス用にインポートされた XML ファイルに、userExtensionPropertyName AND の無効な名前が含まれている。
ユーザーが、無効な userExtensionPropertyName が設定されている Active Directory ディレクトリサービスによってログインおよび認証されている。
XML ファイルを手動で編集した場合にこのエラーが発生する可能性があります。無効なエントリを、ThingWorx Composer のディレクトリサービスエンティティ上にある「コンフィギュレーション」ページのユーザー拡張機能プロパティマッピングのテーブルから除去できます。