Directory API: Đơn vị tổ chức

Quản lý đơn vị tổ chức

Cây tổ chức của tài khoản Google Workspace gồm các đơn vị tổ chức giúp bạn quản lý người dùng theo cấu trúc logic và phân cấp. Chức năng này tương tự như chức năng trong thẻ "Tổ chức và người dùng" của Bảng điều khiển dành cho quản trị viên của Google. Hệ phân cấp đơn vị tổ chức của khách hàng chỉ được có tối đa 35 cấp. Để biết thêm thông tin, hãy xem Trung tâm trợ giúp dành cho quản trị viên.

  • Mỗi tài khoản Google Workspace chỉ có một cây tổ chức. Khi được định cấu hình lần đầu, tài khoản này sẽ có một đơn vị tổ chức ở cấp tài khoản. Đây là tổ chức được liên kết với miền chính. Để biết thêm thông tin về miền chính, hãy xem thông tin về giới hạn API.
  • Đường dẫn của đơn vị tổ chức là duy nhất. Tên của đơn vị tổ chức có thể không phải là duy nhất trong hệ thống phân cấp tổ chức, nhưng tên của đơn vị tổ chức là duy nhất trong số các đơn vị tổ chức ngang cấp. Tên của đơn vị tổ chức không phân biệt chữ hoa chữ thường.
  • Một đơn vị tổ chức sẽ kế thừa các chính sách từ hệ thống phân cấp tổ chức. Mọi đơn vị tổ chức đều có thể chặn chuỗi kế thừa này bằng cách ghi đè chính sách được kế thừa. Thứ tự ưu tiên của một chính sách so với một chính sách khác được xác định theo đơn vị tổ chức gần nhất. Tức là các chính sách của đơn vị tổ chức cấp thấp hơn có thể được ưu tiên hơn các chính sách của đơn vị tổ chức cấp cao hơn. Để biết thêm thông tin về quyền kế thừa và người dùng trong cấu trúc tổ chức, hãy xem trung tâm trợ giúp quản trị.
  • Bạn có thể di chuyển một đơn vị tổ chức lên hoặc xuống trong cây phân cấp. Ngoài ra, bạn có thể di chuyển từng người dùng được liên kết với tổ chức hoặc di chuyển theo lô khi điền thông tin cho một tổ chức mới hoặc di chuyển một nhóm nhỏ người dùng từ đơn vị tổ chức này sang đơn vị tổ chức khác.
  • Dữ liệu được lưu giữ trong các thuộc tính của đơn vị tổ chức có thể liên tục thay đổi. Khi đưa ra yêu cầu, các thuộc tính được trả về cho một thực thể được đảm bảo nhất quán tại thời điểm thực thể đó được truy xuất.Tức là bạn sẽ không thấy các nội dung cập nhật "một phần". Nếu một thao tác truy xuất trả về nhiều thực thể, thì sẽ không có sự nhất quán giữa các thực thể.Điều này đặc biệt đúng khi một phản hồi trải dài trên nhiều trang trong phân trang.

Tạo đơn vị tổ chức

Để tạo một đơn vị tổ chức, hãy sử dụng yêu cầu POST sau đây và thêm thông tin uỷ quyền như mô tả trong phần Uỷ quyền yêu cầu.

Nếu bạn là quản trị viên tạo một đơn vị tổ chức, hãy sử dụng my_customer.

POST https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits

Nếu bạn là đại lý tạo một đơn vị tổ chức cho khách hàng được bán lại, hãy sử dụng customerId. Để truy xuất customerId, hãy sử dụng thao tác Truy xuất người dùng.

POST https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits

Để tìm hiểu cấu trúc tổ chức của tài khoản, hãy xem Trung tâm trợ giúp dành cho quản trị viên. Để biết các thuộc tính yêu cầu và phản hồi, hãy xem Tài liệu tham khảo API.

Yêu cầu JSON

Ví dụ sau đây về đại lý JSON cho thấy một nội dung yêu cầu mẫu để tạo đơn vị tổ chức sales_support. Bạn phải cung cấp nameparentOrgUnitPath:

POST https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits
{
    "name": "sales_support",
    "description": "The sales support team",
    "parentOrgUnitPath": "/corp/support",
}

