• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Tutorial de NerdGraph: Administrar grupos y usuarios

Puede utilizar nuestra API NerdGraph para ver y administrar grupos de usuarios y a qué pueden acceder esos grupos. Para saber cómo hacer esto en la UI, consulte los documentos de la UI de administración de usuarios.

Para usar NerdGraph para crear un usuario y ver su información, consulte Administrar usuario con NerdGraph.

Requisitos

Algunos requisitos para gestionar usuarios y grupos a través de NerdGraph:

Antes de que empieces

Antes de usar NerdGraph para administrar usuarios:

Flujo de trabajo sugerido para la creación de grupos.

Puede utilizar estas consultas y mutaciones de varias maneras y en varios órdenes, pero aquí hay un flujo de trabajo común para configurar grupos:

  1. Consulta la información de tu usuario y los roles disponibles: este puede ser un primer lugar útil para comenzar a asegurarte de comprender qué usuario tienes en New Relic y los roles disponibles. Si recién está comenzando, es posible que aún no haya agregado un usuario y que solo tenga nuestros roles estándar.
  2. Opcional: crear un grupo nuevo: Not available if using SCIM provisioning. Puede utilizar grupos existentes o crear un grupo nuevo. Después de crear un grupo, debes otorgarle acceso a roles y cuentas. Tenga en cuenta que un grupo, por sí solo, no otorga ningún acceso a los usuarios de ese grupo: solo cuando tiene un rol y una cuenta asignados, el usuario puede acceder a New Relic.
  3. Otorgar acceso a un grupo: esto es lo que asigna a los grupos acceso a roles y cuentas.

Cuando haya terminado, si ya hay usuarios en el grupo que ha creado y ese grupo tiene acceso a al menos una función y cuenta, deberían tener acceso en unos minutos (aunque para las cuentas New Relic de la región de la UE, esto puede tomar hasta 20 minutos aproximadamente). Si su usuario aún no está en ese grupo (lo cual sería cierto si acaba de crear un grupo nuevo), puede agregar un usuario a ese grupo.

Grupos de consulta

A continuación se muestra un ejemplo de consulta de grupos existentes en un dominio de autenticación determinado:

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

Consultar roles existentes

A continuación se muestra un ejemplo de cómo devolver información sobre roles:

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

Aquí hay un resultado de ejemplo:

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

Consulta usuario

Consultar información del usuario

A continuación se muestra un ejemplo de consulta de información sobre su usuario:

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

Aquí hay un resultado de ejemplo:

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

Consulta las membresías del grupo de tus usuarios

A continuación se muestra un ejemplo de consulta de los grupos a los que pertenece su usuario:

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

Aquí hay un ejemplo de respuesta:

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

Crear un rol

Antes de crear un rol personalizado, debes identificar las licencias que deseas asignarle.

Recuperar los ID de permisos

Utilice la siguiente consulta para recuperar la lista de permisos con alcance de cuenta:

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

Para los permisos con alcance a una organización, ejecute la siguiente consulta en su lugar:

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

Tenga en cuenta los siguientes campos:

  • items: Una matriz de objetos de licencia, cada uno de los cuales contiene el siguiente atributo:

    • category: (Cadena) La categoría o agrupación a la que pertenece la licencia.
    • feature: (Cadena) La característica específica con la que está asociado la licencia.
    • id: (Cadena) Un identificador único para cada licencia.
    • product: (Cadena) El producto al que se aplica la licencia.
    • subsetIds: (Matriz) Una lista de identificadores que representan subconjuntos o licencias relacionadas.

Crear el rol personalizado

Después de tener el identificador único para cada permiso que desea asignar al nuevo rol, use la siguiente mutación para crear un rol. Puede crear roles en tres alcances diferentes: cuenta, organización o nivel de entidad. El tipo de rol que cree debe coincidir con el alcance de los permisos que está asignando.

Rol con alcance de cuenta

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

Rol con alcance de organización

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

Rol con alcance de entidad

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

Parámetros

  • container:

    • id: (Cadena) El identificador único de su organización. Reemplace YOUR_ORGANIZATION_ID con su ID de organización real.
    • type: (Cadena) El tipo de contenedor. Actualmente, el único tipo admitido es "ORGANIZATION".
  • name: (String) El nombre asignado al rol personalizado.

  • permissionIds: (Array) Una lista de ID de permisos que representan las capacidades asignadas al rol personalizado. Utilice los ID recuperados de la consulta de permisos anterior.

  • scope: (String) El nivel al que se aplican los permisos del rol. Valores admitidos:

    • "account": Los permisos de rol se aplican a nivel de cuenta
    • "organization": Los permisos de rol se aplican a nivel de organización
    • "entity": Los permisos de rol se aplican a nivel de entidad

Respuesta

  • id: Devuelve el ID único del rol personalizado recién creado.

    Importante

    • Reemplace YOUR_ORGANIZATION_ID con el ID de su organización específica antes de ejecutar la mutación.
    • Reemplace el ejemplo permissionIds con los ID de permisos reales que recuperó de la consulta de permisos.
    • Asegúrese de que los ID de permisos que utiliza coincidan con el alcance que está creando. Utilice permisos con alcance de organización para roles de organización y permisos con alcance de cuenta para roles de cuenta.

