手作業によるPIIの有効化

手順

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

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

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

タスクの結果

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