Ho un cliente che sta inviando una chiave di sicurezza. La crittografia che stanno usando è tripla DES. Ogni asserzione che invia ha un valore di firma che deve essere convalidato per fornire loro i privilegi necessari. Puoi darmi un codice di esempio che lo fa?Come convalidare un valore di firma SAML
risposta
La crittografia e la firma sono due animali diversi. Triple DES è un metodo a chiave simmetrica (stessa chiave utilizzata per la crittografia e la decrittografia). Le firme digitali, d'altra parte, utilizzano chiavi asimmetriche (coppia di chiavi private/pubbliche), in cui la firma viene calcolata utilizzando la chiave privata e può essere convalidata utilizzando la chiave pubblica. Pertanto, se il cliente desidera includere firme in XML che ti inviano, deve fornire la chiave pubblica.
Per la crittografia, ciò che è tipico in SAML è utilizzare XMLEncryption, che definisce un formato XML per includere le informazioni sulla chiave di crittografia e i dati crittografati nei messaggi SAML. Poiché lo scambio di una chiave simmetrica statica è problematico - se intercettato, l'intercettore può sia crittografare sia decrittografare qualsiasi messaggio - ciò che può essere fatto è utilizzare una chiave simmetrica dinamica che viene generata di nuovo per ogni messaggio, crittografare il messaggio usando la chiave, quindi crittografare quella chiave con la chiave pubblica di una coppia di chiavi di crittografia privata/pubblica e inviarla insieme al messaggio. La chiave simmetrica crittografata può essere decifrata solo utilizzando la metà privata della coppia di chiavi utilizzata per crittografarla.
Quindi la differenza più significativa qui, da un punto di vista chiave, è che per la firma, il cliente detiene la chiave privata e deve condividere la chiave pubblica con te, mentre per la crittografia, tieni la chiave privata e devi condividere il pubblico chiave con il cliente.
Se si desidera convalidare la firma sul SAML asserzione o uno qualsiasi degli oggetti XML dotato di firma, l'OpenSAML Wiki ha ulteriori informazioni:
https://wiki.shibboleth.net/confluence/plugins/viewsource/viewpagesrc.action?pageId=3277047
È possibile cercare i 'Esempi verifica firma'.
Questo post del blog ha anche un esempio così:
http://mylifewithjava.blogspot.com/2012/11/verifying-signatures-with-opensaml.html
Per ottenere un 'credenziale' per la convalida, vedere qui: http://mylifewithjava.blogspot.com/2011/03/getting-credentials-in-opensaml.html
Per info su come unmarshall XML in un Apri oggetto SAML, vedere qui: https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUsrManJavaCreateFromXML
Grazie, Yogesh
Sto spiegando tutto questo in dettaglio nel mio nuovo libro, Una guida a OpenSAML, https://gumroad.com/l/a-guide-to-opensaml –
Sfortunatamente i link e il libro don ' Sembra che copra come costruire il 'credential '(usato dalla funzione' SignatureValidator() 'dalla Signature all'interno del SAML. – GrandAdmiral
- 1. Convalida firma SAML java da C#
- 2. Firma la risposta SAML con o senza firma di asserzione?
- 3. Certificato di firma SAML: quale tipo di certificato SSL?
- 4. Verifica firma XML firmata per SSO SAML (utilizzando sha256)
- 5. Come convalidare un array?
- 6. Come convalidare un JTextField?
- 7. Come convalidare un passaporto?
- 8. Firma XML: come calcolare il valore digest?
- 9. Lettura degli attributi SAML dal token SAML
- 10. Certificato autofirmato con SAML 2.0
- 11. Impossibile ottenere il valore lungo senza firma di un NSNumber
- 12. Implementazione di un client SAML in Python
- 13. Esiste un formato standard di asserzione crittografata SAML 2.0
- 14. Come posso convalidare un campo di valuta?
- 15. Come inviare un messaggio di risposta SAML utilizzando NSURLConnection?
- 16. Come convalidare scss
- 17. - Utilizzo di omniauth-saml con più IDP
- 18. Come convalidare il tag del valore stringa vuoto in xsd
- 19. Canonicalizzazione XML corretta per SAML
- 20. - Specifica dell'algoritmo della firma per la firma WS-Security Timestamp
- 21. Rails - Come convalidare un campo solo se un altro campo ha un determinato valore?
- 22. SSO trasparente con SAML (IE, SAML 2.0, ADFS, autenticazione Kerberos)
- 23. Come convalidare PasswordBox WPF
- 24. Come convalidare l'input numerico C++
- 25. SAML 2.0 vs OpenID
- 26. comprensione Shibboleth e SAML
- 27. Come selezionare automaticamente il provider di identità SAML configurato in un ambiente multi-tenant per eseguire SSO utilizzando Spring SAML
- 28. SAML con API EWS
- 29. NodeJS SAML Lib
- 30. Come convalidare un file html con C#?
@king - qual è la tua piattaforma? Giava? C#? php? si prega di specificare in modo che l'esempio/risposta sia applicabile. –
java using opensaml – stu