手動によるPIIの有効化

手順

  1. プロパティをPIIとしてマークするには、エンティティモデルの定義を編集します。
    1. 任意のテキストエディタで、エンティティモデルの定義を開きます。
    2. definitionsノード配下で、piiという名前のキーを探します。
    3. PIIとしてマークするプロパティの名前を追加します。このプロパティは、propertiesノードの下で定義する必要があります。

      例えば、次のモデルスニペットでは、PIIとして指定されたaddressプロパティを含むCustomerエンティティを定義しています。

      { "info": { ... }, "definitions": { "Customer": { "pii" : ["address"], ..., "properties": { "address": { "datatype": "string", "collation": "http://marklogic.com/collation/codepoint" }, ... } } } }
  2. Gradleタスク mlLoadModulesおよびhubGeneratePiiを実行して、PIIセキュリティ設定ファイルを生成します。
    ./gradlew mlLoadModules hubGeneratePiigradlew.bat mlLoadModules hubGeneratePii
    • mlLoadModulesまたは mlDeploy) - モデルをFINALデータベースにデプロイします。最新バージョンのモデルがまだFINALデータベースにデプロイされていない場合は、このタスクを実行します。
    • hubGeneratePii - FINALデータベースに保存されたエンティティモデルからPIIセキュリティ設定ファイルを生成して、プロジェクトに保存します。
PIIセキュリティ設定ファイルは、プロジェクトの次の場所に保存されます。
  • 保護されたパスは、PROJECT_DIR/src/main/ml-config/security/protected-paths/に保存されます。
  • クエリロールセットは、PROJECT_DIR/src/main/ml-config/security/query-rolesets/に保存されます。
  1. 生成されたPIIセキュリティ設定ファイルをFINALデータベースにデプロイします。
    1. gradle.propertiesを編集し、mlSecurityUsernameおよびmlSecurityPasswordをMarkLogicサーバーの資格情報に設定します。
      重要:MarkLogicサーバーアカウントには、manage-adminsecurityの両ロールが割り当てられている必要があります。
    2. Gradleタスク mlDeploySecurityまたは(mlDeploy)を実行します。
      ./gradlew mlDeploySecuritygradlew.bat mlDeploySecurity

結果

設定ファイルのデプロイ後、
  • pii-readerのロールを持つユーザーのみが、表示を許可されているハーモナイズされたドキュメントのPIIプロパティを表示できます。
  • 「pii-reader」のロールを持たないユーザーにドキュメントが表示される場合、PIIプロパティは完全に除外されます(プロパティ名も値も表示されません)。