Ищете отзывы о первой реализации SAML

Мне было поручено разработать очень простой процесс единого входа (единый вход). Мой работодатель указал, что это должно быть реализовано в SAML. Я хотел бы создавать сообщения, которые были бы как можно более простыми при подтверждении спецификации SAML.

Я был бы очень признателен, если бы некоторые из вас посмотрели на мои запросы и ответные сообщения и сказали мне, имеют ли они смысл для моей цели, если они включают что-то, чтоне должны быть там, и если они чего-то не хватает, чтоделает должен быть там.

Кроме того, я хотел бы знать, где в ответе я должен добавить дополнительную информацию по этому вопросу; в частности, адрес электронной почты субъекта.

Взаимодействие должно работать следующим образом:

В этот момент пользователь запрашивает услугу у поставщика услуг, поставщик услуг ничего не знает о пользователе.Поставщик услуг запрашивает аутентификацию пользователя у поставщика удостоверенийПользователь аутентифицирован / зарегистрирован провайдеромПоставщик удостоверений отвечает поставщику услуг сообщением об успешной проверке подлинности, а также адресом электронной почты пользователя PLUS.

Вот что я думаю, запрос должен быть:

<?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>

Вот что я думаю, что ответ должен быть:

<?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>

Итак, опять же, мои вопросы:

Это действительное взаимодействие SAML?

Можно ли упростить XML-запрос или ответ?

Где в ответе я должен указать адрес электронной почты субъекта?

Я действительно ценю твою помощь. Спасибо!

-Morgan

Ответы на вопрос(2)

Ваш ответ на вопрос