このガイドでは、Alibaba Cloud IDaaS (EIAM) のイベントコールバックメカニズムについて説明します。アプリケーション同期機能の統合方法、イベントパラメーターの理解、効率的なシステム統合の実現方法を学びます。
イベントタイプ
このセクションでは、イベントのカテゴリについて説明します。統合の原則と呼び出しフローの詳細については、「アカウント同期の概要」をご参照ください。
-
テストイベント
アプリケーションの同期構成を検証するために、管理者はThe test is successful. ボタンをクリックします。これにより、テストイベントがトリガーされ、アプリケーションがこのイベントを処理して構成を検証します。
-
増分イベント
IDaaS 内部ディレクトリでの変更により、増分イベントが自動的にトリガーされます。これらのイベントは、IDaaS とサードパーティアプリケーション間でデータを継続的に更新および同期するために使用されます。これらのイベントをリッスンすることで、2 つのシステム間のデータ整合性が維持され、リアルタイムまたはほぼリアルタイムのデータ同期に最適です。
-
フルイベント
フルイベントは、IDaaS からターゲットアプリケーションにすべてのデータをインポートするために、管理者が IDaaS コンソールから手動でトリガーする同期操作です。これは通常、初期統合や完全なデータリフレッシュが必要な場合に使用されます。
イベントリスト
|
イベントモジュール |
イベントタイプ |
タイプコード |
|
テストイベント |
urn:alibaba:idaas:app:event:common:test |
|
|
ディレクトリ 増分イベント |
urn:alibaba:idaas:app:event:ud:user:create |
|
|
urn:alibaba:idaas:app:event:ud:user:delete |
||
|
urn:alibaba:idaas:app:event:ud:user:update_info |
||
|
urn:alibaba:idaas:app:event:ud:user:update_password |
||
|
urn:alibaba:idaas:app:event:ud:user:disable |
||
|
urn:alibaba:idaas:app:event:ud:user:enable |
||
|
urn:alibaba:idaas:app:event:ud:user:lock |
||
|
urn:alibaba:idaas:app:event:ud:user:unlock |
||
|
urn:alibaba:idaas:app:event:ud:user:update_primary_ou |
||
|
urn:alibaba:idaas:app:event:ud:organizational_unit:create |
||
|
urn:alibaba:idaas:app:event:ud:organizational_unit:delete |
||
|
urn:alibaba:idaas:app:event:ud:organizational_unit:update |
||
|
urn:alibaba:idaas:app:event:ud:organizational_unit:update_parent_organizational_unit |
||
|
urn:alibaba:idaas:app:event:ud:group:create |
||
|
urn:alibaba:idaas:app:event:ud:group:update |
||
|
urn:alibaba:idaas:app:event:ud:group:delete |
||
|
urn:alibaba:idaas:app:event:ud:group:add_user |
||
|
urn:alibaba:idaas:app:event:ud:group:remove_user |
||
|
ディレクトリ フルイベント |
urn:alibaba:idaas:app:event:ud:organizational_unit:push |
|
|
urn:alibaba:idaas:app:event:ud:user:push |
||
|
urn:alibaba:idaas:app:event:ud:group:push |
すべてのアカウントおよび組織単位のイベントについて、IDaaS は、アカウントまたは組織単位の完全な情報をパラメーターとしてイベントリスナーに送信します。データが機密性の高い場合は、HTTPS チャンネルを使用するか、[ビジネスデータ暗号化] オプションを選択して、転送中のデータを保護します。
テストイベント
接続テスト
このテストでは、構成の接続性、署名検証、および暗号化を検証します。
テストイベントは、専用のイベントタイプ urn:alibaba:idaas:app:event:common:test を使用します。
このイベントは、コンソールでのワンクリックテストによってのみトリガーでき、API 呼び出しはサポートされていません。
以下は、リクエストパラメーターの署名が検証された後のペイロードの例です:
{
"iss": "urn:alibaba:idaas:app:event",
"sub": "idaas_rhhoqmlnyu3cv7ow657gyvurky",
"aud": "app_mjavzivahje6zxkbc4i2bierdu",
"exp": 1648711369,
"iat": 1648709570,
"jti": "bNRrCYrqXjqe8B1xweqlZw",
"dataEncrypted": false,
"cipherData": "",
"plainData": {
"instanceId": "idaas_rhhoqmlnyu3cv7ow657gyvurky",
"aliUid": 151971404963****,
"eventVersion": "V1.0",
"eventData": [
{
"eventId":"evnt_aaaac766x2somw2ptotoyk6ag6bmfkt5xpqprpq",
"eventType":"urn:alibaba:idaas:app:event:common:test",
"eventTime":"1648709509849",
"bizId":"evnt_aaaac766x2somw2ptotoyk6ag6bmfkt5xpqprpq",
"bizData":"{\"bizData\":\"req_xxxxxxxxxxsdfsdfsfd\"}"
}
]
}
}
イベントを受信した後、アプリケーションは応答を返す必要があります。eventId が successEvents フィールドの eventId リクエストと一致することを確認してください。
そうでない場合、テストリクエストは失敗します。
{
"successEvents": [
{
"eventId": "evnt_aaaac766x2somw2ptotoyk6ag6bmfkt5xpqprpq",
"eventCode": "SUCCESS",
"eventMessage": "SUCCESS"
}
],
"skippedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
],
"failedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
],
"retriedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
]
}
増分アドレス帳イベント
ユーザーイベント
-
アカウント作成
このイベントをサブスクライブして、従業員のオンボーディングを処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:create。
解析後の
bizDataの例:{ "password": "ssGp96", "userId": "user_4alcbywzc7jyl23lu2srljsw7i", "username": "zhangsan", "displayName": "Zhang San", "passwordSet": true, "phoneRegion": "", "phoneNumber": "155****5620", "phoneVerified": false, "email":"zh***@163.com", "emailVerified": false, "userExternalId": "user_4alcbywzc7jyl23lu2srljsw7i", "userSourceType": "build_in", "userSourceId": "idaas_rhhoqmlnyu3cv7ow657gyvurky", "status": "enabled", "accountExpireTime": "-1", "registerTime": "1648531553621", "lockExpireTime": "-1", "createTime": "1648531553621", "updateTime": "1648531553621", "description": "", "customFields": [ { "fieldName": "test_custom_field", "fieldValue": "test_value" } ], "primaryOrganizationalUnitId": "ou_bvluxnp2ef36uupdwob6km34a4", "organizationalUnits": [ { "organizationalUnitId": "ou_bvluxnp2ef36uupdwob6km34a4", "organizationalUnitName": "R&D Department", "primary": true } ] }パラメーター
パラメーター
タイプ
説明
userId
String
一意のユーザー ID。
username
String
ユーザー名。
displayName
String
表示名。通常はユーザーのフルネームです。
passwordSet
boolean
パスワードが設定されているかどうかを示します。
phoneRegion
String
電話番号のリージョンコード。
phoneNumber
String
電話番号。
phoneVerified
boolean
電話番号が検証済みかどうかを示します。現在、この検証は実行されません。
email
String
メールアドレス。
emailVerified
boolean
メールアドレスが検証済みかどうかを示します。現在、この検証は実行されません。
userExternalId
String
外部 ID。自己構築アカウントの場合、この値は
userIdと同じです。DingTalk などの外部ソースから同期されたアカウントの場合、これはそのソースからのユーザーの ID です。たとえば、ユーザーが DingTalk からのものである場合、これはその DingTalk のuserIdです。userSourceType
String
アカウントのソースタイプ。自己構築アカウントの場合、値は
build_inです。userSourceId
String
アカウントソースの ID。
password
String
パスワード。このパラメーターは、アプリケーションでパスワード同期が有効になっており、ユーザーがパスワードを設定している場合に含まれます。
status
String
アカウントのステータス。有効な値:
enabledおよびdisabled。accountExpireTime
Long
アカウントの有効期限。
registerTime
Long
登録時間。
lockExpireTime
Long
ロックの有効期限。この時刻にアカウントのロックが解除されます。
createTime
Long
作成時間。
updateTime
Long
最終変更日時。
description
String
説明。
customFields
List
拡張フィールド。
-fieldName
String
フィールド名。
-fieldValue
String
フィールド値。
primaryOrganizationalUnitId
String
プライマリ組織単位の ID。
organizationalUnits
List
ユーザーが所属する組織単位のリスト。
-organizationalUnitId
String
組織単位 ID。
-organizationalUnitName
String
組織単位名。
-primary
boolean
これがユーザーのプライマリ組織単位であるかどうかを示します。プライマリ単位の場合は
true、それ以外の場合はfalse。 -
アカウント削除
このイベントをサブスクライブして、従業員のオフボーディングを処理します。このイベントは、アカウントがアドレス帳から削除されたときにトリガーされます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:delete。
解析後の
bizDataの例: アカウント作成時と同じです。 -
アカウント基本情報の更新
このイベントをサブスクライブすると、ユーザーの電話番号、メールアドレス、名前などの基本情報が変更されたときにタイムリーに更新情報を受け取ることができます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:update_info。
解析された
bizDataの例は、アカウント作成の場合と同じです。 -
アカウントパスワードの更新
このイベントは、ユーザーまたは管理者によってユーザーのパスワードが変更されたときにトリガーされます。このイベントをサブスクライブして、新しいパスワードを受信します。
重要注意:このイベントを受信するには、同期範囲を設定する必要があります。そうしないと、システムはこのイベントを送信しません。詳細については、「アカウント同期 - IDaaS からアプリケーションへの同期」をご参照ください。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:update_password。
解析後の
bizDataの例は、アカウント作成の場合と同じです。 -
アカウントの有効化
このイベントをサブスクライブすると、アカウントのステータスが無効から有効に変わったときに通知されます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:enable。
解析された
bizDataの例は、アカウント作成時と同じです。 -
アカウントの無効化
このイベントをサブスクライブすると、アカウントのステータスが有効から無効に変わったときに通知されます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:disable。
解析された
bizDataの例は、アカウント作成時と同じです。 -
アカウントのロック
このイベントをサブスクライブすると、パスワードの試行回数が多すぎるなどの理由でアカウントがロックされたときに通知されます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:lock。
解析後の
bizDataの例: アカウント作成の場合と同様です。 -
アカウントのロック解除
このイベントをサブスクライブすると、ロックされたアカウントがロック解除されたときに通知されます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:unlock。
解析された
bizDataの例: アカウント作成時と同じです。 -
アカウントの移動
このイベントをサブスクライブすると、アカウントのプライマリ組織単位が変更されたときに通知されます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:update_primary_ou。
解析後の
bizDataの例:アカウント作成時と同様です。
組織単位 (OU) イベント
-
組織単位の作成
このイベントをサブスクライブして、組織単位の作成を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:organizational_unit:create。
bizDataペイロードの例:{ "organizationalUnitId": "ou_dqdvxesykpfhig2kvgrzpeoeyu", "organizationalUnitName": "組織部", "parentId": "ou_dqdvxesykpdfasdfaseoeyu", "organizationalUnitExternalId": "ou_dqdvxesykpfhig2kvgrzpeoeyu", "organizationalUnitSourceType": "build_in", "organizationalUnitSourceId": "idaas_rhhoqmlnyu3cv7ow657gyvurky", "createTime": "1648451475209", "updateTime": "1648451475209", "description":"自己構築" }パラメーター
パラメーター
タイプ
説明
organizationalUnitId
String
組織単位の一意の ID。
organizationalUnitName
String
組織単位の名前。
parentId
String
親組織単位の ID。
organizationalUnitExternalId
String
外部 ID。組織単位が内部で作成された場合、この ID は
organizationalUnitIdと一致します。DingTalk などの外部ソースから同期された場合、この ID はそのソースの部門 ID に対応します。organizationalUnitSourceType
String
ソースタイプ。
organizationalUnitSourceId
String
ソースの ID。
createTime
Long
作成時間。
updateTime
Long
最終変更日時。
description
String
組織単位の説明。
-
組織単位の削除
このイベントをサブスクライブして、組織単位の削除を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:organizational_unit:delete。
bizDataペイロードは、組織単位作成時のものと同一です。 -
組織単位の更新
このイベントをサブスクライブして、組織単位の名前などの基本情報の更新を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:organizational_unit:update。
bizDataペイロードは、組織単位作成時のものと同一です。 -
組織単位の移動
このイベントをサブスクライブして、組織単位の新しい親への移動を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:organizational_unit:update_parent_organizational_unit。
bizDataペイロードは、組織単位作成時のものと同一です。
グループイベント
-
グループ作成
このイベントを使用して、グループ作成を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:group:create。
解析された
bizDataの例:{ "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024", "groupExternalId": "test_2024" }パラメーター:
パラメーター
タイプ
説明
groupId
String
グループの一意の識別子。
groupName
String
グループの表示名。
groupExternalId
String
グループの外部 ID。
allMembers
List
グループの現在のすべてのメンバー。
memberId
String
ユーザーの一意の識別子。
memberName
String
ユーザーの表示名。
-
基本情報の更新
このイベントを使用して、グループの基本情報の更新を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:group:update。
解析後の
bizDataの例: グループ作成時と同様です。 -
グループ削除
このイベントを使用して、グループ削除を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:group:delete。
解析された
bizDataの例:グループ作成時と同様です。 -
メンバーの追加
このイベントを使用して、グループへのメンバーの追加を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:group:add_user。
解析された
bizDataの例:{ "addedMembers": [ { "memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4", "memberName": "Xiao Ming" } ], "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024_test", "groupExternalId": "test_2024" }パラメーター:
パラメーター
タイプ
説明
groupId
String
グループの一意の識別子。
groupName
String
グループの表示名。
groupExternalId
String
グループの外部 ID。
addedMembers
List
グループに追加するメンバーのリスト。
-memberId
String
ユーザーの一意の識別子。
-memberName
String
ユーザーの表示名。
-
メンバーの削除
このイベントを使用して、グループからのメンバーの削除を処理します。
イベントタイプ:urn:alibaba:idaas:app:event:ud:group:remove_user。
解析された
bizDataの例:{ "removedMembers": [ { "memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4", "memberName": "Xiao Ming" } ], "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024_test", "groupExternalId": "test_2024" }パラメーター:
パラメーター
タイプ
説明
groupId
String
グループの一意の識別子。
groupName
String
グループの表示名。
groupExternalId
String
グループの外部 ID。
removedMembers
List
グループから削除するメンバーのリスト。
-memberId
String
ユーザーの一意の識別子。
-memberName
String
ユーザーの表示名。
アドレス帳のフルイベント
フルプッシュイベント
-
組織単位のフルプッシュ
イベントタイプ:urn:alibaba:idaas:app:event:ud:organizational_unit:push。
解析後の
bizDataの例:組織単位作成時と同様です。 -
アカウントのフルプッシュ
イベントタイプ:urn:alibaba:idaas:app:event:ud:user:push。
解析済み
bizDataの例: アカウント作成時と同じです。 -
グループのフルプッシュ
このイベントをサブスクライブすると、すべてのグループとそのメンバーの完全なリストを受信できます。
イベントタイプ:urn:alibaba:idaas:app:event:ud:group:push。
パースされた
bizDataの例:{ "allMembers": [ { "memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4", "memberName": "Xiao Ming" }, { "memberId": "user_zakg7oeea1234ff2bzcexample", "memberName": "Zhang San" } ], "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024", "groupExternalId": "test_2024" }パラメーター:
パラメーター
タイプ
説明
groupId
String
グループの一意の ID。
groupName
String
グループの表示名。
groupExternalId
String
グループの外部 ID。
allMembers
List
グループの現在のすべてのメンバー。
-memberId
String
メンバーの一意の ID。
-memberName
String
メンバーの表示名。