Index: chrome/browser/policy/proto/device_management_backend.proto |
diff --git a/chrome/browser/policy/proto/device_management_backend.proto b/chrome/browser/policy/proto/device_management_backend.proto |
index 0f2451b962239e714ca9b7523344c2ba86b58573..e9dd3261402099579ae9e362ad02cae721b79a3c 100644 |
--- a/chrome/browser/policy/proto/device_management_backend.proto |
+++ b/chrome/browser/policy/proto/device_management_backend.proto |
@@ -1,13 +1,20 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
syntax = "proto2"; |
+import "cloud_policy.proto"; |
+ |
option optimize_for = LITE_RUNTIME; |
package enterprise_management; |
+// Protocol buffers for the obsolete protocol: |
Mattias Nissler (ping if slow)
2011/01/28 10:29:34
Which buffers do you mean?
gfeher
2011/01/28 13:42:10
Done.
|
+// ------------------------------------------- |
+// TODO(gfeher): Remove these when both Chrome and DMServer is switched to |
+// using the new protocol. |
+ |
// Generic value container. |
message GenericValue { |
enum ValueType { |
@@ -57,6 +64,50 @@ message DevicePolicySetting { |
optional string watermark = 3; |
} |
+// Request for a setting or with optional watermark on client side. |
+message DevicePolicySettingRequest { |
+ // setting key |
+ required string key = 1; |
+ // watermark last read from server if available. |
+ optional string watermark = 2; |
+} |
+ |
+// Request from device to server to read device policies. |
+message DevicePolicyRequest { |
+ // identify request scope: CrOS settings or other type of settings. |
+ optional string policy_scope = 1; |
+ // identify key to the settings: proxy etc. |
+ repeated DevicePolicySettingRequest setting_request = 2; |
+} |
+ |
+// Response from server to agent for reading policies. |
+message DevicePolicyResponse { |
+ // the result of the settings. |
+ repeated DevicePolicySetting setting = 1; |
+} |
+ |
+// Protocol buffers for the new protocol: |
+// -------------------------------------- |
+ |
+// Request from device to server to query if the authenticated user is in a |
+// managed domain. |
+message ManagedCheckRequest { |
+} |
+ |
+// Response from server to device indicating if the authenticated user is in a |
+// managed domain. |
+message ManagedCheckResponse { |
+ enum Mode { |
+ // The device must be enrolled for policies. |
+ MANAGED = 1; |
+ // The device is not automatically enrolled for policies, but the user |
+ // may choose to try to enroll it. |
+ UNMANAGED = 2; |
+ } |
+ |
+ optional Mode mode = 1; |
+} |
+ |
// Request from device to server to register device. |
message DeviceRegisterRequest { |
// reregister device without erasing server state. |
@@ -68,6 +119,9 @@ message DeviceRegisterRequest { |
message DeviceRegisterResponse { |
// device mangement toke for this registration. |
required string device_management_token = 1; |
+ |
+ // The name of the device, assigned by the server. |
+ optional string device_name = 2; |
} |
// Request from device to server to unregister device. |
@@ -78,48 +132,62 @@ message DeviceUnregisterRequest { |
message DeviceUnregisterResponse { |
} |
-// Request for a setting or with optional watermark on client side. |
-message DevicePolicySettingRequest { |
- // setting key |
- required string key = 1; |
- // watermark last read from server if available. |
- optional string watermark = 2; |
-} |
- |
-// Request from device to server to read device policies. |
-message DevicePolicyRequest { |
- // identify request scope: CrOS settings or other type of settings. |
+message CloudPolicyRequest { |
+ // Identify request scope: chromeos/device for device policies, chromeos/user |
+ // for user policies. |
optional string policy_scope = 1; |
Mattias Nissler (ping if slow)
2011/01/28 10:29:34
Need an additional field for the context's device
gfeher
2011/01/28 13:42:10
Done.
|
- // identify key to the settings: proxy etc. |
- repeated DevicePolicySettingRequest setting_request = 2; |
} |
-// Response from server to agent for reading policies. |
-message DevicePolicyResponse { |
- // the result of the settings. |
- repeated DevicePolicySetting setting = 1; |
+// Response from server to device for reading policies. |
+message CloudPolicyResponse { |
+ // Serialized SignedCloudPolicyResponse. |
+ optional bytes signed_response = 1; |
+ // Signature of the above data. |
Mattias Nissler (ping if slow)
2011/01/28 10:29:34
We should also mention that the signature algorith
gfeher
2011/01/28 13:42:10
Done.
|
+ optional bytes signature = 2; |
+ // The chain of DER-encoded X.509 certificates of the server's signing key. |
Mattias Nissler (ping if slow)
2011/01/28 10:29:34
As discussed, specify order here.
gfeher
2011/01/28 13:42:10
Done.
|
+ repeated bytes certificate_chain = 3; |
+} |
+message SignedCloudPolicyResponse { |
+ // The following three are necessary against replay attacks. |
Mattias Nissler (ping if slow)
2011/01/28 10:29:34
actually, it's the following two.
gfeher
2011/01/28 13:42:10
Done.
|
+ // |timestamp| is a unix timestamp (seconds since 1970). |
+ optional int64 timestamp = 1; |
+ // The token that was used for the request. |
+ optional string request_token = 2; |
+ // The name of the device, assigned by the server. |
+ optional string device_name = 3; |
+ // CloudPolicySettings is defined in cloud_policy.proto (which is |
+ // auto-generated from chrome/app/policy_templates.json). |
+ optional CloudPolicySettings settings = 4; |
} |
// Request from the DMAgent on the device to the DMServer. |
// This is container for all requests from client. |
// |
+// Http Query parameters: |
+// Query parameters contain the following information in each request: |
+// request: register/unregister/policy/cloud_policy/managed_check etc. |
+// devicetype: CrOS/Android/Iphone etc. |
+// apptype: CrOS/AndroidDM etc. |
+// deviceid: unique id that identify the device. |
+// agent: identify agent on device. |
+// |
// Authorization: |
-// 1. If request is register_request, client must pass in GoogleLogin auth |
+// 1. If request is managed_check, client must pass in GoogleLogin auth |
+// cookie in Authorization header: |
+// Authorization: GoogleLogin auth=<auth cookie> |
+// This is the only case when the deviceid query parameter is set to empty. |
+// The response will contain a flag indicating if the user is in a managed |
+// domain or not. (We don't want to expose device ids of users not in |
+// managed domains.) |
+// 2. If request is register_request, client must pass in GoogleLogin auth |
// cookie in Authorization header: |
// Authorization: GoogleLogin auth=<auth cookie> |
// The response will contain an unique DMToken for future requests. |
// Depending on domain policy, the request may need admin approval before |
// DMToken is issued. |
-// 2. For other requests, client must pass in DMToken in Authorization header: |
+// 3. For other requests, client must pass in DMToken in Authorization header: |
// Authorization: GoogleDMToken token=<google dm token> |
// |
-// Http Query parameters: |
-// Query parameters contain the following information in each request: |
-// request: register/unregister/policy etc. |
-// devicetype: CrOS/Android/Iphone etc. |
-// apptype: CrOS/AndroidDM etc. |
-// deviceid: unique id that identify the device. |
-// agent: identify agent on device. |
message DeviceManagementRequest { |
// Register request. |
optional DeviceRegisterRequest register_request = 1; |
@@ -129,6 +197,12 @@ message DeviceManagementRequest { |
// Data request. |
optional DevicePolicyRequest policy_request = 3; |
+ |
+ // Data request (new protocol). |
+ optional CloudPolicyRequest cloud_policy_request = 4; |
+ |
+ // Request to check if a user is managed or not. |
+ optional ManagedCheckRequest managed_check_request = 5; |
} |
// Response from server to device. |
@@ -164,4 +238,10 @@ message DeviceManagementResponse { |
// Policy response. |
optional DevicePolicyResponse policy_response = 5; |
-} |
+ |
+ // Policy response (new protocol). |
+ optional CloudPolicyResponse cloud_policy_response = 6; |
+ |
+ // Response to managed check request. |
+ optional ManagedCheckResponse managed_check_response = 7; |
+} |