• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

NerdGraph 튜토리얼: 사용자 그룹 및 액세스 권한 관리

New Relic의 NerdGraph API 를 사용하여 사용자 그룹과 액세스 권한을 보고 관리할 수 있습니다. UI에서 이 작업을 수행하는 방법은 사용자 관리 UI 문서 를 참조하세요.

요구 사항

NerdGraph를 통해 사용자 및 그룹을 관리하기 위한 몇 가지 요구 사항:

  • Pro 또는 Enterprise 에디션 이 필요합니다(Standard 에디션 조직은 그룹 또는 액세스 권한을 구성할 수 없음).

  • SCIM 프로비저닝 을 사용하는 경우 해당 인증 도메인에 대해 그룹을 생성하거나 그룹에 사용자를 추가할 수 없습니다. 그룹과 사용자가 SCIM을 통해 관리되기 때문입니다.

  • 귀하는 최신 사용자 모델 의 사용자여야 합니다.기타 권한 관련 요구 사항:

    • 필수 사용자 유형 : 코어 사용자 또는 전체 플랫폼 사용자
    • 필요 역할 : 기관관리자 또는 인증도메인관리자

시작하기 전에

NerdGraph를 사용하여 사용자를 관리하기 전에:

  • 사용자 관리 개념 을 충분히 이해하고 있는지 확인합니다.
  • 아직 액세스하지 않은 경우 액세스 관리 UI를 살펴보고 그룹 및 액세스 권한 부여의 작동 방식에 대한 이해를 높이고 이미 존재하는 액세스 권한 부여를 이해하는 것이 도움이 될 수 있습니다.
  • 생성해야 하는 그룹 및 액세스 권한에 대한 계획을 잘 세우십시오. 미리 스프레드시트에 이를 매핑하는 것이 도움이 될 수 있습니다.
  • NerdGraph 탐색기 에는 이러한 요청에 사용되는 필드를 정의하는 기본 제공 문서가 있습니다.
  • New Relic 계정의 변경 사항을 추적 할 수 있습니다.

그룹 생성 및 액세스 권한 부여를 위한 제안된 워크플로

이러한 쿼리와 변형을 다양한 방법과 다양한 순서로 사용할 수 있지만 그룹 및 액세스 권한 설정을 위한 한 가지 일반적인 워크플로는 다음과 같습니다.

  1. 사용자 정보사용 가능한 역할 쿼리: 이것은 New Relic에 있는 사용자와 사용 가능한 역할을 이해하는 데 도움이 되는 첫 번째 장소가 될 수 있습니다. 이제 막 시작하는 경우 아직 사용자를 추가하지 않았을 수 있으며 표준 역할만 있을 수 있습니다.
  2. 선택 사항: 새 그룹 만들기 : SCIM 프로비저닝을 사용하는 경우 사용할 수 없습니다. 기존 그룹을 사용하거나 새 그룹을 생성할 수 있습니다. 그룹을 만든 후 액세스 권한을 만들어 역할 및 계정에 대한 액세스 권한을 부여해야 합니다. 그룹 자체는 해당 그룹의 사용자에게 액세스 권한을 부여하지 않습니다. 사용자가 역할 및 계정에 대한 액세스 권한을 얻는 것은 액세스 권한 부여를 통해서만 가능합니다.
  3. 액세스 권한 생성 : 역할 및 계정에 대한 액세스 권한을 그룹에 할당합니다.

완료되면 생성한 그룹에 이미 사용자가 있고 해당 그룹에 액세스 권한이 부여된 경우 몇 분 이내에 액세스할 수 있어야 합니다( EU 지역 New Relic 계정 의 경우 최대 20분이 소요될 수 있음). 정도). 사용자가 아직 해당 그룹에 없는 경우(방금 새 그룹을 만든 경우 해당) 해당 그룹에 사용자를 추가 할 수 있습니다.

기존 역할 쿼리

다음은 역할에 대한 정보를 반환하는 예입니다.

