2012-11-28 9 views
30

Ho visto un po 'di diagramma di flusso su come viene passato tra Identity Provider (IdP), Service Provider (SP) e Browser tramite Redirect. Comunque a me sembra inutile adesso, quindi so che mi manca qualcosa.

Qualcuno può fornirmi un caso d'uso in cui è richiesto un artefatto SAML (o molto utile) rispetto a non usarne uno?Qual è lo scopo di un artefatto SAML?

Grazie.

risposta

58

In genere, l'intento del legame artefatto è ridurre il flusso dei messaggi SAML attraverso il browser stesso. Ciò potrebbe essere dovuto a restrizioni del browser (browser che hanno limiti sulla stringa di query/dimensione del payload POST) o nessun supporto per JavaScript (per moduli inviati automaticamente), o anche per migliorare il modello di sicurezza di come vengono trasportati i messaggi SAML. Utilizzando artefatti, i dati sensibili trasportati attraverso l'Asserzione/Attributo Dichiarazione SAML non vengono passati attraverso il browser, in modo che possa essere nascosto all'utente finale o agli autori di attacchi tra il sito e l'utente finale. Questi dati riservati verranno risolti direttamente tra siti tramite una ricerca di canali secondari.

sezione 3.6.2 del SAML 2.0 Bindings specs riassume meglio: legame

il manufatto HTTP è inteso per i casi in cui il richiedente SAML e risponditore necessitano di comunicare usando un agente utente HTTP come intermediario, ma le limitazioni dell'intermediario precludono o scoraggiare la trasmissione di un intero messaggio (o scambio di messaggi) attraverso di esso. Ciò potrebbe essere dovuto a motivi tecnici oa causa di una riluttanza dello di esporre il contenuto del messaggio all'intermediario (e se l'uso della crittografia non è pratico) . Si noti che a causa della necessità di risolvere successivamente l'artefatto utilizzando un altro binding sincrono , ad esempio SOAP, deve esistere un percorso di comunicazione diretto tra il mittente del messaggio SAML e il destinatario nella direzione opposta della trasmissione del manufatto (il destinatario del messaggio e artefatto devono essere in grado di inviare una richiesta all'emittente artefatto ). L'emittente artefatto deve anche mantenere lo stato mentre è in sospeso l'artefatto , con implicazioni per gli ambienti con bilanciamento del carico.

9

Un messaggio SAML viene trasmesso da un'entità a un'altra per valore o per riferimento. Un riferimento a a un messaggio SAML viene chiamato un articolo . Il destinatario di un artefatto risolve il riferimento inviando una richiesta direttamente all'emittente dell'oggetto, che risponde quindi al messaggio effettivo a cui fa riferimento l'artefatto.

consultare SAML 2.0,

Senza il manufatto non v'è alcun modo per ottenere al messaggio vero e proprio.

Si noti che questo è richiesto solo quando si utilizza HTTP Artifact Binding. (Contrariamente al più comune binding POST HTTP che invia semplicemente il messaggio SAML).

1

Un altro motivo per utilizzare il legame HTTP Artifact è che è possibile utilizzare SSL per garantire l'integrità e la riservatezza dei messaggi SAML. Il richiedente e il risponditore SAML non devono firmare, convalidare, crittografare e decrittografare il messaggio SAML.

24

Espansione della risposta di Scott T, il profilo di artefatto SAML è stato progettato per migliorare la sicurezza. Per impedire a un utente di modificare il suo traffico medio di asserzione SAML (come la modifica di nome utente, ruoli, ecc.), SAML 2.0 suggerisce agli sviluppatori di firmare asserzioni tramite firme XML. Le firme XML sono estremamente vulnerabili agli attacchi di wrapping XML a causa di problemi in tutti i linguaggi XML esistenti. Visita https://www.usenix.org/conference/usenixsecurity12/breaking-saml-be-whoever-you-want-be per vedere gli attacchi di wrapping XML in azione contro le Asserzioni SAML.

Il profilo artefatto SAML risolve questo problema creando un "manufatto" monouso che viene trasmesso al fornitore di servizi dall'utente (tramite reindirizzamento o post) piuttosto che l'asserzione SAML. Quando il fornitore di servizi riceve la risorsa d'uso monouso, invia una richiesta di risoluzione di un artefatto SAML (contenente l'artefatto) al servizio di risoluzione degli artefatti del fornitore di identità (ARS). L'ARS risponde quindi con una risposta al manufatto SAML (contenente l'Asserzione SAML dell'utente) impedendo così che l'Asserzione SAML venga mai modificata dall'utente in quanto viene direttamente ricevuta dal Provider di servizi su un canale posteriore.

1

può essere considerato per interesse al giorno d'oggi, ma il profilo manufatto è anche utile se si dispone di una larghezza di banda ridotta tra l'agente utente e sp & server IDP e una migliore larghezza di banda tra sp & IDP. L'asserzione (pesante) non circola dall'idp all'u e dall'u alla sp e può mostrare prestazioni migliori in certe circostanze.