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 cho phé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 có trong phần "Tổ chức và người dùng" của 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 giới hạn ở 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 sơ đồ tổ chức duy nhất. 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 một đơ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 của tổ chức nhưng tên của đơn vị tổ chức này thì không trùng lặp trong các đơn vị tổ chức cùng cấp. Và tên của một đơ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 của hệ phân cấp tổ chức. Mọi tổ chức có thể chặn chuỗi kế thừa gốc này bằng cách ghi đè chính sách kế thừa. Chiến lược phát hành đĩa đơn mức độ ưu tiên của một chính sách này so với chính sách khác do đơn vị tổ chức gần nhất xác định. Tức là các chính sách của một đơ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ị mẹ cao hơn. Chế độ cài đặt blockInheritance cho phép chặn tính kế thừa chế độ cài đặt đối với một đơn vị tổ chức và tổ chức con của đơn vị đó. 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ả ngoài ý muốn. Cho thông tin khác 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 dành cho quản trị viên.
  • 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 người dùng được liên kết của tổ chức một cách riêng lẻ hoặc theo lô khi điền sẵn 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 thuộc tính của đơ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 sẽ nhất quán tại thời điểm truy xuất thực thể.Tức là bạn sẽ không thấy trạng thái "một phần" bản cập nhật. Nếu thao tác truy xuất trả về nhiều thực thể, thì sẽ không có gì đảm bảo về tính nhất quán giữa các thực thể.Điều này đặc biệt đúng khi phản hồi trải rộng trên nhiều trang theo chế độ 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à bao gồm quyền uỷ quyền được mô tả trong phần Cho phép yêu cầu.

Nếu bạn là quản trị viên đang tạo đơ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 đơ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ơ cấu 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 cho 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ụ về đại lý JSON dưới đây 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

Khi phản hồi thành công, hệ thống sẽ trả về mã trạng thái HTTP 201. Cùng với mã trạng thái, phản hồi 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 dùng yêu cầu PUT sau đây và bao gồm quyền uỷ quyền được mô tả trong phần Cho phép 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 đơ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 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 ý đối với yêu cầu cập nhật:

  • Bạn chỉ cần gửi thông tin mới 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 đó 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ơ cấu 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 được di chuyển.

Nội dung phản hồi JSON

Khi phản hồi thành công, hệ thố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ậ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 đó 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ẽ xác định những dịch vụ của 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, 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 dành cho quản trị viên. Để 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 dùng yêu cầu GET sau đây và bao gồm quyền uỷ quyền được 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. Để nhận 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, "doanh số bán hàng trực tiếp" đã được truy xuất. Lưu ý 'đầu mối+bán hàng' Mã hoá HTTP trong URI của yêu cầu:

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

Khi phản hồi thành công, hệ thố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, các đơn vị tổ chức con trực tiếp trong 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 được chỉ định, hãy dùng yêu cầu GET sau đây và bao gồm yêu cầu uỷ quyền được mô tả trong phần Uỷ quyền cho các 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 khi 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 giá trị 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 đơn vị tổ chức cho khách hàng được bán lại, hãy sử dụng customerId. Để nhận 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 trực tiếp của orgUnitPath hoặc tất 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

Khi phản hồi thành công, hệ thố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á 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à bao gồm quyền uỷ quyền được 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 đ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á đơn vị tổ chức của khách hàng được bán lại, hãy sử dụng customerId. Để nhận 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 xoá thuộc tính "backend_tests" đơn vị tổ chức:
DELETE https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits/corp/sales/backend_tests

Khi phản hồi thành công, hệ thố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. 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á.