{
actor {
organization {
authorizationManagement {
authenticationDomains {
authenticationDomains {
groups {
groups {
roles {
roles {
accountId
displayName
id
name
organizationId
type
}
}
}
}
}
}
}
}
}
}

다음은 결과의 예입니다.

{
"data": {
"actor": {
"organization": {
"authorizationManagement": {
"authenticationDomains": {
"authenticationDomains": [
{
"groups": {
"groups": [
{
"roles": {
"roles": [
{
"accountId": "account-id",
"displayName": "name",
"id": "id",
"name": "role-name",
"organizationId": null,
"type": "role-type"
},
{
"accountId":null,
"displayName": "name",
"id": "id",
"name": "role-name",
"organizationId": "organization-id",
"type": "role-type"
}
]
}
}
]
}
}
]
}
}
}
}
}
}

사용자 쿼리

다음은 사용자에 대한 정보를 쿼리하는 예입니다.

{
actor {
organization {
userManagement {
authenticationDomains {
authenticationDomains {
groups {
groups {
users {
users {
id
email
name
timeZone
}
}
}
}
}
}
}
}
}
}

다음은 결과의 예입니다.

{
"data": {
"actor": {
"organization": {
"userManagement": {
"authenticationDomains": {
"authenticationDomains": [
{
"groups": {
"groups": [
{
"users": {
"users": [
{
"email": "example@newrelic.com",
"id": "123456789",
"name": "Example Relic",
"timeZone": "Etc/UTC"
}
]
}
}
]
}
}
]
}
}
}
}
}
}

그룹 만들기

다음은 그룹 을 만드는 예입니다.

mutation {
  userManagementCreateGroup(createGroupOptions: {authenticationDomainId: "YOUR_AUTH_DOMAIN", displayName: "GROUP_DISPLAY_NAME"}) {
    group {
      displayName
      id
    }
  }
}

성공적인 응답:

{
"data": {
"userManagementCreateGroup": {
"group": {
"displayName": "GROUP_DISPLAY_NAME"
"id": "GROUP_ID"
}
}
}
}

사용자 그룹 업데이트

다음은 그룹 업데이트의 예입니다.

mutation {
  userManagementUpdateGroup(updateGroupOptions: {displayName: "YOUR_UPDATED_GROUP_NAME", id: "GROUP_ID"}) {
    group {
      id
      displayName
    }
  }
}

성공에 대한 응답:

{
"data": {
"userManagementUpdateGroup": {
"group": {
"displayName": "YOUR_UPDATED_GROUP_NAME",
"id": "GROUP_ID"
}
}
}
}

실패에 대한 응답:

{
"data": {
"userManagementUpdateGroup": null
},
"errors": [
{
"extensions": {
"errorClass": "SERVER_ERROR"
},
"locations": [
{
"column": 3,
"line": 2
}
],
"message": "Group could not be found",
"path": [
"userManagementUpdateGroup"
]
}
]
}

그룹 삭제

다음은 그룹 을 삭제하는 예입니다.

mutation {
  userManagementDeleteGroup(groupOptions: {id: "GROUP_ID"}) {
    group {
      id
    }
  }
}

성공에 대한 응답:

{
"data": {
"userManagementDeleteGroup": {
"group": {
"id": "GROUP_ID"
}
}
}
}

실패에 대한 응답:

{
"data": {
"userManagementDeleteGroup": null
},
"errors": [
{
"extensions": {
"errorClass": "SERVER_ERROR"
},
"locations": [
{
"column": 3,
"line": 2
}
],
"message": "Couldn't find Group with 'id'='ENTERED_GROUP_ID",
"path": [
"userManagementDeleteGroup"
]
}
]
}

그룹에 사용자 추가

다음은 그룹에 사용자를 추가하는 예입니다.

mutation {
  userManagementAddUsersToGroups(addUsersToGroupsOptions: {groupIds: [GROUP_ID_1, GROUP_ID_2], userIds: [YOUR_USERS_IDS]}) {
    groups {
      displayName
      id
    }
  }
}

