• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Tutorial do NerdGraph: Gerenciar grupos e usuários

Você pode usar nossa API NerdGraph para visualizar e gerenciar grupos de usuários e o que esses grupos podem acessar. Para saber como fazer isso na interface, consulte a documentação da interface de gerenciamento do usuário.

Para usar o NerdGraph para criar usuários e visualizar suas informações, consulte Gerenciar usuários com NerdGraph.

Requisitos

Alguns requisitos para gerenciamento de usuários e grupos via NerdGraph:

Antes que você comece

Antes de usar o NerdGraph para gerenciar o usuário:

Fluxo de trabalho sugerido para criação de grupos

Você pode usar essas consultas e mutações de várias maneiras e em várias ordens, mas aqui está um fluxo de trabalho comum para configurar grupos:

  1. consulte as informações do seu usuário e as funções disponíveis: este pode ser um primeiro lugar útil para começar a ter certeza de que você entende qual usuário você tem no New Relic e as funções disponíveis. Se você está apenas começando, talvez ainda não tenha adicionado o usuário e talvez tenha apenas nossas funções padrão.
  2. Opcional: Crie um novo grupo: Not available if using SCIM provisioning. Você pode usar grupos existentes ou criar um novo grupo. Depois de criar um grupo, você deverá conceder-lhe acesso a funções e contas. Observe que um grupo, por si só, não concede nenhum acesso ao usuário desse grupo: somente quando ele tem uma função e uma conta atribuídas é que o usuário pode realmente acessar o New Relic.
  3. Conceder acesso a um grupo: é isso que atribui aos grupos acesso a funções e contas.

Quando terminar, se já houver usuários no grupo que você criou e esse grupo tiver acesso a pelo menos uma função e conta, eles deverão ter acesso em alguns minutos (embora para contas do New Relic das regiões EU e JP, isso possa levar cerca de 20 minutos). Se os seus usuários ainda não estiverem nesse grupo (o que seria verdade se você acabou de criar um novo grupo), você pode adicionar usuários a esse grupo.

Grupos de consulta

Aqui está um exemplo de consulta de grupos existentes em um determinado domínio de autenticação:

{
actor {
organization {
userManagement {
authenticationDomains(id: "YOUR_AUTHENTICATION_DOMAIN_ID") {
authenticationDomains {
groups {
groups {
displayName
id
}
}
}
}
}
}
}
}

Consultar funções existentes

Aqui está um exemplo de retorno de informações sobre funções:

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

Aqui está um exemplo de resultado:

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

Consulte o usuário

Consultar informações do usuário

Aqui está um exemplo de consulta de informações sobre seu usuário:

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

Aqui está um exemplo de resultado:

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

Consulte as associações de grupo do seu usuário

Aqui está um exemplo de consulta aos grupos aos quais seu usuário pertence:

{
actor {
organization {
userManagement {
authenticationDomains {
authenticationDomains {
users {
users {
groups {
groups {
displayName
}
}
email
}
}
}
}
}
}
}
}

Aqui está um exemplo de resposta:

