• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

SCIM APIチュートリアル

このチュートリアルでは、 New Relic One のユーザーモデル において、SCIM API を使ってユーザーを管理するための一般的な手順を説明します。SCIM API を使うと、 ユーザー管理 UI の外で、ユーザーやグループの表示、作成、更新、削除をプログラムで行うことができます。

要件

このチュートリアルを使用する前に、読むことをお勧めします。

その他の関連資料

概要

このチュートリアルでは、ID プロバイダ サービスから New Relic にユーザーを追加し、そこからユーザーを管理するために必要な、最も一般的なタスクのいくつかを実行する方法を紹介します。これは、主要な SCIM API リソース を補完することを目的としています。

自動ユーザー管理を使用すると、ユーザーのグループがNew Relicにインポートされることに注意してください。つまり、ユーザー管理のUIを使ってユーザーをグループに追加することはできません。グループはお客様のIDプロバイダー側で作成、管理されます。

ユーザーグループのNew Relicへの取り込みが完了したら、 Organization and access UIを使用して、アクセスグラントを作成する必要があります。アクセスグラントは、グループに特定のロールやアカウントへのアクセス権を与えるものです。詳しくは、 user management concepts をご覧ください。

SCIM用の認証ドメインの設定

SCIM API を使用する前に、まず 認証ドメインで SCIM を有効にする必要があります 。なお、APIアクセストークンは設定を保存した後に一度だけ表示されるので、後のユーザーのために安全な場所に保存しておいてください。

ヒント

後でベアラートークンを表示する必要がある場合は、新しいベアラートークンを生成するしかありませんが、その場合、古いトークンは無効になり、古いトークンを使用した統合も無効になります。

システムにユーザーとユーザーグループを作成する

SCIM APIは一般的に、データベースやNew Relic用の設定があらかじめ用意されていないサードパーティのIDプロバイダーからNew Relicにユーザーやグループをインポートするスクリプトで使用されます。

SCIM APIをカスタムアプリケーションやアドホックなリクエストに使用したい場合は、SCIM APIへの接続方法に進んでください。

SCIM APIへの接続

SCIM API は https://scim-provisioning.service.newrelic.com/scim/v2 で利用でき、この URL は認証ドメイン設定ページで見ることができます。SCIM API にアクセスするためには、クライアントは各リクエストに ベアラートークン を含める必要があります。トークンは、Authentication Domain の設定を保存した後に表示されます。

サードパーティの ID プロバイダを使用している場合は、 Bearer token authorization を使用するように設定し、API アクセストークンをプラグインします。この設定については、ID プロバイダのドキュメントを参照してください。設定が完了したら、ユーザーとグループをインポートする準備が整いました。

SCIMプロトコルのRFC全体を読むのではなく、価値のある3つの特定のセクションがあります。 RFC 7643 - SCIM Core Resources and ExtensionsRFC 7643 - JSON Representation を参照してください。このチュートリアルで使われているプロトコルについては、 RFC 7644 - SCIM Protocol を参照してください。

SCIM API へのすべてのリクエストについて、 Authorization ヘッダでベアラートークンを提供する必要があります。以下は curl による例です:

curl -X 'GET' -H 'Accept: application/json' -H "Authorization: Bearer $TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Users'

このチュートリアルの残りの部分のすべてのリクエストは、APIアクセストークンが見つからないか無効な場合、 401 Unauthorized レスポンスを受け取ります。

回答例

認証ドメインでのユーザー作成

SCIM API を使用して、 POST リクエストを /scim/v2/Users に送信し、ユーザを作成することができます。以下のユーザ属性は 必須です

  • userName この識別子 は、 認証ドメイン内で一意でなければなりません。ユーザーの電子メールアドレスを使用します。
  • emails userName と同じです。ユーザーの電子メールアドレスです。( emails と呼ばれているにもかかわらず、この手順では1つだけ入力します)。
  • active ユーザーがNew Relic内でアクティブであるべきか、非アクティブであるべきかを示すブール値。

