Este guia explica o mecanismo de callback de eventos do Alibaba Cloud IDaaS (EIAM). Aprenda a integrar o recurso de sincronização de aplicações, compreender os parâmetros dos eventos e integrar sistemas com eficiência.
Tipos de eventos
Esta seção descreve as categorias de eventos. Para obter uma explicação detalhada sobre os princípios de integração e o fluxo de chamadas, consulte Visão geral da sincronização de contas.
-
Evento de teste
Para validar a configuração de sincronização da aplicação, o administrador clica no botão The test is successful.. Essa ação aciona um evento de teste, processado pela aplicação para verificar a configuração.
-
Evento incremental
Qualquer alteração no diretório interno do IDaaS aciona automaticamente um evento incremental. Esses eventos mantêm os dados atualizados e sincronizados continuamente entre o IDaaS e aplicações de terceiros. Escutar esses eventos garante a consistência dos dados entre os dois sistemas, cenário ideal para sincronização em tempo real ou quase em tempo real.
-
Evento completo
Um evento completo é uma operação de sincronização acionada manualmente por um administrador no console do IDaaS para importar todos os dados do IDaaS para a aplicação de destino. Esse tipo de evento é geralmente usado na integração inicial ou quando uma atualização completa dos dados é necessária.
Lista de eventos
|
Módulo do evento |
Tipo de evento |
Código do tipo |
|
Evento de teste |
urn:alibaba:idaas:app:event:common:test |
|
|
Diretório Evento incremental |
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 |
||
|
Diretório Evento completo |
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 |
Para todos os eventos de conta e unidade organizacional, o IDaaS envia as informações completas da conta ou da unidade organizacional como parâmetros para o listener de eventos. Se os dados forem sensíveis, utilize um canal HTTPS ou selecione a opção business data encryption para protegê-los durante a transmissão.
Evento de teste
Teste de conexão
Este teste verifica a conectividade da sua configuração, a validação de assinatura e a criptografia.
O evento de teste utiliza um tipo de evento dedicado: urn:alibaba:idaas:app:event:common:test.
Esse evento só pode ser acionado pelo teste com um clique no console; chamadas de API não são suportadas.
O exemplo a seguir mostra o payload após a verificação da assinatura dos parâmetros da solicitação:
{
"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\"}"
}
]
}
}
Após receber o evento, sua aplicação deve retornar uma resposta. Certifique-se de que o eventId no campo successEvents corresponda ao eventId da solicitação.
Caso contrário, a solicitação de teste falhará.
{
"successEvents": [
{
"eventId": "evnt_aaaac766x2somw2ptotoyk6ag6bmfkt5xpqprpq",
"eventCode": "SUCCESS",
"eventMessage": "SUCCESS"
}
],
"skippedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
],
"failedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
],
"retriedEvents": [
{
"eventId": "",
"eventCode": "",
"eventMessage": ""
}
]
}
Evento incremental do catálogo de endereços
Eventos de usuário
-
Criação de conta
Assine este evento para lidar com a entrada de funcionários.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:create.
Exemplo do
bizDataanalisado:{ "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 } ] }Parâmetros
Parâmetro
Tipo
Descrição
userId
String
O ID exclusivo do usuário.
username
String
O nome de usuário.
displayName
String
O nome de exibição, geralmente o nome completo do usuário.
passwordSet
boolean
Indica se uma senha foi definida.
phoneRegion
String
O código de região do telefone.
phoneNumber
String
O número de telefone.
phoneVerified
boolean
Indica se o número de telefone foi verificado. Atualmente, essa verificação não é realizada.
email
String
O endereço de e-mail.
emailVerified
boolean
Indica se o endereço de e-mail foi verificado. Atualmente, essa verificação não é realizada.
userExternalId
String
O ID externo. Para uma conta criada internamente, esse valor é igual ao
userId. Para uma conta sincronizada de uma fonte externa, este é o ID do usuário nessa fonte. Por exemplo, se um usuário for do DingTalk, este será ouserIddele no DingTalk.userSourceType
String
O tipo de origem da conta. Para uma conta criada internamente, o valor é
build_in.userSourceId
String
O ID da origem da conta.
password
String
A senha. Este parâmetro é incluído se a sincronização de senhas estiver ativada para a aplicação e o usuário tiver definido uma senha.
status
String
O status da conta. Valores válidos:
enablededisabled.accountExpireTime
Long
O tempo de expiração da conta.
registerTime
Long
O horário de registro.
lockExpireTime
Long
O tempo de expiração do bloqueio. A conta é desbloqueada neste horário.
createTime
Long
O horário de criação.
updateTime
Long
O horário da última modificação.
description
String
A descrição.
customFields
List
Os campos de extensão.
-fieldName
String
O nome do campo.
-fieldValue
String
O valor do campo.
primaryOrganizationalUnitId
String
O ID da unidade organizacional principal.
organizationalUnits
List
Uma lista de unidades organizacionais às quais o usuário pertence.
-organizationalUnitId
String
O ID da unidade organizacional.
-organizationalUnitName
String
O nome da unidade organizacional.
-primary
boolean
Indica se esta é a unidade organizacional principal do usuário.
truepara a unidade principal;falsecaso contrário. -
Exclusão de conta
Assine este evento para lidar com o desligamento de funcionários. Ele é acionado quando uma conta é removida do catálogo de endereços.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:delete.
Exemplo do
bizDataanalisado: Igual ao da criação de conta. -
Atualização das informações básicas da conta
Assine este evento para receber atualizações imediatas sempre que as informações básicas de um usuário, como número de telefone, e-mail ou nome, forem alteradas.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:update_info.
Exemplo do
bizDataanalisado: Igual ao da criação de conta. -
Atualização da senha da conta
Este evento é acionado quando a senha de um usuário é alterada, seja pelo próprio usuário ou por um administrador. Assine-o para receber a nova senha.
ImportanteNota: Você deve configurar o escopo de sincronização para receber este evento. Caso contrário, o sistema não o enviará. Para mais informações, consulte Sincronização de contas - Sincronizar do IDaaS para aplicações.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:update_password.
Exemplo do
bizDataanalisado: Igual ao da criação de conta. -
Ativação de conta
Assine este evento para ser notificado quando o status de uma conta mudar de desativado para ativado.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:enable.
Exemplo do
bizDataanalisado: Igual ao da criação de conta. -
Desativação de conta
Assine este evento para ser notificado quando o status de uma conta mudar de ativado para desativado.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:disable.
Exemplo do
bizDataanalisado: Igual ao da criação de conta. -
Bloqueio de conta
Assine este evento para ser notificado quando uma conta for bloqueada, por exemplo, devido a múltiplas tentativas incorretas de senha.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:lock.
Exemplo do
bizDataanalisado: Igual ao da criação de conta. -
Desbloqueio de conta
Assine este evento para ser notificado quando uma conta bloqueada for desbloqueada.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:unlock.
Exemplo do
bizDataanalisado: Igual ao da criação de conta. -
Movimentação de conta
Assine este evento para ser notificado quando a unidade organizacional principal de uma conta for alterada.
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:update_primary_ou.
Exemplo do
bizDataanalisado: Igual ao da criação de conta.
Eventos de unidade organizacional (OU)
-
Criação de unidade organizacional
Assine este evento para lidar com a criação de unidades organizacionais.
Tipo de evento: urn:alibaba:idaas:app:event:ud:organizational_unit:create.
Exemplo de payload
bizData:{ "organizationalUnitId": "ou_dqdvxesykpfhig2kvgrzpeoeyu", "organizationalUnitName": "Organization Department", "parentId": "ou_dqdvxesykpdfasdfaseoeyu", "organizationalUnitExternalId": "ou_dqdvxesykpfhig2kvgrzpeoeyu", "organizationalUnitSourceType": "build_in", "organizationalUnitSourceId": "idaas_rhhoqmlnyu3cv7ow657gyvurky", "createTime": "1648451475209", "updateTime": "1648451475209", "description":"Self-built" }Parâmetros
Parâmetro
Tipo
Descrição
organizationalUnitId
String
O ID exclusivo da unidade organizacional.
organizationalUnitName
String
O nome da unidade organizacional.
parentId
String
O ID da unidade organizacional pai.
organizationalUnitExternalId
String
O ID externo. Este ID corresponde ao
organizationalUnitIdse a unidade organizacional for criada internamente. Se sincronizada de uma fonte externa como o DingTalk, este ID corresponde ao ID do departamento nessa fonte.organizationalUnitSourceType
String
O tipo de origem.
organizationalUnitSourceId
String
O ID da origem.
createTime
Long
O horário de criação.
updateTime
Long
O horário da última modificação.
description
String
Uma descrição da unidade organizacional.
-
Exclusão de unidade organizacional
Assine este evento para lidar com a exclusão de unidades organizacionais.
Tipo de evento: urn:alibaba:idaas:app:event:ud:organizational_unit:delete.
O payload
bizDataé idêntico ao da criação de unidade organizacional. -
Atualização de unidade organizacional
Assine este evento para lidar com atualizações nas informações básicas de uma unidade organizacional, como seu nome.
Tipo de evento: urn:alibaba:idaas:app:event:ud:organizational_unit:update.
O payload
bizDataé idêntico ao da criação de unidade organizacional. -
Movimentação de unidade organizacional
Assine este evento para lidar com a movimentação de uma unidade organizacional para um novo pai.
Tipo de evento: urn:alibaba:idaas:app:event:ud:organizational_unit:update_parent_organizational_unit.
O payload
bizDataé idêntico ao da criação de unidade organizacional.
Eventos de grupo
-
Criação de grupo
Use este evento para lidar com a criação de grupos.
Tipo de evento: urn:alibaba:idaas:app:event:ud:group:create.
Exemplo do
bizDataanalisado:{ "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024", "groupExternalId": "test_2024" }Parâmetros:
Parâmetro
Tipo
Descrição
groupId
String
Um identificador exclusivo para o grupo.
groupName
String
O nome de exibição do grupo.
groupExternalId
String
O ID externo do grupo.
allMembers
List
Todos os membros atuais do grupo.
memberId
String
Um identificador exclusivo para o usuário.
memberName
String
O nome de exibição do usuário.
-
Atualização de informações básicas
Use este evento para lidar com atualizações nas informações básicas do grupo.
Tipo de evento: urn:alibaba:idaas:app:event:ud:group:update.
Exemplo do
bizDataanalisado: Igual ao da criação de grupo. -
Exclusão de grupo
Use este evento para lidar com a exclusão de grupos.
Tipo de evento: urn:alibaba:idaas:app:event:ud:group:delete.
Exemplo do
bizDataanalisado: Igual ao da criação de grupo. -
Adição de membro
Use este evento para lidar com a adição de um membro a um grupo.
Tipo de evento: urn:alibaba:idaas:app:event:ud:group:add_user.
Exemplo do
bizDataanalisado:{ "addedMembers": [ { "memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4", "memberName": "Xiao Ming" } ], "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024_test", "groupExternalId": "test_2024" }Parâmetros:
Parâmetro
Tipo
Descrição
groupId
String
Um identificador exclusivo para o grupo.
groupName
String
O nome de exibição do grupo.
groupExternalId
String
O ID externo do grupo.
addedMembers
List
Uma lista de membros a serem adicionados ao grupo.
-memberId
String
Um identificador exclusivo para o usuário.
-memberName
String
O nome de exibição do usuário.
-
Remoção de membro
Use este evento para lidar com a remoção de um membro de um grupo.
Tipo de evento: urn:alibaba:idaas:app:event:ud:group:remove_user.
Exemplo do
bizDataanalisado:{ "removedMembers": [ { "memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4", "memberName": "Xiao Ming" } ], "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024_test", "groupExternalId": "test_2024" }Parâmetros:
Parâmetro
Tipo
Descrição
groupId
String
Um identificador exclusivo para o grupo.
groupName
String
O nome de exibição do grupo.
groupExternalId
String
O ID externo do grupo.
removedMembers
List
Uma lista de membros a serem removidos do grupo.
-memberId
String
Um identificador exclusivo para o usuário.
-memberName
String
O nome de exibição do usuário.
Eventos completos do catálogo de endereços
Eventos de envio completo
-
Envio completo de unidades organizacionais
Tipo de evento: urn:alibaba:idaas:app:event:ud:organizational_unit:push.
Exemplo de
bizDataanalisado: Igual ao da criação de unidade organizacional. -
Envio completo de contas
Tipo de evento: urn:alibaba:idaas:app:event:ud:user:push.
Exemplo de
bizDataanalisado: Igual ao da criação de conta. -
Envio completo de grupos
Assine este evento para receber uma lista completa de todos os grupos e seus membros.
Tipo de evento: urn:alibaba:idaas:app:event:ud:group:push.
Exemplo de
bizDataanalisado:{ "allMembers": [ { "memberId": "user_zakg7oeeaftqqff2bzcv7wpqs4", "memberName": "Xiao Ming" }, { "memberId": "user_zakg7oeea1234ff2bzcexample", "memberName": "Zhang San" } ], "groupId": "group_yvx3ugdi3yzaehnsd3uqzb4xha", "groupName": "test_2024", "groupExternalId": "test_2024" }Parâmetros:
Parâmetro
Tipo
Descrição
groupId
String
O ID exclusivo do grupo.
groupName
String
O nome de exibição do grupo.
groupExternalId
String
O ID externo do grupo.
allMembers
List
Todos os membros atuais do grupo.
-memberId
String
O ID exclusivo do membro.
-memberName
String
O nome de exibição do membro.