¿Cuál es el beneficio de seguridad de usar PostMessage en lugar de una URL de devolución de llamada en OAuth / OIDC?

1

De todos los emisores que he encontrado (Facebook, Twitter, Azure AD, etc.) solo el CloudKit de Apple tiene la función de "enviar mensaje" como devolución de llamada (a menos que esté incluido en el SDK del otro)

Aquí hay una captura de pantalla del Portal de desarrolladores de Apple

Pregunta

  • ¿Cuál es el beneficio de usar la API de PostMessage sobre un redireccionamiento 30x?

  • ¿Los otros proveedores de STS ofrecen esto (AzureAD, Facebook, Twitter, Ping, ADFS ...)

pregunta random65537 07.12.2016 - 03:16
fuente

1 respuesta

1

Con el modo de respuesta de redireccionamiento hay más oportunidades para que el token de acceso se filtre y se podría decir que hay más responsabilidades para que la aplicación cliente lo haga correctamente.

Una de las consecuencias de usar la redirección es que el token de acceso estará accesible en la barra de direcciones del navegador, que puede exponerlo al propietario del recurso (usuario final) y, aunque no es una preocupación directa, puede permitir el final. el usuario puede hacer algo inseguro como marcar la URL o copiar / pegar en otro lugar. La aplicación cliente debe borrar la respuesta en el fragmento tan pronto como se procese para mitigar esto .

También existe la preocupación de que la URL que contiene el token de acceso se mantenga en el historial del navegador o se filtre a través del encabezado Referer .

Con el modo de respuesta de mensaje web el token de acceso nunca se incluye como parte de una URL y / o se muestra al usuario final, por lo que este termina con mejores características de seguridad.

En relación con el soporte, puedo hablar desde la perspectiva Auth0 ya que actualmente trabajo allí. Ha habido algunas menciones sobre la posibilidad de implementar ese modo, sin embargo, nada muy concreto.

También es justo decir que, incluso para los SPA, con un poco de colaboración del lado del servidor, puede tener algo con las mismas características del modo de respuesta de mensajes web utilizando el modo de respuesta form_post . El postMessage lo haría su código JS en lugar del código JS propiedad del servidor de autorización.

Este modo de respuesta es realmente compatible con Auth0 ( vea la nota en el formulario posterior al uso ) y dado que es una especificación final, posiblemente también tiene un soporte más amplio que el mensaje web.

    
respondido por el João Angelo 07.12.2016 - 12:41
fuente

Lea otras preguntas en las etiquetas