Actualizar rol

A continuación se muestra un ejemplo de actualización de un rol.

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

Parámetros

  • id: El identificador único del rol personalizado que desea modificar. Reemplace ROLE_ID con el ID real del rol.
  • name: El nuevo nombre que desea asignar al rol personalizado. En este ejemplo, es MY NEW CUSTOM ROLE NAME.
  • permissionIds:Una matriz de identificaciones de licencias que desea asignar a esta función. Cerciorar de que estos ID sean válidos y correspondan a las licencias que desea implementar.

Eliminar un rol

A continuación se muestra un ejemplo de cómo eliminar un rol:

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

Parámetros

  • id: El identificador único del rol que desea eliminar. Reemplace ROLE_ID con el ID real del rol que desea eliminar.

Respuesta

  • id: Devuelve el ID del rol que fue eliminado, confirmando la ejecución exitosa de la mutación.

Crear un grupo

A continuación se muestra un ejemplo de cómo crear un grupo:

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

Respuesta exitosa:

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

Actualizar grupo de usuarios

A continuación se muestra un ejemplo de cómo actualizar un grupo.

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

Respuesta para el éxito:

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

Respuesta ante el fracaso:

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

Eliminar un grupo

A continuación se muestra un ejemplo de eliminación de un grupo:

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

Respuesta para el éxito:

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

Respuesta ante el fracaso:

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

Agregar usuario a grupos

A continuación se muestra un ejemplo de cómo agregar usuarios a grupos:

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

Respuesta para el éxito:

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

Respuesta ante el fracaso:

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

Eliminar usuario de grupos

A continuación se muestra un ejemplo de cómo eliminar usuarios de grupos:

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

Respuesta para el éxito:

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

Respuesta ante el fracaso:

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

Otorgar acceso a un grupo o usuario

Las concesiones de acceso conectan grupos o usuarios a roles y definen a qué pueden acceder. Cuando crea una concesión de acceso, está otorgando a los usuarios o grupos los permisos definidos en un rol, aplicados a un objetivo específico (organización, cuentas, entidades u otros grupos).

Para especificar quién recibe la concesión de acceso:

  • Para usuarios: Use el parámetro grantee con id y type: USER
  • Para grupos: Reemplace grantee con groupId: "YOUR_GROUP_ID"

Concesión con alcance de cuenta

Aquí hay un ejemplo de cómo otorgar acceso a un rol con alcance de cuenta:

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
}
}
}

Otorgamiento con alcance de organización

Aquí hay un ejemplo de cómo otorgar acceso a un rol con alcance de organización:

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

Otorgamiento con alcance de entidad

Aquí hay un ejemplo de cómo otorgar acceso a un rol con alcance de entidad:

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
}
}
}

Otorgamiento con alcance de grupo

Aquí hay un ejemplo de cómo otorgar acceso a un rol con alcance 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
}
}
}

Ejemplos de respuesta

Respuesta para el éxito:

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

Respuesta ante el fracaso:

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

Actualizar concesiones de acceso

Puede actualizar las concesiones de acceso existentes a la cuenta para cambiar la política de acceso a los datos. Use la mutación authorizationManagementUpdateAccess con los ID de concesión que desea actualizar.

Importante

La actualización de las concesiones de acceso solo está disponible actualmente para las concesiones con alcance de cuenta.

Aquí hay un ejemplo de cómo actualizar una concesión de acceso a la cuenta:

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

Buscar un ID de rol

Para algunos casos de uso, como otorgar acceso a un grupo, es posible que necesite el ID de un rol: el ID numérico que representa ese rol en New Relic.

A continuación se muestran algunos ID de nuestras funciones predeterminadas y configuraciones de administración:

  • 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

Aquí hay una consulta para encontrar el ID de un rol personalizado:

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

Revocar concesiones de grupo o usuario

La revocación de las concesiones de acceso elimina la conexión entre grupos o usuarios y roles, quitando los permisos que tenían. Puede revocar concesiones a nivel de organización, cuenta, entidad o grupo. Al revocar, especifique quién está perdiendo el acceso usando grantee (para usuarios) o groupId (para grupos), de manera similar a la concesión de acceso.

Revocación con alcance de cuenta

Aquí hay un ejemplo de cómo revocar el acceso a un rol con alcance de cuenta:

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
}
}
}

Revocación con alcance de organización

Aquí hay un ejemplo de cómo revocar el acceso a un rol con alcance de organización:

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

Revocación con alcance de entidad

Aquí hay un ejemplo de cómo revocar el acceso a un rol con alcance de entidad:

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
}
}
}

Revocación con alcance de grupo

Aquí hay un ejemplo de cómo revocar el acceso a un rol con alcance 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
}
}
}

Ejemplos de respuesta

Respuesta para el éxito:

{
"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.