Я пытаюсь составить SAML2 AuthnRequest для OpenAM. У меня есть URL-адрес, по которому я могу выполнить эту работу, но у меня возникают проблемы при компоновке этого в форму сообщения XHTML.
Рабочий URL со строкой запроса:
http://internal.authhost.com:8080/opensso/idpssoinit?NameIDFormat=urn:oasis:names:tc:SAML:2.0:nameid-format:transient&metaAlias=%2FMYRealm%2Fidp&spEntityID=https%3A%2F%2Fsaml.salesforce.com&binding=urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Abindings%3AHTTP-POST&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 в кодировке Base 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 появляется сообщение об ошибке «Идентификатор поставщика услуг имеет значение NULL»
Я сразу вижу, что XML не содержит аргумента metaAlias = / MYRealm / idp, но в сообщении указывается, что он также не может найти аргумент spEntityID = https://saml.salesforce.com.
Пожалуйста, сообщите, где эти два свойства (metaAlias и spEntityID) должны быть указаны в XML.
Будет также приветствоваться ссылка на где-нибудь, указывающая, как конфигурация OpenAM COT / IdP сопоставляется с сообщением SAML AuthnRequest.
Проблема заключалась в том, что я обращался по неправильному URL-адресу, должен был попасть в spssoinit, так как это был SSO, инициированный поставщиком услуг