¿Cómo uso CORS correctamente con OpenID Connect?

5

Parece que hay una serie de preguntas en varios blogs, sitios de Q & A y comentarios que plantean variantes de la pregunta:

  

¿Cómo uso CORS correctamente con OpenID Connect?

El contexto de estas preguntas generalmente se aplica a uno de estos roles:

  • El emisor, como Facebook, Azure AD (este es el "OP" o "Proveedor de OpenID" en la Especificación)
  • Una parte de confianza, como StackExchange o FB Connect Auth (el "cliente" del sitio web en la Especificación)

Al revisar las preguntas, a veces el autor de la pregunta o el contestador hacen referencia a un perfil específico, pero no asignan explícitamente el caso de uso al OpenID Connect Flow

  • Autentificación del navegador web con redirecciones, o Javascript
  • Una aplicación de una sola página (SPA)
  • Un cliente activo (Flash, complemento del navegador, aplicación de teléfono nativa)
  • Flujo de dispositivos (Activando AppleTV)

Estoy buscando una o más respuestas correctas que describen cómo y cuándo CORS es apropiado para un determinado rol o perfil de uso. Dado que la cantidad de usos correctos de CORS w.r.t. OpenID Connect es finito, creo que es posible tener varias respuestas correctas.

Pregunta (reformulada)

  1. ¿Qué políticas de CORS deben usarse en el OP o en los servidores del Cliente?

  2. Para qué políticas de CORS se deben utilizar:

    • implícito
    • Código de autorización
    • híbrido
    • credenciales de cliente
    • Contraseña del propietario del recurso
    • Actualizar tokens
    • Subvenciones de extensión
  3. ¿Cuándo no es aplicable CORS, o específicamente una amenaza para la seguridad?

pregunta random65537 09.02.2017 - 16:07
fuente

2 respuestas

1

Cuando CORS es un riesgo para la seguridad

CORS puede anular las reglas predeterminadas, por lo que una política CORS demasiado permisiva puede ser peor que ninguna política.

Qué tan permisivo debe ser CORS

CORS debe ser lo más restrictivo posible, al tiempo que permite los casos de uso que desea habilitar. CORS puede ayudar a prevenir los ataques CSRF, por lo que se debe tener cuidado de no debilitar demasiado esta defensa.

¿Dónde se aplica CORS

CORS solo se aplica dentro del navegador, por lo que no se aplica a las opciones fuera del navegador, como las aplicaciones nativas y el inicio de sesión del dispositivo.

  • Autenticación del navegador web con redirecciones, o Javascript

    • CORS se aplica
  • Una aplicación de una sola página (SPA)

    • CORS se aplica
  • Un cliente activo (Flash, complemento del navegador, aplicación de teléfono nativa)

    • CORS no se aplica , no está dentro de un navegador
  • Flujo de dispositivos (Activación de AppleTV)

    • CORS no se aplica , no está dentro de un navegador
respondido por el jrtapsell 02.01.2018 - 17:24
fuente
0

Esta respuesta es muy breve, pero mi opinión es que CORS no entra en juego en absoluto aquí porque la comunicación entre la "aplicación" y el proveedor de autenticación se realiza a través de la redirección HTTP. es decir, no se está realizando una llamada AJAX JS de origen cruzado en una implementación adecuada.

    
respondido por el RibaldEddie 03.01.2018 - 09:57
fuente

Lea otras preguntas en las etiquetas