最高のユーザー体験のために、以下の属性を提供することをお勧めします。

  • name.givenName ユーザーのファーストネームまたはギルドネームです。
  • name.familyName ユーザーのラストネームまたはファミリーネームです。
  • timezone IANAタイムゾーンデータベース形式のユーザーのタイムゾーン。
curl -X 'POST' -H 'Content-Type: application/json' -H "Authorization: Bearer $TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Users' --data-binary @- <<EOF
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "bjensen@example.com",
"name": {
"familyName": "Jensen",
"givenName": "Barbara"
},
"emails": [
{
"primary": true,
"value": "bjensen@example.com"
}
],
"active": true,
"timezone": "America/Los_Angeles"
}
EOF

重要

返されたユーザー id に注意してください。将来的にユーザーを更新するには、リクエストに同じIDを指定する必要があります。

回答例

認証ドメインでのグループ作成

SCIM API を使用して、 POST リクエストを /scim/v2/Groups に送信し、グループを作成することができます。必要なグループ属性 だけです。

  • displayName グループ名です。
curl -X 'POST' -H 'Content-Type: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Groups' --data-binary @- <<EOF
{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
    "displayName": "Example Group"
}
EOF

重要

返されたグループ ID をメモしておいてください。今後、グループやそのメンバーを更新する際には、同じIDをリクエストに含める必要があります。

回答例

認証ドメイン内のユーザーとグループの表示

いくつかのユーザとグループを作成した後、それらは User management UI で見ることができます。また、SCIM API からそれらを取得することもできます。

このチュートリアルでは、特定のユーザやグループを検索しますが、ユーザやグループを表示する方法はそれだけではありません。利用可能なすべてのクエリオプションについては、 SCIM API reference および RFC 7644 を参照してください。

電子メールでユーザーを取得するには、 GET リクエストを /scim/v2/Usersfilter クエリパラメータを指定して送信します。 filter パラメータは、URL エンコードされている必要があります。

curl -X 'GET' -H 'Accept: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Users' --get --data-urlencode 'filter=userName eq "bjensen@example.com"'

回答例

同様に、 GET リクエストを /scim/v2/Groupsfilter クエリパラメータを付けて送信し、名前でグループを取得します。

curl -X 'GET' -H 'Accept: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Groups' --get --data-urlencode 'filter=displayName eq "Example Group"'

回答例

ユーザーの属性の更新

SCIM API はユーザを更新するために PUTPATCH の両方の方法をサポートしています。 SCIM API supported actions and RFC 7644 PATCH の使用に関する詳細はこちらを参照してください。このチュートリアルでは、 PUT メソッドを使ってユーザの属性を更新する方法を説明します。

New Relicでは、すべてのユーザー属性をリクエスト本文に含める必要はありませ。更新する属性のみが必要です。 PUTリクエストを/scim/v2/Users/${ID}に送信して、ユーザーを更新します。

curl -X 'PUT' -H 'Content-Type: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Users/5a1d580f-323c-450c-8c62-479b5c9085d6' --data-binary @- <<EOF
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
  "timezone": "America/Chicago"
}
EOF

回答例

グループのメンバーの更新

SCIM API は、グループを更新するために PUTPATCH の両方のメソッドをサポートしています。このチュートリアルでは、 PATCH メソッドを使ってグループのメンバーを更新する方法を説明します。 SCIM API supported actions and RFC 7644 PUT の使用に関する詳細を参照してください。

PATCH は、リクエストに全メンバーリストを指定しなくても、グループメンバーの追加や削除ができるので便利です。ユーザーをグループに追加するには、以下の操作パラメーターを使用します。

  • op set to Add
  • パス に設定 メンバー
  • リストに設定された {"値":"${USER_ID}を表示します。"} グループに追加する各ユーザーIDと一緒に

PATCH リクエストを /scim/v2/Groups/${ID} に送ります。 グループメンバーを更新します。

