Explicit Role プラグイン (インスタンスセキュリティ強化)
Explicit Role (com.glide.explicit_roles) プラグインをアクティブ化して、B2B および B2C アプリケーション用の新しい snc_internal および snc_external ロールをインスタンスに提供し、外部ユーザーが内部データにアクセスできないようにします。エンタープライズユーザー (従業員) には内部ロールが必要ですが、非エンタープライズユーザー (非従業員) には外部ロールが必要です。
Explicit Role プラグインをインストールする場合:
- 既存のすべてのユーザーに新しい snc_internal ロールを割り当てます。また、ロールのないすべてのテーブルに snc_internal ロールを割り当てます。
- Explicit Role プラグインをアクティブ化した後にユーザーまたはテーブルを作成すると、Now Platform がユーザーまたはテーブルに snc_internal ロールをアサインします。
- Now Platform では、snc_external ロールが明示的にアサインされていないテーブルに snc_external ロールを持つユーザーがアクセスすることを禁止します。
- public ロールがアサインされたテーブルには、内部ユーザーと外部ユーザーの両方がアクセスできます。
- 一部のサービスポータルウィジェットではログインが必要ですが、特定のユーザーロールは必要ありません。Explicit Roles プラグインをインストールすると、外部ユーザーはこれらのポータルにアクセスできなくなります。
- 外部ユーザーのアクセスを許可するには、ウィジェットを編集して必要なロールを空白から snc_internal, snc_external に変更します。
- この問題の一例として、ケースマネジメントアプリケーションを使用しており、かつ外部ユーザーが自分のケースレコードにファイルを添付できることを必要とする顧客が挙げられます。説明のとおりに Encryption-context-picker ウィジェットの構成を変更すると、外部ユーザーが想定どおりに添付できるようになります。
- ウィジェットの構成の詳細については、「ウィジェットインスタンスオプションの設定」を参照してください。
注:
明示的なロールプラグインが有効であるかどうかにかかわらず、System Update Sets をインスタンス間で移動しないでください。詳細については、「System Update Sets」を参照してください。
ロールの概要
- snc_internal
- このロールは、すべての内部ユーザー (従業員または組織の内部) に割り当てられます。追加された新しいユーザーは、snc_external ロールがまだ割り当てられていない場合、初回のログイン/代理操作中にもこのロールを取得します。ロールのないすべての既存のアクセス制御ルール (ACL) には、「snc_internal」ロールが適用されます。新しい ACL の場合、ACL がロールなしで保存されると、Now Platform によってこのロールが自動的に追加されます。
- snc_external
- このロールは、ユーザーが組織の外部にあり、次の場合を除きリソースにアクセスできないことを示します。
- snc_external ロールに対して ACL によるアクセスを明示的に許可している場合、または
- 追加のロールを明示的に付与した場合。
- 公開
- 公開ロールがアサインされたエンティティには、snc_internal と snc_external の両方のユーザーがアクセスできます。
明示的なロールプラグインを使用する場合:
- 公開ロールを含むテーブルに、非認証の公開ユーザーなどの外部ユーザーに対する機密レコードが含まれていないことを確認し、検証します。
- 公開ロールを持つテーブルに機密データが含まれており、外部ユーザーから機密レコードを制限したい場合は、次のいずれかを行います。
- テーブルから公開ロールを削除します。または
- スクリプト化された ACL をテーブルに追加します。
- Scripted REST APIs などのすべてのエンドポイントが、GlideRecordSecure を使用している、または
canRead()、canWrite()、canUpdate()、およびcanDelete()を使用して、明示的にロールをチェックしているかを確認および検証します。
詳細情報
| 属性 | 説明 |
|---|---|
| プラグイン名 | com.glide.explicit_roles |
| 構成タイプ | [システム定義] > [プラグイン] |
| Instance Security Center での構成 | なし |
| 目的 | 外部ユーザーが内部データにアクセスできないようにすること |
| 推奨値 | 有効 |
| 機能への影響度 | (低) snc_internal ロールはプラグインによって自動的にテーブルにアサインされるため、既存の内部ユーザーは引き続き必要なアクセスを行えるため、大きな影響はありません。 |
| セキュリティリスク | (高) 外部ユーザー (非従業員) は、ロールが割り当てられていない Now Platform 内の多くの機密テーブルにアクセスできます。これらは、内部ユーザー (従業員) のみにアクセスを限定する必要があります。 |
| 参照 | 明示的なロール |
設定手順
明示的なロールを持つ機能またはアプリケーションを作成する場合:
- 新しい機能またはアプリケーションの snc_external ロールを継承するロールを作成します。
- 外部ユーザーを作成する場合は、snc_internal ロールを削除し、snc_external ロールを継承する新たに作成したロールを追加します。
- snc_external ロールを継承する新規ロールを既存のテーブルに追加する場合は、テーブルに機密レコードが含まれていないことを確認および検証してください。
- テーブルを作成する場合は、が承認された内部および外部ユーザーロールのみがテーブルにアクセスできることを検証します。
- スクリプト化された REST API などのエンドポイントを作成する場合は、GlideRecordSecure を使用するか、
canRead()、canWrite()、canUpdate()、およびcanDelete()を使用して明示的にロールをチェックします。
公開ロールでテーブルを作成する場合は、そのテーブルに、非認証の公開ユーザーなどの外部ユーザーに対する機密レコードが含まれないようにしてください。