Explicit Role プラグイン (インスタンスセキュリティ強化)

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む5読むのに数分
  • 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_external ロールを持つユーザーは、プロセッサーや UI ページなどの非レコードタイプのリソースにもアクセスできません。
    公開
    公開ロールがアサインされたエンティティには、snc_internal と snc_external の両方のユーザーがアクセスできます。
    明示的なロールプラグインを使用する場合:
    1. 公開ロールを含むテーブルに、非認証の公開ユーザーなどの外部ユーザーに対する機密レコードが含まれていないことを確認し、検証します。
    2. 公開ロールを持つテーブルに機密データが含まれており、外部ユーザーから機密レコードを制限したい場合は、次のいずれかを行います。
      • テーブルから公開ロールを削除します。または
      • スクリプト化された ACL をテーブルに追加します。
    3. Scripted REST APIs などのすべてのエンドポイントが、GlideRecordSecure を使用している、または canRead()canWrite()canUpdate()、および canDelete() を使用して、明示的にロールをチェックしているかを確認および検証します。

    詳細情報

    属性 説明
    プラグイン名 com.glide.explicit_roles
    構成タイプ [システム定義] > [プラグイン]
    Instance Security Center での構成 なし
    目的 外部ユーザーが内部データにアクセスできないようにすること
    推奨値 有効
    機能への影響度 (低) snc_internal ロールはプラグインによって自動的にテーブルにアサインされるため、既存の内部ユーザーは引き続き必要なアクセスを行えるため、大きな影響はありません。
    セキュリティリスク (高) 外部ユーザー (非従業員) は、ロールが割り当てられていない Now Platform 内の多くの機密テーブルにアクセスできます。これらは、内部ユーザー (従業員) のみにアクセスを限定する必要があります。
    参照 明示的なロール

    設定手順

    明示的なロールを持つ機能またはアプリケーションを作成する場合:
    1. 新しい機能またはアプリケーションの snc_external ロールを継承するロールを作成します。
    2. 外部ユーザーを作成する場合は、snc_internal ロールを削除し、snc_external ロールを継承する新たに作成したロールを追加します。
    3. snc_external ロールを継承する新規ロールを既存のテーブルに追加する場合は、テーブルに機密レコードが含まれていないことを確認および検証してください。
    4. テーブルを作成する場合は、が承認された内部および外部ユーザーロールのみがテーブルにアクセスできることを検証します。
    5. スクリプト化された REST API などのエンドポイントを作成する場合は、GlideRecordSecure を使用するか、canRead()canWrite()、canUpdate()、および canDelete() を使用して明示的にロールをチェックします。

    公開ロールでテーブルを作成する場合は、そのテーブルに、非認証の公開ユーザーなどの外部ユーザーに対する機密レコードが含まれないようにしてください。