curl -X 'PATCH' -H 'Content-Type: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Groups/df2b9a04-0426-4a3e-bf5f-54d5341f4e5b' --data-binary @- <<EOF
{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [{
    "op": "Add",
    "path": "members",
    "value": [{
      "value": "5a1d580f-323c-450c-8c62-479b5c9085d6"
    }]
  }]
}
EOF

回答例

グループからユーザーを削除するには、以下の操作パラメーターを使用します。

  • op set to Remove
  • パス に設定 メンバー
  • リストに設定された {"値":"${USER_ID}を表示します。"} グループから削除する各ユーザーIDを設定
curl -X 'PATCH' -H 'Accept: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Groups/df2b9a04-0426-4a3e-bf5f-54d5341f4e5b' --data-binary @- <<EOF
{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [{
    "op": "Remove",
    "path": "members",
    "value": [{
      "value": "5a1d580f-323c-450c-8c62-479b5c9085d6"
    }]
  }]
}
EOF

回答例

ユーザーとグループの削除

認証ドメインからユーザーを削除するには、 DELETE リクエストを /scim/v2/Users/${ID} に送信します。

curl -X 'DELETE' -H 'Accept: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Users/d0f4d8e3-5413-4894-a8f9-de709994e18c'

回答例

204 No Content

同様に、認証ドメインからグループを削除するには、 DELETE リクエストを /scim/v2/Groups/${ID} に送信します。

curl -X 'DELETE' -H 'Accept: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Groups/df2b9a04-0426-4a3e-bf5f-54d5341f4e5b'

回答例

204 No Content

次のステップ

統合が完了すると、次のステップが考えられます。

オプションユーザータイプの管理

SCIM API の統合が完了すると、New Relic に導入されたすべてのユーザーは基本ユーザーとしてスタートします。 ユーザータイプ を管理するために、デフォルトの方法である ユーザー管理 UI を使用することができます。オプションとして、代わりに SCIM API を使用することもできます。これを行うには、認証ドメインの設定を更新して、 ユーザータイプの制御を委任する をアイデンティティプロバイダーまたはカスタムアプリケーションに設定します。

ユーザのタイプ属性は、 カスタムスキーマ urn:ietf:params:scim:schemas:extension:newrelic:2.0:User で定義されています。ユーザのタイプを設定するには、このスキーマと nrUserType の文字列属性を、作成または更新リクエストに含めてください。

nrUserType の有効な値は以下の通りです。

  • フルユーザー
  • コアユーザー
  • ベーシックユーザー

新しい Basic ユーザー を作成するには、 POST リクエスト /scim/v2/Users を送信し、New Relic のカスタム スキーマ エクステンションを含めます。

curl -X 'POST' -H 'Content-Type: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Users' --data-binary @- <<EOF
{
    "schemas": [
      "urn:ietf:params:scim:schemas:core:2.0:User",
      "urn:ietf:params:scim:schemas:extension:newrelic:2.0:User"
    ],
    "userName": "jbenson@example.com",
    "name": {
        "givenName": "James",
        "familyName": "Benson"
    },
    "emails": [{
        "primary": true,
        "value": "jbenson@example.com",
        "type": "work"
    }],
    "active": true,
    "timezone": "America/Chicago",
    "urn:ietf:params:scim:schemas:extension:newrelic:2.0:User": {
      "nrUserType": "Basic User"
    }
}
EOF

回答例

ユーザーのタイプを更新するには、 PUT リクエスト scim/v2/Users/${ID} を送信します。 、カスタム New Relic スキーマ拡張を含めます。

curl -X 'PUT' -H 'Content-Type: application/json' -H "Authorization: Bearer $YOUR_TOKEN" 'https://scim-provisioning.service.newrelic.com/scim/v2/Users' --data-binary @- <<EOF
{
    "schemas": [
      "urn:ietf:params:scim:schemas:core:2.0:User",
      "urn:ietf:params:scim:schemas:extension:newrelic:2.0:User"
    ],
    "urn:ietf:params:scim:schemas:extension:newrelic:2.0:User": {
      "nrUserType": "Full User"
    }
}
EOF

回答例

Copyright © 2022 New Relic株式会社。