API thư mục: Đơn vị tổ chức

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

Sơ đồ tổ chức của tài khoản Google Workspace bao 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. Tính năng này tương tự như chức năng có tại thẻ "Tổ chức và người dùng" trong Bảng điều khiển dành cho quản trị viên. Hệ thống phân cấp đơn vị tổ chức của khách hàng chỉ có tối đa 35 cấp độ chuyên sâu. Để 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 tài khoản này được định cấu hình lần đầu, tài khoản 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.
  • Tên đường dẫn của đơn vị tổ chức là duy nhất. Tên đơn vị tổ chức có thể không phải là duy nhất trong hệ thống phân cấp của tổ chức, nhưng tên của đơn vị tổ chức là duy nhất giữa các đơn vị tổ chức cùng cấp. Tên của đơn vị tổ chức không phân biệt chữ hoa chữ thường.
  • Đơn vị tổ chức kế thừa chính sách từ hệ phân cấp tổ chức. Mọi đơn vị tổ chức đều có thể chặn chuỗi kế thừa của cha mẹ bằng cách ghi đè chính sách kế thừa. Mức độ ưu tiên của một chính sách so với các chính sách khác do đơn vị tổ chức gần nhất xác định. Tức là 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 chính sách của đơn vị gốc cấp cao hơn. Cài đặt blockInheritance cho phép chặn kế thừa cài đặt đối với một đơn vị tổ chức và tổ chức con của đơn vị tổ chức đó. blockInheritance không được dùng nữa. Việc đặt giá trị này thành "true" không còn được hỗ trợ nữa và có thể gây ra hậu quả không mong muốn. Để biết thêm thông tin về tính kế thừa và người dùng trong cơ cấu 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 riêng lẻ hoặc hàng loạt người dùng được liên kết với tổ chức khi điền 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 tài sản đơn vị tổ chức có thể thay đổi liên tục. 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 là nhất quán tại thời điểm truy xuất thực thể đó.Nghĩa là, bạn sẽ không thấy 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ó gì đảm bảo tính 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 kéo dài trên nhiều trang trong quá trình phân trang.

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

Để tạo một đơn vị tổ chức, hãy dùng yêu cầu POST sau đây và thêm quyền uỷ quyền được mô tả trong phần Yêu cầu cấp phép.

Nếu bạn là quản trị viên đang 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ý đang 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

Để hiểu cơ cấu tổ chức trong tài khoản của bạ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ụ dưới đây về đại lý JSON cho thấy nội dung yêu cầu mẫu tạo đơn vị tổ chức sales_support. nameparentOrgUnitPath là bắt buộc:

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

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",
    "blockInheritance": false
  }

Cập nhật mộ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 quyền uỷ quyền được mô tả trong phần Yêu cầu cấp phép. Để 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 dùng my_customer.

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

Nếu bạn là đại lý cập nhậ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.

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ả về đơ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 ý về yêu cầu cập nhật:

  • Bạn chỉ cần gửi thông tin đã cập nhật trong yêu cầu của mình. Bạn không cần phải nhập tất cả các thuộc tính của nhóm vào 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 đó thuộc đơ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 đơn vị tổ chức khác thuộc cơ cấu tổ chức của tài khoản bằng cách thiết lập 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ể làm thay đổi các dịch vụ và chế độ cài đặt đối với người dùng trong đơn vị tổ chức được di chuyển.

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 của đơn vị tổ chức đượ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",
    "blockInheritance": false
}

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 đó thuộc đơn vị tổ chức cấp cao nhất. Đơn vị tổ chức của người dùng xác định những dịch vụ của Google Workspace mà người dùng đó có quyền sử dụng. 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ơ cấu tổ chức, hãy xem trung tâm trợ giúp quản trị. Để biết thêm thông tin về việc di chuyển người dùng sang một tổ chức khác, hãy xem phần Cập nhật người dùng.

Truy xuấ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 quyền uỷ quyền được mô tả trong phần Yêu cầu cho phép. 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 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ý truy xuấ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 "bán hàng tuyến đầu" đượ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",
    "blockInheritance": false
}

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

Để truy xuất mọi đơn vị tổ chức con trong một đơn vị tổ chức, đơn vị con trực thuộc của một đơn vị tổ chức hoặc mọi đơn vị tổ chức con cùng với đơn vị tổ chức đã chỉ định, hãy sử dụng yêu cầu sau đây của GET và thêm tuỳ chọn uỷ quyền nêu trong phần Yêu cầu cấp phép. Để 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 truy xuất tất cả các đơn vị tổ chức con, hãy sử dụng my_customer. Để dễ đọc, ví dụ này sử dụng phương thức trả về 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ý truy xuất các đơ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=full org unit path&type=all or children or all_including_parent

Chuỗi truy vấn get trả về all đơn vị tổ chức con trong orgUnitPath, children ngay 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",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "support",
    "description": "The corporate support team",
    "orgUnitPath": "/corp/support",
    "parentOrgUnitPath": "/corp",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support",
    "blockInheritance": false
     }
  ]
  }

Xoá đơ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 quyền uỷ quyền được mô tả trong phần Yêu cầu cấp phép. Để 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 đ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ý đang xoá 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.

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 nào hoặc không có người dùng nào được chỉ định cho các đơn vị tổ chức đó. Bạn cần 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á.