Estoy un poco perdido en el tema de SAML y necesito que me iluminéis
Supongamos que tengo un método de una clase al cual le llega un String y me gustaría mandar este String a un IdP para que me diga si es correcto o no sin más. Simplemente tendría que configurar la parte SP para enviar este String mediante SAML a la URL del IdP....pues bien, estoy leyendo miles de cosas y no me queda muy claro el tema xD
He encontrado este código.
Código
import java.io.StringReader; import java.text.SimpleDateFormat; import java.util.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.InputSource; public class Example2 { "<samlp:AttributeQuery " + " xmlns:samlp='urn:oasis:names:tc:SAML:2.0:protocol' " + " ID='%%ID%%' IssueInstant='%%ISSUEINST%%' Version='2.0'>" + " <saml:Issuer xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'>" + "%%ISSUER%%" + " </saml:Issuer>" + " <saml:Subject xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'>" + " <saml:NameID Format='urn:oasis:names:tc:SAML:2.0:nameid-format: unspecified'" + " xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'> " + "%%SUBJECT%%" + " </saml:NameID>" + " </saml:Subject>" + "</samlp:AttributeQuery>"; res = res.replaceAll("%%ID%%", id); res = res.replaceAll("%%ISSUEINST%%", sdf.format(cal.getTime()) + "T" + sdfTime.format(cal.getTime()) + "Z"); res = res.replaceAll("%%ISSUER%%", issuer); res = res.replaceAll("%%SUBJECT%%", subject); return res; } DocumentBuilderFactory factory = DocumentBuilderFactory. newInstance(); factory.setNamespaceAware(true); DocumentBuilder builder = factory.newDocumentBuilder(); return d.getDocumentElement(); } } }
Yo me había metido la librería OpenSAML2.6.0 para trastear pero bueno, en este código como lo pone todo en un String no hace falta (no sé cómo se haría más fácil).
Entiendo que en el ISSUER debo poner la URL de mi IdP, pero no me queda claro varias cosas:
- ¿Mi String dónde lo meto?
- ¿Dónde recojo la respuesta? Porque he leído que para recoger las respuestas se hacen mediante Assertion, pero no sé si tengo que configurar algo o puedo hacerlo todo en la misma clase
Seguramente esté diciendo alguna burrada o algo por el estilo y pido disculpas por ello, pero es que me está costando más de lo que pensaba.
Un saludo y gracias de antemano!