本記事では、組織がUdemyのクロスドメインID管理システム(SCIM)APIを使用して、ユーザーライセンスを追加または削除する方法について説明します。
SCIMは、OktaやOneLoginなどの複数のIDプロバイダーに対応しています。 Udemy Business SCIM APIは、その他のIDプロバイダーや独自に構築されたツールでも利用できます。
メモ: Udemy BusinessのSCIM APIトークンの有効期間はおよそ2年間です。管理者には以下を知らせる通知が送信されます:
- トークンの有効期限の30日前
- トークンの有効期限後
ライセンス使用状況
IDプロバイダーでは、ライセンスは通常、グループ単位で、場合によっては個人単位で割り当てられます。リクエストにlicenseType属性が含まれている場合、対象ユーザーに割り当てるライセンスタイプが指定されます。
- この属性はユーザー作成時に含めることができ、ユーザーがUdemy Businessアカウントを有効化すると、指定されたライセンスが割り当てられます。
- この属性は既存ユーザーにも含めることができ、既存のライセンスを付与または削除することができます。
- 必要なタイプのライセンスがアカウント上で不足している場合、Udemy BusinessはIDプロバイダーにエラーメッセージを送信し、変更は行われません。
ライセンス削除に関する制限事項:
ユーザーにはライセンスタイプが必須です。ユーザーのすべてのライセンスを解放するには、そのユーザーを組織のアカウントで無効化する必要があります。Udemy Businessが空のlicenseType属性を受け取った場合、その属性は無視されます。
現在「Pro」ライセンスから「エンタープライズ」ライセンスへのダウングレードは、非アクティブなユーザー(「Pro」と「エンタープライズ」の両方のライセンスがプロビジョニングされているが、まだログインしていないユーザー)にはサポートされていません。
必須のlicenseType属性を指定する
組織のIDプロバイダーに含める必要があるlicenseTypes属性は次のとおりです:
urn:ietf:params:scim:schemas:extension:udemy:2.0:User
この属性は文字列のリストとして指定する必要があり、それぞれの文字列がライセンス名を表します(ライセンスタイプの詳細については以下のセクションを参照してください)。
受け入れ可能な値と対応するライセンスタイプを指定する
ユーザーのライセンスタイプを管理するには、受け入れ可能な値を入力する必要があります。以下の表に示す入力値は、Udemy Businessでサポートされているライセンスタイプに対して検証されます。ライセンス名の値は大文字と小文字を区別しません。
| ライセンス名 | タイプ |
受け入れ可能な値の例 |
| Enterprise | プランライセンス | Enterprise、eNtErpRisE、enTERprise、その他。 |
|
Pro |
追加のライセンス |
Pro、pRo、PRo、その他。 |
メモ: 受け入れ不可能な値が指定された場合、エラーメッセージが表示されます。
ユーザー作成時にlicenseTypesを含める方法
以下は、ユーザー作成時にlicenseTypesを含めるためにIDプロバイダーに入力する例です。
POST /scim/v2/Users HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <ここにBearerトークンを入力> Content-Type: application/scim+json { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User" ], "userName": "john.doe@udemy.com", "externalId": "someexternalidtest12312", "name": { "givenName": "John", "familyName": "Doe" }, "emails": [ { "primary": true, "type": "work", "value": "john.doe@udemy.com" } ], "active": true, "urn:ietf:params:scim:schemas:extension:udemy:2.0:User": { "licenseTypes": ["Enterprise", "Pro"] } } 既存ユーザーの属性を置き換え、licenseTypesを含める方法
以下は、既存のユーザーの属性を置き換え、licenseTypesを含めるために入力する例です:
PUT /scim/v2/Users/<scim-user-uuid> HTTP/1.1
Host: myorganization.udemy.com
Accept: application/scim+json
Authorization: Bearer <ここにBearerトークンを入力>
Content-Type: application/scim+json
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:udemy:2.0:User"
],
"userName": "john.doe@udemy.com",
"externalId": "someexternalidtest12312",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"primary": true,
"type": "work",
"value": "john.doe@udemy.com"
}
],
"active": true,
"urn:ietf:params:scim:schemas:extension:udemy:2.0:User": {
"licenseTypes": ["Enterprise", "Pro"]
}
}
既存ユーザーのlicenseTypesフィールドのみを設定する方法
既存のユーザーのlicenseTypesフィールドのみを設定するには、PATCHリクエストで次の2つのオプションを使用できます:
"op": "add"
既存のライセンスにアドオンライセンス(つまり「Pro」)を追加するには、以下を使用します:
"op": "replace"
既存の値を上書きします。
メモ:
追加操作により、Udemy Business Proライセンスを、既存のエンタープライズまたはエンタープライズ+Proライセンスに追加することができます。すでにエンタープライズライセンスをお持ちのお客様には、Proライセンスが追加されます。エンタープライズ+Proライセンスをすでに所有しているユーザーには、ライセンスは追加されません。
既存のユーザーのlicenseTypesフィールドのみを設定する場合の入力例を以下に示します:
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <Bearerトークンをここに入力> Content-Type: application/scim+json { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User", ], "Operations": [ { "op": "add", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User": { "licenseTypes": ["Pro"] } } ] }W ユーザーの現在のライセンスセット全体を上書きする方法
置換操作では、ユーザーに現在割り当てられているライセンスのセット全体が上書きされます。そのためには、以下を入力する必要があります。
PATCH /scim/v2/Users/<scim-user-uuid> HTTP/1.1 Host: myorganization.udemy.com Accept: application/scim+json Authorization: Bearer <Bearerトークンをここに入力> Content-Type: application/scim+json { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User", ], "Operations": [ { "op": "replace", "urn:ietf:params:scim:schemas:extension:udemy:2.0:User": { "licenseTypes": ["Enterprise", "Pro"] } } ] }