ポリシー スキーマ

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

たとえば、以下は、Chrome のシステムトレイにログアウト ボタンを表示できるようにする設定を Schema Service API で表したものです。この設定の簡易表現は bool showLogoutButtonInTray です。下の [例を表示] をクリックして、Schema Service API がこの設定をどのように表しているかを確認します。

例を表示

{
  "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   [サービス] > [Chrome 管理] > [設定] > [ChromeOS デバイスの設定の管理]
chrome.printers.LEAF_NAME key="printer_id" [サービス] > [Chrome 管理] > [設定] > [プリンタの管理]
chrome.printservers.LEAF_NAME key="print_server_id" [サービス] > [Chrome 管理] > [設定] > [プリンタの管理]
chrome.networks.globalsettings.LEAF_NAME   [サービス] > [共有デバイスの設定]
chrome.networks.wifi.LEAF_NAME key="network_id" [サービス] > [共有デバイスの設定]
chrome.networks.ethernet.LEAF_NAME key="network_id" [サービス] > [共有デバイスの設定]
chrome.networks.vpn.LEAF_NAME key="network_id" [サービス] > [共有デバイスの設定]
chrome.networks.certificates.LEAF_NAME key="network_id" [サービス] > [共有デバイスの設定]

ポリシー スキーマ キー

一部のポリシーでは、追加のコンテキストを参照または変更する必要があります。次に例を示します。

  • アプリケーションのポリシーを変更するには、key="app_id" に入力して、どのアプリケーションを変更するかを指定する必要があります。
  • 組織部門のプリンタ設定のポリシーを変更するには、key="printer_id" に入力してプリンタを指定する必要があります。

これらのポリシー スキーマには、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"
}
  

アプリポリシー

上記の名前空間の一部は、ユーザーアプリ、キオスクアプリ、管理対象ゲスト セッション アプリ、キオスクアプリ設定などのアプリポリシー用です。アプリ ポリシーには app_id が必要です。

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

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

複数値フィールド

LABEL_REPEATED ラベルのフィールドは、リストや配列などの複数値フィールドを表します。これらのフィールドには複数の値を指定できます。詳細については、コードサンプルをご覧ください。

ポリシー スキーマのステータス

すべてのポリシーには、現在のステータスを示す policyApiLifecycle オブジェクトがあります。このオブジェクトには、ポリシーのステータスの詳細を含む次のフィールドが含まれます。

  • policyApiLifecycleStage フィールドには、次の表のどのステージがポリシーの現在のステータスに最もよく当てはまるかが示されます。
  • description フィールドには、このポリシーの現在のステータスの詳細が表示されます。
  • endSupport フィールドには、ポリシーの最終サポート日(定義されている場合)が表示されます。
  • deprecatedInFavorOf は、policyApiLifecycleStage が API_DEPRECATED の場合にのみ設定できます。現在のポリシーが非推奨になり、代わりに使用される新しいポリシーの完全修飾名前空間が表示されます。
  • scheduledToDeprecatePolicies フィールドは deprecatedInFavorOf に対応しています。このポリシーの導入により非推奨となる古いポリシーの完全修飾名前空間が表示されます。

ライフサイクル ステージ

ステージ 説明
API_UNSPECIFIED ポリシーの現在のステータスは不明です。予約済み。使用しないでください。
API_PREVIEW ポリシーはまだ機能していません。このステージは API_CURRENT または API_DEVELOPMENT に転送できます。
API_DEVELOPMENT ポリシーは未確定であり、互換性を破る変更が導入される可能性があります。このステージは API_CURRENT または API_DEPRECATED に転送できます。
API_CURRENT ポリシーは公式の形式ですが、互換性のない変更が加えられる場合があります。このステージは API_DEPRECATED に転送できます。
API_DEPRECATED このポリシーはサポートが終了しており、今後削除される可能性があります。管理者は、このポリシーの使用を停止する必要があります。

例を表示

{
  "name": "customers/C0202nabg/policySchemas/chrome.users.OutdatedPolicy",
  "policyDescription": "Just for demo, this is an outdated policy.",
  "definition": {
    "messageType": [
      {
        "name": "OutdatedPolicy",
        "field": [
          {
            "name": "outdatedField",
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL"
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [
    {
      "field": "outdatedField",
      "description": "This is an outdated field"
    }
  ],
  "schemaName": "chrome.users.OutdatedPolicy",
  "policyApiLifecycle": { // policy's current lifecycle status
    "policyApiLifecycleStage": "API_DEPRECATED",
    "description": "This policy is deprecated. Please stop using it",
    "endSupport": {
      "year": 2021,
      "month": 2,
      "day": 29
    }
    "deprecatedInFavorOf": "chrome.users.NewPolicy"
  }
}

{
  "name": "customers/C0202nabg/policySchemas/chrome.users.NewPolicy",
  "policyDescription": "Just for demo, this is a new policy.",
  "definition": {
    "messageType": [
      {
        "name": "NewPolicy",
        "field": [
          {
            "name": "newField",
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL"
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [
    {
      "field": "newField",
      "description": "This is an new field"
    }
  ],
  "schemaName": "chrome.users.NewPolicy",
  "policyApiLifecycle": { // policy's current lifecycle status
    "policyApiLifecycleStage": "API_CURRENT,
    "scheduledToDeprecatePolicies": "chrome.users.OutdatedPolicy"
  }
}
  

ポリシー スキーマに関するお知らせ

一部のポリシーでは、特定ポリシー フィールドの特定値に対して acknowledgement_requiredtrue に設定されている notices が関連付けられています。これらのポリシーで値を設定するには、特別な確認フィールドを true に設定する必要があります。

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

対応プラットフォーム

supportedPlatforms は、ポリシーがこれらのプラットフォームのデバイスまたはユーザーにのみ適用されることを示すリストです。サポートされているすべてのプラットフォームを次の表に示します。

対応プラットフォーム

プラットフォーム 説明
PLATFORM_UNSPECIFIED プラットフォームが指定されていません。予約済み。使用しないでください。
CHROME_OS ChromeOS
CHROME_BROWSER macOS/Windows/Linux 版 Chrome ブラウザ
CHROME_BROWSER_FOR_ANDROID Android 版 Chrome ブラウザ
CHROME_BROWSER_FOR_IOS iOS 版 Chrome ブラウザ

次のステップ