Compartir a través de


Pasar el token de autenticación al bot durante el inicio de sesión único en el chat en vivo

Importante

Las capacidades y características de Power Virtual Agents son ahora parte de Microsoft Copilot Studio tras importantes inversiones en IA generativa e integraciones mejoradas en Microsoft Copilot.

Algunos artículos y capturas de pantalla podrían hacer referencia a Power Virtual Agents, ya que estamos actualizando la documentación y el contenido de la formación.

Con el inicio de sesión único (SSO) en la Plataforma omnicanal para Customer Service, sus bots pueden ejecutar acciones seguras en nombre del cliente durante una conversación en curso con el cliente. Esto proporciona una experiencia transparente, personalizada y segura para el cliente, lo que mejora su satisfacción.

En el canal de chat en vivo, puede configurar la autenticación en bots de Azure o Copilot Studio. Puede solicitar autenticación durante una conversación con el cliente antes de buscar o procesar cualquier información confidencial, como pago de facturas, devoluciones de pedidos y cualquier otro dato confidencial. Como autor o desarrollador de un bot, puede optar por mostrar la tarjeta Oauth si el cliente no ha iniciado sesión o si no se pudo validar el inicio de sesión del cliente. Puede optar por ocultar la tarjeta si el cliente ya ha iniciado sesión.

Así es como funciona:

  • Durante el chat en vivo, su bot solicita la autenticación del cliente antes de procesar cualquier información sensible o confidencial.

  • Usted intercepta la tarjeta OAuth y llama a su función para enviar el token de autenticación directamente al bot.

  • Luego, su función pasará un token de autenticación (si lo encuentra) y le indicará a la Plataforma omnicanal para Customer Service si se debe mostrar o no la tarjeta de Oauth o de inicio de sesión, según el estado de inicio de sesión del cliente.

Requisitos previos

Si usa bots de Azure, asegúrese de haber instalado las versiones más recientes de los siguientes dos paquetes de biblioteca:

  • Microsoft.Bot.Builder.Dialogs Esta biblioteca implementa las clases de diálogo simple de .NET.
  • Microsoft.Bot.Builder.Integración.AspNet.Core Esta biblioteca integra el SDK de Bot Builder con ASP.NET Core.

Si usa un bot de Copilot Studio, asegúrese de configurar manualmente la autenticación de usuario final para Copilot Studio. Más información: Configurar la autenticación de usuario manual

Código de ejemplo

Esto es un ejemplo de código que ilustra cómo puede pasar un token de autenticación a un bot de Azure o Copilot Studio durante un inicio de sesión único.

const signInIds = [];
window.Microsoft.Omnichannel.LiveChatWidget.SDK.setBotAuthTokenProvider(async (botTokenUrl, callback) => {
  const urlSearchParams = new URLSearchParams(botTokenUrl);
  const signInId = urlSearchParams.get("state");

  if (signInIds.includes(signInId)) { // Ignore authenticated sign-in cards
    callback({show: false});  // Hide card
    return;
  }

  signInIds.push(signInId);

  const authUrl = ""; // Customer's Authentication API
  const authResponse = await fetch(authUrl, method: "POST"});
  const {token} = authResponse;  // Customer's Auth Token

  const data = {
    token: "token"
  };

  const payload = {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify(data)
  };

  try {
    const botAuthResponse = await fetch(botTokenUrl, payload); // Posts Auth Token to Bot directly
    
    // Sign in through Bot is successful
    if (botAuthResponse.status === 200) {
      signInIds.push(signInId); // Track authenticated sign-in card
      callback({show: false}); // Hide card
    }

    if (botAuthResponse.status === 404 || botAuthResponse.status == 202) {
      callback({show: false}); // Hide card
      return;
    } else {
      // Other condition handling    
    }

    return;
  } catch (error) {
  
  }

  callback({show: true});  // Show sign-in card by default
});

Consulte también

Integrar un bot de Azure
Integrar un bot de Copilot Studio
método setBotAuthTokenProvider