Directory API: 조직 단위

조직 단위 관리

Google Workspace 계정의 조직 트리는 논리적 및 계층 구조로 사용자를 관리할 수 있는 조직 단위로 구성됩니다. 이 기능은 관리 콘솔의 '조직 및 사용자' 탭에 있는 기능과 유사합니다. 고객의 조직 단위 계층 구조는 35개 수준으로 제한됩니다. 자세한 내용은 관리자 고객센터를 참고하세요.

  • Google Workspace 계정에는 하나의 조직 트리만 있습니다. 이 계정을 처음 구성할 때는 계정 수준의 조직 단위가 존재합니다. 기본 도메인과 연결된 조직입니다. 기본 도메인에 대한 자세한 내용은 API 한도 정보를 참조하세요.
  • 조직 단위의 경로 이름은 고유합니다. 조직 단위의 이름은 조직 계층 구조 내에서 고유하지 않을 수 있지만 동위 조직 단위 간에는 고유합니다. 또한 조직 단위의 이름은 대소문자를 구분하지 않습니다.
  • 조직 단위는 조직 계층 구조에서 정책을 상속합니다. 모든 조직 단위는 상속된 정책을 재정의하여 이러한 상위 상속 체인을 차단할 수 있습니다. 정책 간의 우선순위는 가장 가까운 조직 단위에 따라 결정됩니다. 즉, 하위 조직 단위의 정책이 상위 조직 단위의 정책보다 우선할 수 있습니다. blockInheritance 설정을 사용하면 조직 단위 및 하위 조직에 차단 설정 상속을 허용합니다. blockInheritance 런타임은 지원 중단되었습니다. 'true'로 설정하는 것은 더 이상 지원되지 않으며 의도하지 않은 결과가 발생할 수 있습니다. 조직 구조의 상속 및 사용자에 대한 자세한 내용은 관리 고객센터를 참조하세요.
  • 조직 단위는 계층 트리 위 또는 아래로 이동할 수 있습니다. 또한 조직에 연결된 사용자는 새 조직을 채우거나 사용자 일부를 한 조직 단위에서 다른 조직 단위로 이동할 때 개별적으로 또는 일괄적으로 이동할 수 있습니다.
  • 조직 단위 속성에 보관된 데이터는 계속해서 변경될 수 있습니다. 요청하면 항목에 반환된 속성은 항목을 가져온 시점에 일관성이 보장됩니다.즉, '부분' 업데이트는 표시되지 않습니다. 검색 작업에서 항목을 두 개 이상 반환하는 경우 항목 간에 일관성이 보장되지 않습니다.응답이 페이지로 나누기에서 여러 페이지에 걸쳐 있는 경우 특히 그렇습니다.

조직 단위 만들기

조직 단위를 만들려면 다음 POST 요청을 사용하여 요청 승인에 설명된 승인을 포함합니다.

조직 단위를 만드는 관리자는 my_customer를 사용합니다.

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

리셀러가 리셀러 고객의 조직 단위를 만드는 경우 customerId를 사용합니다. customerId를 가져오려면 사용자 검색 작업을 사용합니다.

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

계정의 조직 구조를 알아보려면 관리자 고객센터를 참고하세요. 요청 및 응답 속성에 대해서는 API 참조를 확인하세요.

JSON 요청

다음 JSON 리셀러 예는 sales_support 조직 단위를 만드는 샘플 요청 본문을 보여줍니다. nameparentOrgUnitPath는 필수입니다.

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

JSON 응답

성공적인 응답은 HTTP 201 상태 코드를 반환합니다. 응답은 상태 코드와 함께 새 그룹의 속성을 반환합니다.

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

조직 단위 업데이트

조직 단위를 업데이트하려면 다음 PUT 요청을 사용하여 요청 승인에 설명된 승인을 포함합니다. 요청 및 응답 속성은 API 참조를 확인하세요.

조직 단위를 업데이트하는 관리자는 my_customer를 사용합니다.

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

리셀러 고객의 조직 단위를 업데이트하는 리셀러인 경우 customerId를 사용하세요. customerId를 가져오려면 사용자 검색 작업을 사용합니다.

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

JSON 요청

아래 예에서 조직 단위 설명이 업데이트되었습니다.

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

업데이트 요청 참고사항:

  • 요청에 업데이트된 정보만 제출하면 됩니다. 요청에 그룹의 모든 속성을 입력할 필요는 없습니다.
  • 사용자 계정을 만들 때 사용자를 특정 조직 단위에 할당하지 않은 경우 계정은 최상위 조직 단위에 속하게 됩니다.
  • 요청에서 parentOrgUnitPath 속성을 설정하여 조직 단위를 계정 조직 구조의 다른 부분으로 이동할 수 있습니다. 조직 단위를 이동하면 이동 중인 조직 단위의 사용자에 대한 서비스 및 설정이 변경될 수 있습니다.

