このドキュメントでは、Alibaba Cloud IDaaS のイベントコールバックメカニズムについて説明し、アプリケーション同期の統合に関する包括的なガイドを開発者向けに提供します。イベントパラメーターのカテゴリと処理フローを網羅し、効率的なシステム統合の実現を支援します。
基本情報
このセクションでは、イベントパラメーターとそのカテゴリについて説明します。統合の原則と呼び出しフローの詳細については、「アカウント同期の概要」をご参照ください。
テストイベント
管理者がアプリケーション同期を設定した後、The test is successful. ボタンをクリックして構成を検証できます。この操作により、テストイベントがトリガーされます。アプリケーションは、このイベントを受信して処理し、構成が正しいことを確認する必要があります。
増分イベント
増分イベントは、IDaaS 内部のアドレス帳に変更が発生したときに自動的にトリガーされます。これらのイベントは、IDaaS とサードパーティアプリケーション間の継続的なデータ更新と同期に使用されます。これらのイベントをリッスンすることで、両システム間のデータ整合性を維持できます。これは、リアルタイムまたはほぼリアルタイムのデータ同期を必要とするシナリオで特に役立ちます。
フルイベント
フルイベントは、管理者が 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 呼び出しはサポートしていません。
以下は、リクエストパラメーターの署名が検証された後の payload の例です。
{
"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\"}"
}
]
}
}アプリケーションは、イベントを正常に受信した後に応答を返す必要があります。応答の successEvents フィールド内の eventId が、リクエストの `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。自己構築アカウントの場合、この ID は `userId` と同じです。外部ソースから同期されたアカウントの場合、これはそのソースのユーザー ID です。たとえば、ソースが DingTalk の場合、これは DingTalk の `userId` です。
userSourceType
String
自己構築アカウントのソースタイプは "build_id" です。
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
フィールド名の ID。
-fieldValue
String
フィールド値。
primaryOrganizationalUnitId
String
ユーザーが所属するプライマリ組織単位。
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。
organizationalUnitId。DingTalk などの外部ソースから同期された場合、これは DingTalk の部門 ID です。
organizationalUnitSourceType
String
ソースタイプ。
organizationalUnitSourceId
String
ソースタイプ ID。
createTime
Long
作成時間。
updateTime
Long
更新時間。lastUpdatedTime と同じです。
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
一意のグループ ID。
groupName
String
グループの表示名。
groupExternalId
String
グループの外部 ID。
allMembers
List
グループの現在のすべてのメンバー。
memberId
String
一意のユーザー ID。
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
一意のグループ ID。
groupName
String
グループの表示名。
groupExternalId
String
グループの外部 ID。
addedMembers
List
追加するメンバー。
-memberId
String
一意のユーザー ID。
-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
一意のグループ ID。
groupName
String
グループの表示名。
groupExternalId
String
グループの外部 ID。
removedMembers
List
削除するメンバー。
-memberId
String
一意のユーザー ID。
-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
ユーザーの表示名。