• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、 を参照してください。

問題を作成する

NerdGraph チュートリアル: ユーザー グループの管理

NerdGraph APIを使用して、ユーザー グループとそれらのグループがアクセスできる対象を表示および管理できます。UI でこれを行う方法については、 ユーザー管理 UI のドキュメントを参照してください。

NerdGraph を使用してユーザーを作成し、その情報を表示するには、「 NerdGraph でユーザーを管理する」を参照してください。

要件

NerdGraphを介してユーザーとグループを管理するためのいくつかの要件:

  • ユーザーグループとロールをカスタマイズするには、 Pro または Enterprise エディション が必要です

  • SCIMプロビジョニングを使用している場合:その認証ドメインでは、グループとユーザーはSCIMを介して管理されるため、グループを作成したり、グループにユーザーを追加したりすることはできません。

  • 新しいユーザーモデルのユーザーである必要があります。その他の権限関連の要件:

    • 必要なユーザータイプ:コアユーザーまたはフルプラットフォームユーザー
    • 必要な管理設定:組織の設定または認証ドメインの設定

始める前に

NerdGraphを使用してユーザーを管理する前に:

グループ作成の推奨ワークフロー

これらのクエリとミューテーションはさまざまな方法とさまざまな順序で使用できますが、グループを設定するための一般的なワークフローの 1 つを次に示します。

  1. ユーザーの情報と利用可能な役割クエリする:これは、NewRelicで使用しているユーザーと利用可能な役割を確実に理解するための最初の場所として役立ちます。始めたばかりの場合は、まだユーザーを追加していない可能性があり、標準の役割しか持っていない可能性があります。
  2. オプション: 新規グループの作成: SCIM プロビジョニングを使用している場合は使用できません。既存のグループを使用するか、新しいグループを作成できます。グループを作成したら、役割とアカウントへのアクセス権を付与する必要があります。グループ自体は、そのグループ内のユーザーにアクセスを許可しないことに注意してください。ユーザーが実際に New Relic にアクセスできるのは、ロールとアカウントが割り当てられている場合のみです。
  3. グループへのアクセスを許可する : これは、ロールとアカウントへのグループ アクセスを割り当てるものです。

完了したら、作成したグループにすでにユーザーがいて、そのグループが少なくとも 1 つのロールとアカウントにアクセスできる場合、それらのユーザーは数分以内にアクセスできるようになります (ただし、 EU 地域の New Relic アカウントの場合、これは可能です)。 20分ほどかかります)。ユーザーがまだそのグループに属していない場合 (新しいグループを作成した場合に該当します)、 そのグループにユーザーを追加できます

クエリ グループ

特定の認証ドメイン内の既存のグループを照会する例を次に示します。

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

既存の役割を照会する

ロールに関する情報を返す例を次に示します。

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

ユーザーのグループメンバーシップをクエリする

ユーザーが所属するグループをクエリする例を次に示します。

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

応答の例を次に示します。

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

グループを作成する

グループを作成する例を次に示します。

mutation {
userManagementCreateGroup(
createGroupOptions: {
authenticationDomainId: "YOUR_AUTH_DOMAIN_ID"
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: "YOUR_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: "YOUR_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: [FIRST_GROUP_ID, SECOND_GROUP_ID]
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: YOUR_ACCOUNT_ID
roleId: "YOUR_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"]
}
]
}

ロール ID を検索する

グループへのアクセス許可など、一部のユースケースでは、ロールの ID (New Relic でそのロールを表す数値 ID) が必要になる場合があります。

デフォルトの役割管理設定の ID をいくつか示します。

  • All product admin [すべての製品管理者]: 1254

  • Standard user [標準ユーザー]: 1253

  • Read only [読み取り専用]: 1252

  • 組織管理者の設定 1994

    • Read only [読み取り専用]: 1995
  • Authentication domain setting [認証ドメイン設定]:

    • Manage [管理]: 1996
    • Read only [読み取り専用]: 1997
    • Add users ユーザーを追加します。 14517
    • Read users [ユーザーを読む]: 14603
  • Group admin [グループ管理者]: 14516

カスタム ロールの ID を検索するクエリは次のとおりです。

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

グループからの助成金を取り消す

グループからアクセス権を削除する例を次に示します。

mutation {
authorizationManagementRevokeAccess(
revokeAccessOptions: {
accountAccessGrants: {
accountId: YOUR_ACCOUNT_ID
roleId: "YOUR_ROLE_ID"
}
groupId: "YOUR_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 © 2024 New Relic株式会社。

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