Buscando comentarios sobre una primera implementación de SAML

Me encargaron diseñar un proceso SSO (inicio de sesión único) muy simple. Mi empleador ha especificado que debe implementarse en SAML. Me gustaría crear mensajes que sean absolutamente tan simples como sea posible mientras confirmo la especificación SAML.

Estaría realmente agradecido si alguno de ustedes mirara mis mensajes de solicitud y respuesta y me dijera si tienen sentido para mi propósito, si incluyen algo queno lo hace necesitan estar allí, y si les falta algo quehace Necesito estar allí.

Además, me gustaría saber en qué lugar de la respuesta debo poner información adicional sobre el tema; en particular, la dirección de correo electrónico del sujeto.

La interacción debe funcionar de la siguiente manera:

El usuario solicita el servicio del proveedor de servicios en este momento, el proveedor de servicios no sabe nada sobre el usuario.El proveedor de servicios solicita autenticación del usuario al proveedor de identidadEl usuario está autenticado / registrado por el proveedor de identidadEl proveedor de identidad responde al proveedor de servicios con un mensaje de autenticación exitosa, MÁS la dirección de correo electrónico del usuario.

Esto es lo que creo que debería ser la solicitud:

<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
ID="abc" 
IssueInstant="1970-01-01T00:00:00.000Z" 
Version="2.0"
AssertionConsumerServiceURL="http://www.IdentityProvider.com/loginPage">
   <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
    http://www.serviceprovider.com
    </saml:Issuer>
    <saml:Subject>
        <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">3f7b3dcf-1674-4ecd-92c8-1544f346baf8</saml:NameID>
    </saml:Subject>

Esto es lo que creo que debería ser la respuesta:

<?xml version="1.0" encoding="UTF-8"?>
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Destination="http://www.serviceprovider.com/desitnationURL" ID="123" IssueInstant="2008-11-21T17:13:42.872Z" Version="2.0">
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0">
        <saml:Subject>
            <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">3f7b3dcf-1674-4ecd-92c8-1544f346baf8</saml:NameID>
            <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser">
                <saml:SubjectConfirmationData InResponseTo="abc"/>
            </saml:SubjectConfirmation>
        </saml:Subject>
        <saml:AuthnStatement AuthnInstant="2008-11-21T17:13:42.899Z">
            <saml:AuthnContext>
                <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
            </saml:AuthnContext>
        </saml:AuthnStatement>
    </saml:Assertion>
</samlp:Response>

Entonces, nuevamente, mis preguntas son:

¿Es esta una interacción SAML válida?

¿Se puede simplificar la solicitud o la respuesta XML?

¿Dónde en la respuesta debo poner la dirección de correo electrónico del sujeto?

Realmente aprecio tu ayuda. ¡Muchas gracias!

-Morgan

Respuestas a la pregunta(2)

Su respuesta a la pregunta