Nội dung phản hồi JSON

Phản hồi thành công sẽ trả về mã trạng thái HTTP 201. Cùng với mã trạng thái, phản hồi sẽ trả về các thuộc tính cho nhóm mới:

{
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The sales support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support"
  }

Cập nhật đơn vị tổ chức

Để cập nhật một đơn vị tổ chức, hãy sử dụng yêu cầu PUT sau đây và thêm thông tin uỷ quyền như mô tả trong phần Uỷ quyền yêu cầu. Để biết các thuộc tính yêu cầu và phản hồi, hãy xem Tài liệu tham khảo API:

Nếu bạn là quản trị viên đang cập nhật một đơn vị tổ chức, hãy sử dụng my_customer.

 PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Nếu bạn là đại lý đang cập nhật đơn vị tổ chức cho một khách hàng được bán lại, hãy sử dụng customerId. Để lấy customerId, hãy sử dụng thao tác Truy xuất người dùng.

PUT https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath

Yêu cầu JSON

Trong ví dụ bên dưới, nội dung mô tả đơn vị tổ chức đã được cập nhật:

PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/corp/support/sales_support
{
    "description": "The BEST sales support team"
}

Lưu ý đối với yêu cầu cập nhật:

  • Bạn chỉ cần gửi thông tin mới trong yêu cầu của mình. Bạn không cần nhập tất cả các thuộc tính của nhóm trong yêu cầu.
  • Nếu người dùng không được chỉ định cho một đơn vị tổ chức cụ thể khi tài khoản người dùng được tạo, thì tài khoản đó sẽ nằm trong đơn vị tổ chức cấp cao nhất.
  • Bạn có thể di chuyển một đơn vị tổ chức sang một phần khác trong cấu trúc tổ chức của tài khoản bằng cách đặt thuộc tính parentOrgUnitPath trong yêu cầu. Điều quan trọng cần lưu ý là việc di chuyển một đơn vị tổ chức có thể thay đổi các dịch vụ và chế độ cài đặt cho người dùng trong đơn vị tổ chức đó.

Nội dung phản hồi JSON

Phản hồi thành công sẽ trả về mã trạng thái HTTP 201. Cùng với mã trạng thái, phản hồi sẽ trả về các thuộc tính cho đơn vị tổ chức đã cập nhật.

{
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST sales support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support"
}

Nếu người dùng không được chỉ định cho một đơn vị tổ chức cụ thể khi tài khoản người dùng được tạo, thì tài khoản đó sẽ nằm trong đơn vị tổ chức cấp cao nhất. Đơn vị tổ chức của người dùng sẽ quyết định những dịch vụ Google Workspace mà người dùng đó có quyền truy cập. Nếu người dùng được chuyển sang một tổ chức mới, thì quyền truy cập của người dùng sẽ thay đổi. Để biết thêm thông tin về cấu trúc tổ chức, hãy xem trung tâm trợ giúp dành cho quản trị viên. Để biết thêm thông tin về cách di chuyển người dùng sang một tổ chức khác, hãy xem bài viết Cập nhật người dùng.

Truy xuất một đơn vị tổ chức

Để truy xuất một đơn vị tổ chức, hãy sử dụng yêu cầu GET sau đây và thêm thông tin uỷ quyền như mô tả trong phần Uỷ quyền yêu cầu. Chuỗi truy vấn orgUnitPath là đường dẫn đầy đủ cho đơn vị tổ chức này. Để biết các thuộc tính yêu cầu và phản hồi, hãy xem Tài liệu tham khảo API:

Nếu bạn là quản trị viên đang truy xuất một đơn vị tổ chức, hãy sử dụng my_customer.

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Nếu bạn là đại lý đang truy xuất một đơn vị tổ chức cho khách hàng được bán lại, hãy sử dụng customerId. Để lấy customerId, hãy sử dụng thao tác Truy xuất người dùng.

GET https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath

Nội dung phản hồi JSON

Trong ví dụ bên dưới, đơn vị tổ chức "nhân viên bán hàng tuyến đầu" sẽ được truy xuất. Lưu ý mã hoá HTTP "frontline+sales" trong URI của yêu cầu:

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/corp/sales/frontline+sales

