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:
Pro ou edição Enterprise é necessária para personalizar grupos e funções de usuários
Se você estiver usando o provisionamento SCIM: para esse domínio de autenticação, você não poderá criar grupos ou adicionar usuários a grupos, porque seus grupos e usuários são gerenciados via SCIM.
Você deve ser um usuário do nosso modelo de usuário mais recente. Outros requisitos relacionados a permissões:
Tipo de usuário necessário: usuário principal ou usuário completo da plataforma
Configurações de administração necessárias:
Organization settings
ou
Authentication domain settings
Antes que você comece
Antes de usar o NerdGraph para gerenciar o usuário:
Certifique-se de ter uma compreensão adequada de nossos conceitos de gerenciamento de usuários
Se ainda não o fez, sugerimos que consulte a interface
Access management
para melhorar sua compreensão de como funciona o acesso de grupos e usuários e para entender os grupos que já existem. Antes de fazer isso, recomendamos criar um plano para o acesso ao grupo que você precisa criar: aqui está um exemplo de planilha de planejamento.
Observe que o NerdGraph Explorer possui documentos integrados que definem os campos usados nessas solicitações.
Observe que você pode acompanhar as alterações em sua conta New Relic.
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:
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.
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.
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 New Relic da região da UE, isso possa levar até 20 minutos ou mais). Se o seu usuário ainda não estiver nesse grupo (o que seria verdade se você acabou de criar um novo grupo), você pode adicionar o usuário 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" } ] } },
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
Aqui está um exemplo de concessão de acesso a um grupo a uma função e uma conta:
mutation { authorizationManagementGrantAccess( grantAccessOptions: { groupId: "YOUR_GROUP_ID" accountAccessGrants: { accountId: YOUR_ACCOUNT_ID roleId: "YOUR_ROLE_ID" } } ) { roles { displayName accountId } }}
Resposta para o sucesso:
{ "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" } ] } }}
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"] } ]}
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 do grupo
Aqui está um exemplo de remoção de acesso de um grupo:
mutation { authorizationManagementRevokeAccess( revokeAccessOptions: { accountAccessGrants: { accountId: YOUR_ACCOUNT_ID roleId: "YOUR_ROLE_ID" } groupId: "YOUR_GROUP_ID" } ) { roles { accountId displayName } }}
Resposta para o sucesso:
{ "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" } ] } }}