You can implement custom authentication for your bot by providing URL from the service node to an external application that manages the authentication. The platform provides the necessary functionality to handle successful and failed authentication scenarios and manage the corresponding task flows.
Bot Builder mechanism to implement custom authentication involves the following steps:
Step 1: Generating the Custom Authentication URL from the Service Node
To implement custom authentication, you first need to configure a Dialog tasks’ Service node with the URL of the authenticating service. When you do so, the platform internally appends the authentication URL you entered with the bot’s webhook and creates a Custom authentication URL. It does so to facilitate the authentication service to send back the necessary details to the platform after completing the authentication process.
Step 2: Populating the Context and Presenting the Custom URL to the User
During task execution, when a Dialog reaches the Service node, the platform populates the Customer authentication URL in the context and presents a message to the end user asking for authentication credentials. Then, the platform waits for the external authentication service to send a response on the webhook.
Step 3: Receiving Callback after Completion of Authentication
The external system, on its part, performs a callback to the platform using the webhook URL, which is populated in the Context Object. Once all this is complete, the Dialog task progresses based on the transitions defined for the node.
Configuring the Custom Authentication Service
- Open the Dialog task in which you want to implement the custom authentication.
- Add a Service node after the appropriate node in the task flow.
- In the Component Properties panel of the node, enter a name for the node.
- In the Service Type drop-down list, select Custom Authentication Service.
- In the Auth URL field, enter the URL of the external authentication service.
- The Response section shows the default authentication requisition message that the bot presents to the user. You can edit the message directly or click Manage to define advanced or channel-specific messages. Learn about message formatting and templates.
Note: The default message here is based on the default name of the service node and is as follows: Please use the following URL to proceed with the authentication {{context.<<Service Node Name>>.customAuthenticationURL}}. If you change the node name later, ensure that you also update the message to reflect the revised name.
- Finally, define the transitions for the node.