Si es fanático de crear aplicaciones de código bajo con PowerApps, es posible que también haya tenido que descubrir cómo proporcionar autenticación para sus usuarios finales. Una buena opción aquí es usar Azure AD B2C. Si bien PowerApps Portal proporciona una integración B2C incorporada, las cosas se complican si necesita realizar procesos de autenticación de usuarios más complejos o necesita agregar otros servicios en la nube frente a B2C mediante políticas personalizadas basadas en XML.

En esta publicación, veremos cómo puede combinar dominios personalizados (p. ej., inicio de sesión.miempresa.com), B2C, políticas personalizadas y el portal de Power Apps para crear una experiencia de marca blanca que mejorará la imagen de su negocio, promoverá la confianza del consumidor al tiempo que mejora la seguridad.

requisitos previos:

  1. Una instancia B2C  configurada para políticas personalizadas
  2. Azure Front Door,  configurado para apuntar a su instancia B2C
  3. Una instancia del portal de PowerApps

Empezar

¿Todo listo? ¡Comencemos con por qué no puede usar el proveedor predeterminado!

El uso del proveedor B2C predeterminado con un dominio personalizado genera el siguiente error.

Sin embargo, el uso de una configuración B2C regular que termina con un dominio “.b2clogin” funciona. Afortunadamente, B2C implementa el protocolo OpenID Connect (OIDC), por lo que podemos usar ese proveedor para configurar manualmente nuestra política personalizada habilitada para el dominio.

Pasos de configuración

Configuración inicial de PowerApps

  1. Navegue a su aplicación, luego haga clic en los tres puntos (…) para abrir el menú.
  2. Seleccione “Configuración

Luego, seleccione el enlace “configuración de autenticación”

4. Siga las instrucciones en la  página de documentación de Microsoft  desde los pasos 1 a 7: (configuración del portal). Esto lo guiará a través de la configuración inicial del proveedor de OpenID Connect.

5. Ahora debería estar en un formulario que se parece a la captura de pantalla a continuación.

6. Copie el valor de “URL de redirección” en su portapapeles o en un editor de texto.

Registro de aplicaciones B2C

  1. A continuación, deberá configurar la aplicación en el lado B2C. Si tiene una aplicación existente, salte al paso 3.
  2. Cree una nueva aplicación en el portal B2C con esta configuración. Para el campo “Redirigir URI”, deje el menú desplegable como “Web” y  pegue la URL de la sección anterior.

3. Si tiene una aplicación existente, vaya a “Autenticación” en el menú de navegación de la izquierda

4. Agregue el URI de redireccionamiento a la lista usando el botón “Agregar URI”. Si está migrando desde una implementación B2C administrada, eliminar la entrada que termina con la entrada “signin-aad-b2c_1” la romperá, así que no la elimine hasta que haya completado el cambio.

Agregue el URI de redireccionamiento a la lista usando el botón “Agregar URI”. Si está migrando desde una implementación B2C administrada, eliminar la entrada que termina con la entrada “signin-aad-b2c_1” la romperá, así que no la elimine hasta que haya completado el cambio.

7. Vuelva a la página de descripción general y  registre la identificación del cliente .

Configuración del sitio

  1. Para “Autoridad” use  Error! La referencia del hipervínculo no es válida.
  2. Para “ID de cliente”, use el valor de la sección anterior
  3. El valor de la URL de redireccionamiento ya debe estar completado
  4. Para “Metadatos”, use  Error! La referencia del hipervínculo no es válida. configuración bien conocida/openid
  5. Vuelva a la página de configuración de Power Apps.
  6. Deje “Alcance” como “openid”
  7. Para “Tipo de respuesta”, seleccione “código id_token”
  8. Pegue el secreto del cliente de la sección anterior en el campo “Secreto del cliente”.
  9. Deje el “Modo de respuesta” como “publicación de formulario”
Configuración de cierre de sesión
  1. Cierre de sesión externo: activado
  2. Para “Publicar URL de redirección de cierre de sesión”, use la página de inicio de su página de Power Apps.
  3. Cierre de sesión iniciado por RP: activado
  4. Expanda el menú desplegable “Configuración adicional”

Ajustes adicionales

  1. Validar audiencia: en
  2. Para el campo “audiencias válidas”, use el ID de cliente del registro de la aplicación b2c sin guiones.
  3. por ejemplo, “guid-abc-123–456” se convierte en “guidabc123456”
  4. Validar emisor: en
  5. Emisores válidos:  ¡Error! La referencia del hipervínculo no es válida.
  6. Mapeo de reclamos de registro: firstname=given_name, lastname=family_name
  7. Mapeo de reclamos de inicio de sesión: firstname=given_name,lastname=family_name
  8. Tiempo de vida de Nonce: predeterminado
  9. Usar la vida útil del token: en
  10. Mapeo de contactos con correo electrónico: en

Terminando

  1. Guardar la configuración
  2. Seleccione “Establecer como predeterminado” en el menú del proveedor del proveedor de OpenID Connect
  1. Espere uno o dos minutos para que se aplique la configuración predeterminada. Luego, navegue a la página de su portal, borre su caché y pruebe el botón de inicio de sesión

Solución de problemas

Los siguientes ajustes de configuración provocarán errores:

  1. No tener “tfp” en el reclamo del emisor de la póliza/autoridad
  2. No tener “tfp” en los reclamos
  3. El cierre de sesión externo + el cierre de sesión iniciado por RP deben verificarse para que funcione el cierre de sesión. De lo contrario, obtendrá un error al volver a iniciar sesión porque la sesión no se invalidó en el lado B2C

Referencia de documentos de MSDN:

Configuración B2C para dominios no personalizados (funciona para políticas personalizadas)

https://docs.microsoft.com/en-us/powerapps/maker/portals/configure/configure-azure-ad-b2c-provider-manual

Configuración del proveedor OIDC

https://docs.microsoft.com/en-us/powerapps/maker/portals/configure/configure-openid-provider

Nos encantaría saber más sobre sus propias experiencias con la integración de PowerApps Portal con Azure AD B2C u otros proveedores de autenticación. Envíenos un comentario a continuación, o también puede seguirnos en Medium en https://medium.com/@TeamWhoIAM

-Matt Takemoto