JSON 응답

성공적인 응답은 HTTP 201 상태 코드를 반환합니다. 응답에는 상태 코드와 함께 업데이트된 조직 단위의 속성이 반환됩니다.

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

사용자 계정을 만들 때 사용자를 특정 조직 단위에 할당하지 않은 경우 계정은 최상위 조직 단위에 속하게 됩니다. 사용자의 조직 단위에 따라 사용자가 액세스할 수 있는 Google Workspace 서비스가 결정됩니다. 사용자가 새 조직으로 이동하면 사용자의 액세스 권한이 변경됩니다. 조직 구조에 대한 자세한 내용은 관리 고객센터를 참고하세요. 사용자를 다른 조직으로 이동하는 방법에 대한 자세한 내용은 사용자 업데이트하기를 참고하세요.

조직 단위 검색

조직 단위를 검색하려면 다음 GET 요청을 사용하여 요청 승인에 설명된 승인을 포함합니다. orgUnitPath 쿼리 문자열은 이 조직 단위의 전체 경로입니다. 요청 및 응답 속성은 API 참조를 확인하세요.

조직 단위를 검색하는 관리자인 경우 my_customer를 사용합니다.

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

리셀러 고객의 조직 단위를 가져오는 리셀러인 경우 customerId를 사용합니다. customerId를 가져오려면 사용자 검색 작업을 사용합니다.

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

JSON 응답

아래 예에서는 '일선 영업' 조직 단위를 가져옵니다. 요청 URI의 'frontline+sales' HTTP 인코딩을 확인하세요.

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

성공적인 응답은 HTTP 200 상태 코드를 반환합니다. 상태 코드와 함께 응답이 조직 단위의 설정을 반환합니다.

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

조직 단위 검색

특정 조직 단위의 모든 하위 조직 단위, 조직 단위의 직계 하위 조직 또는 모든 하위 조직 단위 및 지정된 조직 단위를 검색하려면 다음 GET 요청을 사용하여 요청 승인에 설명된 승인을 포함합니다. 요청 및 응답 속성에 대해서는 API 참조를 확인하세요.

모든 하위 조직 단위를 검색하는 계정 관리자인 경우 my_customer을(를) 사용하세요. 가독성을 위해 이 예시에서는 줄 반환을 사용합니다.

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

리셀러 고객의 조직 단위를 가져오는 리셀러인 경우 customerId를 사용합니다. customerId를 가져오려면 사용자 검색 작업을 사용합니다.

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

get 검색어 문자열은 orgUnitPath 아래의 하위 조직 단위 all개 또는 orgUnitPath의 바로 옆에 있는 children 항목 또는 모든 하위 조직 단위 및 all_including_parent에 대해 지정된 orgUnitPath을 반환합니다. 기본값은 type=children입니다.

JSON 응답

예를 들어 이 요청은 /corp 조직 단위(

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits?orgUnitPath=/corp&type=all
)에서 시작하는 모든 조직 단위를 반환합니다.

성공적인 응답은 HTTP 200 상태 코드를 반환합니다. 응답에 상태 코드와 함께 계정의 조직 단위가 반환됩니다.

{
"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
     }
  ]
  }

조직 단위 삭제하기

조직 단위를 삭제하려면 다음 DELETE 요청을 사용하여 요청 승인에 설명된 승인을 포함합니다. customerId를 가져오려면 사용자 검색 작업을 사용합니다. 요청 및 응답 속성은 API 참조를 확인하세요.

조직 단위를 삭제하는 계정 관리자는 my_customer를 사용합니다.

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

리셀러 고객의 조직 단위를 삭제하는 리셀러인 경우 customerId를 사용합니다. customerId를 가져오려면 사용자 검색 작업을 사용합니다.

DELETE https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath
예를 들어 이 리셀러 관리자의 DELETE 요청은 'backend_tests' 조직 단위를 삭제합니다.
DELETE https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits/corp/sales/backend_tests

성공적인 응답은 HTTP 200 상태 코드를 반환합니다.

하위 조직 단위나 할당된 사용자가 없는 조직 단위만 삭제할 수 있습니다. 조직 단위를 삭제하기 전에 사용자를 다른 조직 단위로 재할당하고 모든 하위 조직 단위를 삭제해야 합니다.