ポリシー スキーマについて

Chrome ポリシーは、Schema Service API では「ポリシー スキーマ」という形式で表現されます。各ポリシー スキーマには識別するための一意の名前、設定フィールドとそのタイプの定義、人が読める英語で書かれた設定の説明があります。

たとえば、Chrome のシステムトレイにログアウト ボタンを許可する設定について考えてみましょう。

この設定の簡易表現

   bool showLogoutButtonInTray

スキーマ サービスでの表現

{
  "name": "customers/C0202nabg/policySchemas/chrome.users.ShowLogoutButton",
  "policyDescription": "Show logout button in tray.", // description of the policy
  "definition": { // definition of the settings (fields names and types)
    "messageType": [
      {
        "name": "ShowLogoutButton",
        "field": [
          {
            "name": "showLogoutButtonInTray", // the setting showLogoutButtonInTray
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL" // the setting showLogoutButtonInTray is of type boolean
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [ // human readable descriptions of the settings and their values
    {
      "field": "showLogoutButtonInTray",
      "knownValueDescriptions": [
        {
          "value": "true",
          "description": "Show logout button in tray." // description for showLogoutButtonInTray=true
        },
        {
          "value": "false",
          "description": "Do not show logout button in tray." // description for showLogoutButtonInTray=false
        }
      ]
    }
  ],
  "schemaName": "chrome.users.ShowLogoutButton" //  unique name to identify the policy
}

スキーマの名前空間

スキーマの name は、{namespace}.{leafName} という形式の一意の識別子です。

上記の例では、chrome.users.ShowLogoutButton が完全なスキーマ名です。 名前空間は chrome.users. で、リーフ名は ShowLogoutButton です。

類似のスコープのポリシーは、同じ名前空間にグループ化されます。たとえば、すべてのユーザー ポリシー スキーマは chrome.users. 名前空間で始まり、すべてのプリンタ ポリシー スキーマは chrome.printers. 名前空間で始まります。

名前空間 キー 必要な管理者権限
chrome.users.LEAF_NAME   [サービス] > [Chrome 管理] > [設定] > [ユーザー設定を管理]
chrome.users.apps.LEAF_NAME key=”app_id” [サービス] > [Chrome 管理] > [設定] > [ユーザー設定を管理] > [アプリケーション設定を管理]
chrome.users.appsconfig.LEAF_NAME   [サービス] > [Chrome 管理] > [設定] > [ユーザー設定を管理] > [アプリケーション設定を管理]
chrome.devices.LEAF_NAME   [サービス] > [Chrome 管理] > [設定] > [ChromeOS デバイスの設定の管理]
chrome.devices.managedGuest.LEAF_NAME   [サービス] > [Chrome 管理] > [設定] > [ChromeOS デバイスの設定の管理]
chrome.devices.managedGuest.apps.LEAF_NAME key=”app_id” [サービス] > [Chrome 管理] > [設定] > [ChromeOS デバイスの設定の管理]
chrome.devices.kiosk.LEAF_NAME   [サービス] > [Chrome 管理] > [設定] > [ChromeOS デバイスの設定の管理]
chrome.devices.kiosk.apps.LEAF_NAME key=”app_id” [サービス] > [Chrome 管理] > [設定] > [ChromeOS デバイスの設定の管理]
chrome.devices.kiosk.appsconfig.LEAF_NAME key=”app_id” [サービス] > [Chrome 管理] > [設定] > [ChromeOS デバイスの設定の管理]
chrome.printers.LEAF_NAME key=”printer_id” [サービス] > [Chrome 管理] > [設定] > [プリンタの管理]

アプリポリシーのアプリ ID

上記の名前空間の一部はアプリポリシー用であり、適用先の組織部門 ID に加えて app_id が必要です。ユーザーアプリ、キオスクアプリ、管理対象ゲスト セッション アプリ、キオスクアプリ設定の各ポリシーはすべてこのようなポリシーです。

アプリ ID は、アプリタイプとアプリ ID を組み合わせて構成されます。例:

  • 「chrome:mkaakpdehdafacodkgkpghoibnmamcme」 - 「Google 図形描画」Chrome アプリ
  • 「android:com.google.android.calendar」 - 「Google カレンダー」Android アプリ
  • 「web:https://canvas.apps.chrome」- 「キャンバス」ウェブアプリ

ポリシー スキーマ キー

一部のポリシーでは、追加のコンテキストを参照または変更する必要があります。たとえば、組織部門のプリンタ設定のポリシーを変更するには、プリンタを指定する必要があります。

これらのポリシー スキーマには、API リクエストに渡すキーと値を説明する additionalTargetKeyNames セクションが含まれています。

詳細については、コードサンプルをご覧ください。

スキーマキーの例

{
  "name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForUsers",
  "policyDescription": "Allows a printer for users in a given organization.",
  "additionalTargetKeyNames": [
    {
      "key": "printer_id",
      "keyDescription": "Id of printer as visible in Admin SDK printers API."
    }
  ],
  "definition": {
    "messageType": [
      {
        "name": "AllowForUsers",
        "field": [
          {
            "name": "allowForUsers",
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL"
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [
    {
      "field": "allowForUsers",
      "description": "Controls whether a printer is allowed for users in a given organization."
    }
  ],
  "schemaName": "chrome.printers.AllowForUsers"
}

サポートされているポリシー スキーマを取得する

customers.policySchemas.list メソッドの filter パラメータを使用すると、サポートされているすべてのスキーマ(名前空間内のスキーマ)のリストを取得したり、特定のスキーマを直接名前で取得したりできます。filter パラメータを省略すると、サポートされているすべてのスキーマが返されます。

詳細については、コードサンプルをご覧ください。

フィルタの構文

  GLOBAL_STRING_LITERAL|name=PARTIAL_NAME_MATCH|description=PARTIAL_DESCRIPTION_MATCH|additional_target_keys:EXACT_KEY_MATCH_IN_COLLECTION
  • GLOBAL_STRING_LITERAL: ポリシー スキーマの名前と説明の両方または一方に、指定された文字列が含まれている場合に一致します(部分一致)
  • PARTIAL_NAME_MATCH: ポリシー スキーマの名前に、指定された文字列が含まれている場合に一致します(部分一致)
  • PARTIAL_DESCRIPTION_MATCH: ポリシー スキーマの説明に、指定された文字列が含まれている場合に一致します(部分一致)
  • EXACT_KEY_MATCH_IN_COLLECTION: ポリシー スキーマの追加インデックス キーの中に、指定された文字列と完全に一致するキーがある場合に一致します

フィルタ値の例

URL エンコードされたフィルタ リテラルのフィルタの値と説明
filter=chrome%2Eprinters chrome.printers

「chrome.printers」名前空間でフィルタ
filter=description%3Dcookies description=cookies

説明に「cookie」が含まれる条件のフィルタ
filter=name%3Dprinters%20AND%20description%3Ddevices name=printers AND description=devices

名前に「printers」が含まれ、説明に「devices」が含まれる条件のフィルタ
filter=(name%3Dblock%20OR%20name%3Dlist)%20AND%20NOT%20description%3Durl filter=(name=block OR name=list) AND NOT description=url

名前に「block」または「list」が含まれ、説明に「url」が含まれない条件のフィルタ