Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The figure above shows the internals of the EmpowerID Bot. The EmpowerID Bot is available on different platforms or channels, where you can interact with it for self-service identity and access management. Azure Bot Service handles the interaction of the messages from EmpowerID to the channels. Bot Service is a microservice that provides the rest endpoint or interface between the EmpowerID and the Azure Bot Service. The Bot microservice comprises of the BotFlow and ApiFlow; BotFlows are those operations in Bot that trigger a workflow in EmpowerID, whereas the ApiFlows will invoke API endpoints.
E.g., the Bot allows you to Change a Password, and this change password feature in the Bot is possible because of a BotFlow. If you are using the ask to see command “Which management roles are I a member of?“ this Bot feature will consume the API endpoints of Bot Microservice. You can develop BotFlow and ApiFlow using EmpowerID Workflow Studio like any other EmpowerID workflow and API.

Tip

Key Components

Channel: Channel is the connection between the Application and the Bot for communication. You can initiate a channel or chat for EmpowerID Bot from Microsoft Teams, Service Now, EmpowerID Mobile App, and Web Chat.

Azure Bot Service: Azure Bot Service is a managed bot development service that helps you seamlessly connect to users via channels. Bot Framework and Azure Bot Service provide tools to build, test, deploy, and manage bots.

Bot Service: Bot Service is a microservice built in .NET Core, which acts as an interface between Azure Bot Service and the EmpowerID system. This microservice is capable of interpreting commands and executing actions in EmpowerID. Results or messages from EmpowerID are transformed into Bot Framework components by bot service.

BotFlow: BotFlow is those operations in Bot that trigger a workflow in EmpowerID.

ApiFlow: ApiFlow is those operations in Bot that trigger a workflow in EmpowerID.

One significant differentiation with EmpowerID bot is that the bot operations are not built upon Azure Bot SDK, and developers use EmpowerID libraries/components called activity to develop bot capabilities. These components get transformed into Microsoft bot elements by the Bot Microservice. E.g., We don't create an Adaptive Card. Instead, we develop BotAdaptive Card Activity, which will be transformed into an Adaptive card and vice versa by the Bot Microservice.

Communication Flow & Architecture

...

Users can interact with the Bot using different channels like Microsoft Teams, Web Chat, or the Mobile App. The operation requested via Bot will eventually execute either a Botflow or ApiFlow in the EmpowerID.

...

EmpowerID bot is built upon state-of-the-art Azure infrastructure and can serve multiple tenants with the same infrastructure. Tenant Configuration Data like the EmpowerID server instance and Database Config are stored for each tenant so that the Bot service can connect to the right instance of EmpowerID regardless of a SaaS or On-Premise installation.

...

Multi-Tenancy

You can configure multiple tenants in the Bot Microservice, and we refer to the configuration as Provisioning a Bot Tenant . EmpowerID uses a CosmosDB instance named TenantConfiguration to store the configuration, and these configurations are associated with a tenant using a unique TenantID.

...