Составление запроса аутентификации SAML2 для OpenAM

#single-sign-on #opensso #saml-2.0 #openam

#единый вход #opensso #saml-2.0 #openam

Вопрос:

Я пытаюсь составить запрос аутентификации SAML2 для OpenAM. У меня есть URL-адрес, который я могу получить, который работает, но у меня возникают проблемы с его включением в форму post XHTML.

Рабочий URL-адрес со строкой запроса

http://internal.authhost.com:8080/opensso/idpssoinit?NameIDFormat=urn:oasis:names:tc:SAML:2.0:nameid-format:transientamp;metaAlias=/MYRealm/idpamp;spEntityID=https://saml.salesforce.comamp;binding=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POSTamp;RelayState=webj_captureCustomerDetails

Моя html-форма выглядит следующим образом:

 <form action="http://internal.authhost.com:8080/opensso/idpssoinit" method="post" target="new">
  <input type="text" name="SAMLRequest" value="PHNhbWxwOkF1dGhuUmV..."></input>
  <input type="text" name="RelayState" value="webj_captureCustomerDetails"></input>
  <input type="submit"/>
</form>
  

при этом значение SAMLRequest является базовым 64-кодированным представлением

 <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="_d7607d551380ac97853a6ff4907c4ef01219be97dd" Version="2.0"
    IssueInstant="2008-05-27T07:46:06Z" ForceAuthn="true" IsPassive="false"
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
    AssertionConsumerServiceURL="https://cs4.salesforce.com/?saml=lkjhkljhkljhkjhlkjh"
    ProviderName="https://saml.salesforce.com">
    <saml:Issuer>https://saml.salesforce.com</saml:Issuer>
    <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
        AllowCreate="true"/>
</samlp:AuthnRequest>
  

Выдача этой формы приводит к появлению сообщения об ошибке от OpenAM с указанием «Идентификатор поставщика услуг равен нулю»

Я сразу вижу, что XML не содержит аргумент metaAlias=/MYRealm/idp, но в сообщении говорится, что он также не может найти аргумент spEntityID=https://saml.salesforce.com .

Пожалуйста, сообщите, где эти два свойства (metaAlias и spEntityID) должны быть указаны в XML.

Также была бы оценена ссылка на где-нибудь, указывающая, как конфигурация OpenAM COT / IdP сопоставляется с сообщением SAML AuthnRequest.

Ответ №1:

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

Комментарии:

1. Как вы создаете этот документ <samlp:AuthnRequest>? Мне интересно, как это сделать? Я использую среду LAMP.