성공에 대한 응답:

{
"data": {
"userManagementAddUsersToGroups": {
"groups": [
{
"displayName": "GROUP_1_NAME",
"id": "GROUP_ID_1"
},
{
"displayName": "GROUP_NAME_2",
"id": "GROUP_ID_2"
}
]
}
}
}

실패에 대한 응답:

{
"data": {
"userManagementAddUsersToGroups": null
},
"errors": [
{
"extensions": {
"errorClass": "SERVER_ERROR"
},
"locations": [
{
"column": 3,
"line": 2
}
],
"message": "The following ids were not found: group_ids: 'NON_EXISTENT_GROUP_ID'",
"path": [
"userManagementAddUsersToGroups"
]
}
]
}

그룹에서 사용자 제거

다음은 그룹에서 사용자를 제거하는 예입니다.

mutation {
  userManagementRemoveUsersFromGroups(removeUsersFromGroupsOptions: {groupIds: [YOUR_GROUP_IDS], userIds: [YOUR_USER_IDS]}) {
    groups {
      displayName
      id
    }
  }
}

성공에 대한 응답:

{
"data": {
"userManagementRemoveUsersFromGroups": {
"groups": [
{
"displayName": "YOUR_GROUP_NAME",
"id": "YOUR_GROUP_ID"
}
]
}
}
}

실패에 대한 응답:

{
"data": {
"userManagementRemoveUsersFromGroups": null
},
"errors": [
{
"extensions": {
"errorClass": "SERVER_ERROR"
},
"locations": [
{
"column": 3,
"line": 2
}
],
"message": "The following ids were not found: user_ids: 'NON-EXISTENT_USER_ID'",
"path": [
"userManagementRemoveUsersFromGroups"
]
}
]
}

그룹에 대한 액세스 권한 부여

다음은 그룹에 대한 액세스 부여(역할 및 계정에 대한 액세스)를 생성하는 예입니다.

mutation {
  authorizationManagementGrantAccess(grantAccessOptions: {groupId: "YOUR_GROUP_ID", accountAccessGrants: {accountId: "ACCOUNT_ID", roleId: "ROLE_ID"}}) {
    roles {
      displayName
      accountId
    }
  }
}

성공에 대한 응답:

{
"data": {
"authorizationManagementGrantAccess": {
"roles": [
{
"displayName": "ROLE_NAME_1",
"id": "ROLE_ID_1"
},
{
"displayName": "ROLE_NAME_2",
"id": "ROLE_ID_2"
},
{
"displayName": "ROLE_NAME_3",
"id": "ROLE_ID_3"
},
{
"displayName": "ROLE_NAME_4",
"id": "ROLE_ID_4"
}
]
}
}
}

실패에 대한 응답:

{
"data": {
"authorizationManagementGrantAccess": null
},
"errors": [
{
"extensions": {
"errorClass": "SERVER_ERROR"
},
"locations": [
{
"column": 3,
"line": 2
}
],
"message": "Validation failed: Role must exist, Role can't be blank, Role scope does not match granted_on type",
"path": [
"authorizationManagementGrantAccess"
]
}
]
}

그룹에서 권한 부여 취소

다음은 그룹에서 액세스 권한을 취소하는 예입니다.

mutation {
  authorizationManagementRevokeAccess(revokeAccessOptions: {accountAccessGrants: {accountId: "ACCOUNT_ID", roleId: "ROLE_ID"}, groupId: "GROUP_ID"}) {
    roles {
      accountId
      displayName
    }
  }
}

성공에 대한 응답:

{
"data": {
"authorizationManagementRevokeAccess": {
"roles": [
{
"displayName": "ROLE_NAME_1",
"id": "ROLE_ID_1"
},
{
"displayName": "ROLE_NAME_2",
"id": "ROLE_ID_2"
},
{
"displayName": "ROLE_NAME_3",
"id": "ROLE_ID_3"
}
]
}
}
}
Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.