Come utilizzo CORS correttamente con OpenID Connect?

5

Sembra esserci una serie di domande su diversi blog, Q & A siti e commenti che richiedono varianti della domanda:

How do I correctly use CORS with OpenID Connect?

Il contesto di queste domande viene solitamente applicato a uno di questi ruoli:

  • L'emittente come Facebook, Azure AD (Questo è il "OP" o "Fornitore OpenID" nella Specifica)
  • Una parte relying come StackExchange o FB Connect Auth (Il sito Web "client" nella Specifica)

Durante la revisione delle domande, a volte il richiedente o il rispondente fa riferimento a un profilo specifico, mentre non associa esplicitamente il caso d'uso al relativo OpenID Connect Flow

  • Autenticazione del browser Web con reindirizzamenti o Javascript
  • Un'applicazione a una sola pagina (SPA)
  • Un client attivo (Flash, plug-in per browser, app per telefono nativo)
  • Flusso del dispositivo (attivazione di AppleTV)

Sto cercando una o più risposte corrette che descrivono come e quando CORS è appropriato per un dato ruolo o profilo d'uso. Poiché la quantità di usi corretti di CORS w.r.t. OpenID Connect è finito, penso che sia possibile avere diverse risposte corrette.

Domanda (riformulata)

  1. Quali criteri CORS dovrebbero essere utilizzati sull'OP o sui server client?

  2. Quali criteri CORS dovrebbero essere usati per:

    • implicito
    • Codice di autorizzazione
    • ibrida
    • Credenziali client
    • Password del proprietario della risorsa
    • Aggiorna token
    • Sovvenzioni per interni
  3. Quando CORS non è applicabile o in particolare una minaccia alla sicurezza?

posta random65537 09.02.2017 - 16:07
fonte

2 risposte

1

Quando CORS è a rischio per la sicurezza

CORS può ignorare le regole predefinite, quindi una politica CORS eccessivamente permissiva può essere peggiore di nessuna politica.

Quanto permissivo dovrebbe essere CORS

I CORS dovrebbero essere il più restrittivi possibile pur continuando a consentire i casi d'uso che desideri abilitare. Il CORS può aiutare a prevenire gli attacchi CSRF, quindi bisogna fare attenzione a non indebolire troppo questa difesa.

Dove si applica CORS

CORS si applica solo all'interno del browser, quindi non si applica alle opzioni esterne al browser, quali app native e accesso al dispositivo.

  • Autenticazione del browser Web con reindirizzamenti o Javascript

    • CORS si applica
  • Un'applicazione singola pagina (SPA)

    • CORS si applica
  • Un client attivo (Flash, plugin per browser, app per telefono nativo)

    • CORS non si applica - non all'interno di un browser
  • Flusso del dispositivo (attivazione di AppleTV)

    • CORS non si applica - non all'interno di un browser
risposta data 02.01.2018 - 17:24
fonte
0

Questa risposta è molto breve, ma il mio punto di vista è che CORS in realtà non entra in gioco qui perché la comunicazione tra "app" e provider di autenticazione avviene tramite HTTP Redirect; Ad esempio, non vi è alcuna chiamata AJAX JS di origine incrociata effettuata in una corretta implementazione.

    
risposta data 03.01.2018 - 09:57
fonte