Phản hồi thành công sẽ trả về mã trạng thái HTTP 200. Cùng với mã trạng thái, phản hồi sẽ trả về các chế độ cài đặt của đơn vị tổ chức:

{
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales"
}

Truy xuất đơn vị tổ chức

Để truy xuất tất cả các đơn vị tổ chức cấp dưới trong một đơn vị tổ chức, các đơn vị tổ chức cấp dưới trực tiếp trong một đơn vị tổ chức hoặc tất cả các đơn vị tổ chức cấp dưới cùng với đơn vị tổ chức được chỉ định, hãy sử dụng yêu cầu GET sau đây và thêm thông tin uỷ quyền như mô tả trong phần Uỷ quyền yêu cầu. Để biết các thuộc tính yêu cầu và phản hồi, hãy xem Tài liệu tham khảo API.

Nếu bạn là quản trị viên tài khoản đang truy xuất tất cả các đơn vị phụ thuộc tổ chức, hãy sử dụng my_customer. Để dễ đọc, ví dụ này sử dụng dấu xuống dòng:

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer
/orgunits?orgUnitPath=full org unit path&type=all or children or all_including_parent

Nếu bạn là đại lý đang truy xuất đơn vị tổ chức cho một khách hàng được bán lại, hãy sử dụng customerId. Để lấy customerId, hãy sử dụng thao tác Truy xuất người dùng:

GET https://admin.googleapis.com/admin/directory/v1/customer/customerId
/orgunits?orgUnitPath=full org unit path&type=all or children or all_including_parent

Chuỗi truy vấn get sẽ trả về các đơn vị tổ chức con all trong orgUnitPath, children ngay lập tức của orgUnitPath hoặc tất cả các đơn vị tổ chức con và orgUnitPath được chỉ định cho all_including_parent. Giá trị mặc định là type=children.

Nội dung phản hồi JSON

Ví dụ: yêu cầu này trả về tất cả các đơn vị tổ chức bắt đầu từ đơn vị tổ chức /corp:

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits?orgUnitPath=/corp&type=all

Phản hồi thành công sẽ trả về mã trạng thái HTTP 200. Cùng với mã trạng thái, phản hồi sẽ trả về các đơn vị tổ chức của tài khoản:

{
"kind": "directory#orgUnits",
    "organizationUnits": [
     {
    "kind": "directory#orgUnit",
    "name": "sales",
    "description": "The corporate sales team",
    "orgUnitPath": "/corp/sales",
    "parentOrgUnitPath": "/corp"
     },
     {
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales"
     },
     {
    "kind": "directory#orgUnit",
    "name": "support",
    "description": "The corporate support team",
    "orgUnitPath": "/corp/support",
    "parentOrgUnitPath": "/corp"
     },
     {
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support"
     }
  ]
  }

Xoá một đơn vị tổ chức

Để xoá một đơn vị tổ chức, hãy dùng yêu cầu DELETE sau đây và thêm thông tin uỷ quyền như mô tả trong phần Uỷ quyền yêu cầu. Để truy xuất customerId, hãy sử dụng thao tác Truy xuất người dùng. Để biết các thuộc tính yêu cầu và phản hồi, hãy xem Tài liệu tham khảo API:

Nếu bạn là quản trị viên tài khoản và đang xoá một đơn vị tổ chức, hãy sử dụng my_customer.

DELETE https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Nếu bạn là đại lý và đang xoá một đơn vị tổ chức cho khách hàng mà bạn bán lại, hãy sử dụng customerId. Để lấy customerId, hãy sử dụng thao tác Truy xuất người dùng.

DELETE https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath
Ví dụ: yêu cầu DELETE của quản trị viên đại lý này sẽ xoá đơn vị tổ chức "backend_tests":
DELETE https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits/corp/sales/backend_tests

Phản hồi thành công sẽ trả về mã trạng thái HTTP 200.

Bạn chỉ có thể xoá những đơn vị tổ chức không có đơn vị tổ chức con hoặc người dùng nào được chỉ định cho đơn vị tổ chức đó. Bạn cần phải chỉ định lại người dùng cho các đơn vị tổ chức khác và xoá mọi đơn vị tổ chức con trước khi xoá.