{
"data": {
"actor": {
"organization": {
"userManagement": {
"authenticationDomains": {
"authenticationDomains": [
{
"users": {
"users": [
{
"email": "pete@example.com",
"groups": {
"groups": [
{
"displayName": "Admin"
},
{
"displayName": "Basic Sub Account"
}
]
}
},

Criar uma função

Antes de criar uma função personalizada, você precisa identificar as permissões que deseja atribuir a ela.

Recuperar IDs de permissão

Use a seguinte consulta para recuperar a lista de permissões com escopo de conta:

query {
customerAdministration {
permissions {
items {
category
feature
id
product
subsetIds
}
nextCursor
}
}
}

Para permissões com escopo em uma organização, execute a seguinte consulta:

query {
customerAdministration {
permissions(filter: { scope: { eq: "organization" } }) {
items {
category
feature
id
product
subsetIds
}
nextCursor
}
}
}

Observe os seguintes campos:

  • items: Uma matriz de objetos de permissão, cada um contendo o seguinte atributo:

    • category: (String) A categoria ou agrupamento ao qual a permissão pertence.
    • feature: (String) O recurso específico ao qual a permissão está associada.
    • id: (String) Um identificador exclusivo para cada permissão.
    • product: (String) O produto ao qual a permissão se aplica.
    • subsetIds: (matriz) Uma lista de IDs que representam subconjuntos ou permissões relacionadas.

Criar a função personalizada

Depois de ter o identificador exclusivo para cada permissão que deseja atribuir à nova função, use a seguinte mutação para criar uma função. Você pode criar funções em três escopos diferentes: nível da conta, da organização ou da entidade. O tipo de função que você cria deve corresponder ao escopo das permissões que você está atribuindo.

Função com escopo de conta

mutation {
customRoleCreate(
container: { id: "YOUR_ORGANIZATION_ID", type: "ORGANIZATION" }
name: "MY CUSTOM ACCOUNT ROLE"
permissionIds: [1, 2, 3]
scope: "account"
) {
id
}
}

Função com escopo de organização

mutation {
customRoleCreate(
container: { id: "YOUR_ORGANIZATION_ID", type: "ORGANIZATION" }
name: "MY CUSTOM ORGANIZATION ROLE"
permissionIds: [4, 5, 6]
scope: "organization"
) {
id
}
}

Função com escopo de entidade

mutation {
customRoleCreate(
container: { id: "YOUR_ORGANIZATION_ID", type: "ORGANIZATION" }
name: "MY CUSTOM ENTITY ROLE"
permissionIds: [7, 8, 9]
scope: "entity"
) {
id
}
}

Parâmetro

  • container:

    • id: (String) O identificador exclusivo da sua organização. Substitua YOUR_ORGANIZATION_ID pelo ID real da sua organização.
    • type: (String) O tipo de contêiner. Atualmente, o único tipo suportado é "ORGANIZATION".
  • name: (String) O nome atribuído à função personalizada.

  • permissionIds: (Array) Uma lista de IDs de permissão representando os recursos atribuídos à função personalizada. Use os IDs recuperados da consulta de permissões acima.

  • scope: (String) O nível em que as permissões da função se aplicam. Valores suportados:

    • "account": As permissões da função se aplicam no nível da conta
    • "organization": As permissões da função se aplicam no nível da organização
    • "entity": As permissões da função se aplicam no nível da entidade

Resposta

  • id: Retorna o ID único da função personalizada recém-criada.

    Importante

    • Substitua YOUR_ORGANIZATION_ID pelo ID específico da sua organização antes de executar a mutação.
    • Substitua o exemplo permissionIds pelos IDs de permissão reais que você recuperou da consulta de permissões.
    • Certifique-se de que os IDs de permissão que você usa correspondam ao escopo que você está criando. Use permissões com escopo de organização para funções de organização e permissões com escopo de conta para funções de conta.

Atualizar função

Aqui está um exemplo de atualização de uma função.

mutation {
customRoleUpdate(
id: ROLE_ID
name: "MY NEW CUSTOM ROLE NAME"
permissionIds: [4, 5, 6]
) {
id
}
}

Parâmetro

  • id: O identificador exclusivo da função personalizada que você deseja modificar. Substitua ROLE_ID pelo ID real da função.
  • name: O novo nome que você deseja atribuir à função personalizada. Neste exemplo, é MY NEW CUSTOM ROLE NAME.
  • permissionIds: Uma matriz de IDs de permissão que você deseja atribuir a esta função. Certifique-se de que esses IDs sejam válidos e correspondam às permissões que você pretende implementar.

Excluir uma função

Aqui está um exemplo de exclusão de uma função:

mutation {
customRoleDelete(id: ROLE_ID) {
id
}
}

Parâmetro

  • id: O identificador exclusivo da função que você deseja excluir. Substitua ROLE_ID pelo ID real da função que você deseja remover.

Resposta

  • id: Retorna o ID da função que foi excluída, confirmando a execução bem-sucedida da mutação.

Crie um grupo

Aqui está um exemplo de criação de um grupo:

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

Resposta bem-sucedida:

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

Atualizar grupo de usuários

Aqui está um exemplo de atualização de um grupo.

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

Resposta para o sucesso:

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

Resposta para falha:

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

Excluir um grupo

Aqui está um exemplo de exclusão de um grupo:

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

Resposta para o sucesso:

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

Resposta para falha:

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

Adicionar usuário aos grupos

Aqui está um exemplo de adição de usuário a grupos:

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

Resposta para o sucesso:

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

Resposta para falha:

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

Remover usuário dos grupos

Aqui está um exemplo de remoção de usuários de grupos:

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

Resposta para o sucesso:

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

Resposta para falha:

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

Conceder acesso a um grupo ou usuário

As concessões de acesso conectam grupos ou usuários a funções e definem o que eles podem acessar. Ao criar uma concessão de acesso, você está concedendo aos usuários ou grupos as permissões definidas em uma função, aplicadas a um destino específico (organização, contas, entidades ou outros grupos).

Para especificar quem recebe a concessão de acesso:

  • Para usuários: Use o parâmetro grantee com id e type: USER
  • Para grupos: Substitua grantee por groupId: "YOUR_GROUP_ID"

Concessão com escopo de conta

Aqui está um exemplo de concessão de acesso a uma função com escopo de conta:

mutation {
authorizationManagementGrantAccess(
grantAccessOptions: {
accountAccessGrants: {
accountId: YOUR_ACCOUNT_ID
dataAccessPolicyId: "YOUR_DATA_ACCESS_POLICY_ID"
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
name
}
}
}

Concessão com escopo de organização

Aqui está um exemplo de concessão de acesso a uma função com escopo de organização:

mutation {
authorizationManagementGrantAccess(
grantAccessOptions: {
organizationAccessGrants: {
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
name
}
}
}

Concessão com escopo de entidade

Aqui está um exemplo de concessão de acesso a uma função com escopo de entidade:

mutation {
authorizationManagementGrantAccess(
grantAccessOptions: {
entityAccessGrants: {
entity: { id: "YOUR_ENTITY_ID", type: "YOUR_ENTITY_TYPE" }
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
name
}
}
}

Concessão com escopo de grupo

Aqui está um exemplo de concessão de acesso a uma função com escopo de grupo:

mutation {
authorizationManagementGrantAccess(
grantAccessOptions: {
groupAccessGrants: {
groupId: "YOUR_TARGET_GROUP_ID"
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
name
}
}
}

Exemplos de resposta

Resposta para o sucesso:

{
"data": {
"authorizationManagementGrantAccess": {
"accessGrants": [
{
"id": "ACCESS_GRANT_ID"
}
],
"roles": [
{
"name": "ROLE_NAME"
}
]
}
}
}

Resposta para falha:

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

Atualizar concessões de acesso

Você pode atualizar as concessões de acesso de conta existentes para alterar a política de acesso a dados. Use a mutação authorizationManagementUpdateAccess com os IDs de concessão que você deseja atualizar.

Importante

A atualização de concessões de acesso está disponível no momento apenas para concessões com escopo de conta.

Aqui está um exemplo de atualização de uma concessão de acesso de conta:

mutation {
authorizationManagementUpdateAccess(
updateAccessOptions: {
accountAccessGrant: {
dataAccessPolicyId: "YOUR_NEW_DATA_ACCESS_POLICY_ID"
}
ids: "YOUR_ACCESS_GRANT_ID"
}
) {
grants {
id
}
}
}

Encontre um ID de função

Para alguns casos de uso, como conceder acesso a um grupo, você pode precisar de um ID de função: o ID numérico que representa essa função no New Relic.

Aqui estão alguns IDs para nossas funções padrão e configurações de administração:

  • All product admin: 1254.

  • Standard user: 1253.

  • Read only: 1252.

  • Organization manager setting 1994

    • Read only: 1995
  • Authentication domain setting:

    • Manage: 1996
    • Read only: 1997
    • Add users: 14517
    • Read users: 14603
  • Group admin: 14516

Aqui está uma consulta para encontrar o ID de uma função personalizada:

{
actor {
organization {
authorizationManagement {
authenticationDomains(id: "YOUR_AUTHENTICATION_DOMAIN_ID") {
authenticationDomains {
groups {
groups {
displayName
id
roles {
roles {
roleId
name
}
}
}
}
}
}
}
}
}
}

Revogar concessões de grupo ou usuário

A revogação de concessões de acesso remove a conexão entre grupos ou usuários e funções, retirando as permissões que eles tinham. Você pode revogar concessões no nível da organização, conta, entidade ou grupo. Ao revogar, especifique quem está perdendo o acesso usando grantee (para usuários) ou groupId (para grupos), de forma semelhante à concessão de acesso.

Revogação com escopo de conta

Aqui está um exemplo de revogação de acesso a uma função com escopo de conta:

mutation {
authorizationManagementRevokeAccess(
revokeAccessOptions: {
accountAccessGrants: {
accountId: YOUR_ACCOUNT_ID
dataAccessPolicyId: "YOUR_DATA_ACCESS_POLICY_ID"
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
id
}
}
}

Revogação com escopo de organização

Aqui está um exemplo de revogação de acesso a uma função com escopo de organização:

mutation {
authorizationManagementRevokeAccess(
revokeAccessOptions: {
organizationAccessGrants: {
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
id
}
}
}

Revogação com escopo de entidade

Aqui está um exemplo de revogação de acesso a uma função com escopo de entidade:

mutation {
authorizationManagementRevokeAccess(
revokeAccessOptions: {
entityAccessGrants: {
entity: { id: "YOUR_ENTITY_ID", type: "YOUR_ENTITY_TYPE" }
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
id
}
}
}

Revogação com escopo de grupo

Aqui está um exemplo de revogação de acesso a uma função com escopo de grupo:

mutation {
authorizationManagementRevokeAccess(
revokeAccessOptions: {
groupAccessGrants: {
groupId: "YOUR_TARGET_GROUP_ID"
roleId: "YOUR_ROLE_ID"
grantee: { id: "YOUR_USER_ID", type: USER }
}
}
) {
accessGrants {
id
}
roles {
id
}
}
}

Exemplos de resposta

Resposta para o sucesso:

{
"data": {
"authorizationManagementRevokeAccess": {
"accessGrants": [
{
"id": "ACCESS_GRANT_ID"
}
],
"roles": [
{
"id": "ROLE_ID"
}
]
}
}
}
Copyright © 2026 New Relic Inc.

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