New Relic の自動ユーザー管理を実装し、ID プロバイダーからユーザーをインポートしたい場合は、まず 自動ユーザー管理の紹介 を読んで、サポートされている ID プロバイダーや、以下で説明する SCIM API をどのような場合に使用するのかを確認してください。
要件New Relic アプリがある ID プロバイダー (Azure AD、Okta、OneLogin) をお使いの場合は、 それらのガイドを参照してください 。SCIM API は、これらの ID プロバイダーを使用していない組織や、アプリでは利用できない追加の設定 (たとえば、 ユーザータイプの管理 ) に SCIM API を使用したい組織を対象としています。
当社の SCIM API を使用する前に、まず 認証ドメインに対して SCIM を有効にする必要があります 。
なお、SCIM APIで統合を設定した後は、一部のユーザーをベーシックユーザーにダウングレードしたり、ユーザーグループにNew Relicアカウントへのアクセス権を付与したりするなど、 次のステップを行う必要があります。
このAPIの具体的な使用方法については、 SCIM API tutorial を参照してください。
SCIMサービスプロバイダー New Relic の SCIM サービスプロバイダーは、 SCIM 2.0 API に従います。 RFC 7643 と 7644 で説明されています。ユーザー情報をNew Relicに統合するために、SCIM 2.0仕様のすべての側面を実装する必要はありません。実際、New Relic のサービスプロバイダー自体が仕様のすべての側面を実装しているわけではありません。このドキュメントでは、New Relic との統合に利用できる仕様の機能について説明しています。
認証 認証には、ベアラートークンが必要です。 このベアラートークンは、New Relic の認証ドメイン に固有のもので、認証ドメインに対して初めて SCIM を有効にする際に表示されます。
サポートされているリソース New Relic のサービスプロバイダーは以下の SCIM リソースをサポートしています。 Group
, User
, Service provider config
, Resource type
and Schema
. Bulk
and Search
はサポートしていません。RFCがリソースエンドポイントをどのように記述しているかについては、 RFC 7644 SCIM Protocol Specification を参照してください。
スキーマ New Relic は、SCIM コアスキーマで利用可能なフィールドのサブセットを使用します。他の SCIM フィールドが受信リクエストに含まれていても無視されます。New Relic が使用するフィールドは次のとおりです。
グループ
:
SCIMフィールド名
説明
表示名
必須です。 グループの名称です。
構成員
グループ内のユーザーのリスト。
ユーザー
:
SCIMフィールド名
説明
外部Id
お客様のシステムで使用されるユーザーの固有識別子。
ユーザー名
必須。 New Relic のシステム内でのユーザーの一意の識別子。ユーザーの電子メールアドレスを使用します。
name.familyName
ユーザーのラストネーム。
name.givenName
ユーザーのファーストネーム。
メール
または メール.バリュー
必須です。 ユーザーの電子メールアドレスです。
タイムゾーン
IANAタイムゾーンデータベース形式でのユーザーのタイムゾーン。"オルソン" タイムゾーンデータベース形式としても知られている(exmaple,"America/Los_Angeles" )。
アクティブ
必須。 ユーザーがNew Relic内でアクティブになるべきか、非アクティブになるべきかを示すブール値。
グループ
ユーザーが所属するグループの一覧。
New Relic のユーザータイプ (ベーシック、コア、フル) スキーマ これは、New Relic 固有のユーザー属性のための、オプションの スキーマ拡張 です。現在は、ユーザーの ユーザータイプ に対してのみ制御を行います。使い方のチュートリアルは、 SCIM API tutorial をご覧ください。
urn:ietf:params:scim:schemas:extension:newrelic:2.0:User
:
SCIMフィールド名
説明
nrUserType
ユーザータイプ : フルユーザー
, コアユーザー
, または ベーシックユーザー
を指定します。
対応アクションSCIMには、グループやユーザーを操作するためのいくつかのオプションがあります。New Relic のサービスプロバイダーは、以下のオプションをサポートしています。
設定する際には、以下の点に注意してください。
単純なフィルタリングのみサポートしています。 eq
演算子は、基本的なフィルター式と一緒に使うことができます。例えば、 "displayName eq"Example Group 1"
。その他の演算子はサポートされていません。 PUT
アップデートでは、すべてのフィールドが含まれている必要はありません。含まれていないフィールドは変更されません。 PUT
を行う際に、必須フィールドがすでに適切な値を持っている場合は、そのフィールドを含める必要はありません。サポートされているアクションは
グループ作成 リクエスト例
"urn:ietf:params:scim:schemas:core:2.0:Group"
"displayName": "Example Group 1",
回答例
"urn:ietf:params:scim:schemas:core:2.0:Group"
"id": "d0652232-b14f-434d-9c6f-36de7e1ab010",
"displayName": "Example Group 1",
"created": "2019-11-08T21:33:13.055Z",
"lastModified": "2019-11-08T21:33:13.055Z"
グループの取得 リクエスト例
GET /Groups/YOUR_GROUP_ID
回答例
"urn:ietf:params:scim:schemas:core:2.0:Group"
"id": "d0652232-b14f-434d-9c6f-36de7e1ab010",
"displayName": "Example Group 1",
"created": "2019-11-08T21:33:13.055Z",
"lastModified": "2019-11-08T21:33:13.055Z"
クエリによるグループの取得 リクエスト例
GET /Groups?filter=displayName eq "Example Group 1"
回答例
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
"urn:ietf:params:scim:schemas:core:2.0:Group"
"id": "d0652232-b14f-434d-9c6f-36de7e1ab010",
"displayName": "Example Group 1",
"created": "2019-11-08T21:33:13.055Z",
"lastModified": "2019-11-08T21:33:13.055Z"
PUTによるグループの更新 リクエストには、変更したいフィールドを含めます。 members
フィールドを含めると、グループのユーザーはmembersフィールドの内容に合わせて調整されます。リクエストの例。
PUT /Groups/YOUR_GROUP_ID
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:Group"
],
"displayName": "Example Group 1a"
}
回答例
"urn:ietf:params:scim:schemas:core:2.0:Group"
"id": "d0652232-b14f-434d-9c6f-36de7e1ab010",
"displayName": "Example Group 1a",
"created": "2019-11-08T21:33:13.055Z",
"lastModified": "2019-11-08T22:47:14.019Z"
PATCHでグループを更新する(非会員のフィールド) リクエスト例
PATCH /Groups/YOUR_GROUP_ID
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [{
"op": "Replace",
"path": "displayName",
"value": "Example Group 1b"
}]
}
回答例
PATCHでグループを更新する(メンバーの追加) リクエスト例
PATCH /Groups/YOUR_GROUP_ID
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [{
"op": "Add",
"path": "members",
"value": [{
"value": "f0cbc276-16c9-4d1a-abc0-1856b0c74224"
}]
}]
}
回答例
PATCHによるグループの更新(メンバーの削除) リクエスト例
PATCH /Groups/YOUR_GROUP_ID
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [{
"op": "Remove",
"path": "members",
"value": [{
"value": "f0cbc276-16c9-4d1a-abc0-1856b0c74224"
}]
}]
}
回答例
グループ削除 リクエスト例
DELETE /Groups/YOUR_GROUP_ID
回答例
ユーザー作成 リクエスト例
"urn:ietf:params:scim:schemas:core:2.0:User"
"externalId": "external-id-1",
"userName": "example-user-1@example.com",
"value": "example-user-1@example.com",
"timezone": "America/Los_Angeles",
回答例
"urn:ietf:params:scim:schemas:core:2.0:User"
"id": "f0cbc276-16c9-4d1a-abc0-1856b0c74224",
"externalId": "external-id-1",
"userName": "example-user-1@example.com",
"value": "example-user-1@example.com",
"timezone": "America/Los_Angeles",
"created": "2019-11-08T22:07:12.477Z",
"lastModified": "2019-11-08T22:07:12.477Z"
ゲットユーザー リクエスト例
回答例
"urn:ietf:params:scim:schemas:core:2.0:User"
"id": "f0cbc276-16c9-4d1a-abc0-1856b0c74224",
"externalId": "external-id-1",
"userName": "example-user-1@example.com",
"value": "example-user-1@example.com",
"timezone": "America/Los_Angeles",
"created": "2019-11-08T22:07:12.477Z",
"lastModified": "2019-11-08T22:07:12.477Z"
クエリでユーザーを取得 リクエスト例
GET /Users?filter=externalId eq "external-id-1"
回答例
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
"urn:ietf:params:scim:schemas:core:2.0:User"
"id": "f0cbc276-16c9-4d1a-abc0-1856b0c74224",
"externalId": "external-id-1",
"userName": "example-user-1@example.com",
"value": "example-user-1@example.com",
"timezone": "America/Los_Angeles",
"created": "2019-11-08T22:07:12.477Z",
"lastModified": "2019-11-08T22:07:12.477Z"
PUTによるユーザーの更新 リクエストには、変更したいフィールドを含めます。 groups
フィールドを含めると、ユーザーのグループは groups フィールドの内容に合わせて調整されます。リクエストの例。
PUT /Users/YOUR_USER_ID
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"name": {
"familyName": "User 1A",
"givenName": "Example"
}
}
回答例
"urn:ietf:params:scim:schemas:core:2.0:User"
"id": "f0cbc276-16c9-4d1a-abc0-1856b0c74224",
"externalId": "external-id-1",
"userName": "example-user-1@example.com",
"value": "example-user-1@example.com",
"timezone": "America/Los_Angeles",
"created": "2019-11-08T22:07:12.477Z",
"lastModified": "2019-11-08T22:28:33.552Z"
PATCHでユーザーを更新 リクエスト例
PATCH /Users/YOUR_USER_ID
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [{
"op": "Replace",
"path": "active",
"value": "false"
}]
}
回答例
ユーザーの削除 リクエスト例
DELETE /Users/YOUR_USER_ID
回答例
RFCからの乖離 このセクションでは、New Relic SCIM サービスプロバイダーが SCIM プロトコルから逸脱している部分について説明します RFC 7644 。セクション番号はRFCのセクション番号を参照しています。
このセクションの項目は、サービスプロバイダーがRFCに完全に準拠するようにするために変更される可能性があります。
RFCセクション名
RFCセクション番号
偏差値の説明
リソースの作成
3.3.
meta.location
フィールドが設定されていません。フィルタリング
3.4.2.2.
現在サポートされている唯一の演算子は eq
です。 フィールド名は大文字と小文字を区別します。 文字列属性は、大文字と小文字を区別して比較されます。 フィールド名の前にスキーマを付けることはサポートされていません。たとえば、 filter=urn:ietf:params:scim:schemas:core:2.0:User:userName eq"johnsmith"
は動作しません。 /Me
認証されたサブジェクトのエイリアス
3.11.
GET
を /Me
リソースと一緒に使用すると、 404 Not Found
が返されます。サービスプロバイダー設定用エンドポイント
4.
サービスプロバイダーの機能発見エンドポイントは、フィルタリングをサポートしていません。 ベアラートークンとクッキーに関する考察
7.4.
無記名のトークンは、有効期限が設定されていません。
終わった後の次のステップ 次のステップ
ユーザーのユーザータイプを調整する New Relic でユーザーがプロビジョニングされると、 ユーザー管理 UI で確認できます。
SCIM 経由で New Relic にユーザーを追加しているが、 ****SCIM 経由でユーザータイプを管理していない場合 、そのユーザーは ベーシックユーザーとしてスタートします 。ユーザーをアップグレードするには、2つのオプションがあります。
アクセスグラントの割り当て ユーザーがNew Relicに参加したら、特定のNew Relicアカウント、特定のグループ、特定のロールへのアクセス権を付与する必要があります。これを行わないと、ユーザーは New Relic アカウントへのアクセスができません。この方法については、以下を参照してください。