2016-06-16 4 views
0

Я пытаюсь получить Shibboleth SP для работы с OneLogin [SAML Test Connector (IdP w/attr)] в моей лаборатории. Я был в состоянии получить все работает с testshib IDP, но когда я изменить мой провайдер метаданных и обновить свой идентификатор SSO Entity Я просто получаю эту ошибку:onelogin SSO shibboleth ACS config

SAML сообщение доставлено с POST на неправильный сервер URL

При взгляде на мой файл метаданных я вижу, что мой АКГ:

http://testserver/Shibboleth.sso/SAML2/POST

но когда это помещается в мой тестовый разъем OneLogin все, что я получаю выше ошибки.

Ниже мой Shibboleth2.xml файл (с удаленной идентификатор объекта в)

<SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" clockSkew="1800"> 
<!-- Windows RequestMapper --> 
<!-- 
The RequestMap defines portions of the webspace to protect; testserver/secure here. 
--> 
<!-- 
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPRequestMap 
--> 

    <InProcess logger="native.logger"> 
     <ISAPI normalizeRequest="true" safeHeaderNames="false"> 
      <!-- 
      Maps IIS Instance ID values to the host scheme/name/port. The name is 
      required so that the proper <Host> in the request map above is found without 
      having to cover every possible DNS/IP combination the user might enter. 
      --> 
      <Site id="1" name="testserver"/> 
      <!-- 
      When the port and scheme are omitted, the HTTP request's port and scheme are used. 
      If these are wrong because of virtualization, they can be explicitly set here to 
      ensure proper redirect generation. 
      --> 
      <!-- 
      <Site id="42" name="virtual.example.org" scheme="https" port="443"/> 
      --> 
     </ISAPI> 
    </InProcess> 

<RequestMapper type="Native"> 
<RequestMap applicationId="default"> 
<Host name="testserver"> 
<Path name="secure" authType="shibboleth" requireSession="true"/> 
</Host> 
</RequestMap> 
</RequestMapper> 
<!-- 
The entityID is the name TestShib made for your SP. 
--> 
<ApplicationDefaults entityID="" REMOTE_USER="eppn"> 
<!-- 
You should use secure cookies if at all possible. See cookieProps in this Wiki article. 
--> 
<!-- 
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPSessions 
--> 
<Sessions lifetime="28800" timeout="3600" checkAddress="false" relayState="ss:mem" handlerSSL="false"> 
<!-- 
Triggers a login request directly to the TestShib IdP. 
--> 
<!-- 
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPServiceSSO 
--> 
<SSO entityID="">SAML2</SSO> 
<!-- SAML and local-only logout. --> 
<!-- 
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPServiceLogout 
--> 
<Logout>SAML2 Local</Logout> 
<!-- 

       Handlers allow you to interact with the SP and gather more information. Try them out! 
       Attribute values received by the SP through SAML will be visible at: 
       http://sdserver/Shibboleth.sso/Session 

--> 
<!-- 
Extension service that generates "approximate" metadata based on SP configuration. 
--> 

<Handler type="MetadataGenerator" Location="/Metadata" signing="false"/> 
<!-- Status reporting service. --> 
<Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/> 
<!-- Session diagnostic service. --> 
<Handler type="Session" Location="/Session" showAttributeValues="true"/> 
<!-- JSON feed of discovery information. --> 
<Handler type="DiscoveryFeed" Location="/DiscoFeed"/> 

</Sessions> 
<!-- 
Error pages to display to yourself if something goes horribly wrong. 
--> 
<Errors supportContact="[email protected]" logoLocation="/shibboleth-sp/logo.jpg" styleSheet="/shibboleth-sp/main.css"/> 
<!-- 
Loads and trusts a metadata file that describes only the Testshib IdP and how to communicate with it. 
--> 
<MetadataProvider type="XML" file="onelogin_metadata.xml"/> 
<!-- 
Attribute and trust options you shouldn't need to change. 
--> 
<AttributeExtractor type="XML" validate="true" path="attribute-map.xml"/> 
<AttributeResolver type="Query" subjectMatch="true"/> 
<AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/> 
<!-- 
Your SP generated these credentials. They're used to talk to IdP's. 
--> 
<CredentialResolver type="File" key="sp-key.pem" certificate="sp-cert.pem"/> 
</ApplicationDefaults> 
<!-- 
Security policies you shouldn't change unless you know what you're doing. 
--> 
<SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/> 
<!-- 
Low-level configuration about protocols and bindings available for use. 
--> 
<ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/> 
</SPConfig> 

метаданных (опять чувствительной информации удалены)

<?xml version="1.0"?> 
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://app.onelogin.com/saml/metadata/"> 
    <IDPSSODescriptor xmlns:ds="http://www.w3.org/2000/09/xmldsig#" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> 
    <KeyDescriptor use="signing"> 
     <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
     <ds:X509Data> 
      <ds:X509Certificate></ds:X509Certificate> 
     </ds:X509Data> 
     </ds:KeyInfo> 
    </KeyDescriptor> 
    <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat> 
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://.onelogin.com/trust/saml2/http-post/sso/"/> 
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://.onelogin.com/trust/saml2/http-post/sso/"/> 
    <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://.onelogin.com/trust/saml2/soap/sso/"/> 
    </IDPSSODescriptor> 
    <ContactPerson contactType="technical"> 
    <SurName>Support</SurName> 
    <EmailAddress>[email protected]</EmailAddress> 
    </ContactPerson> 
</EntityDescriptor> 

Соединитель имеет только следующие параметры:

ACS (Consumer) URL: ^ http: //testserver/shibboleth.sso/SAML2/POST$

ACS (Consumer) URL http://testserver/shibboleth.sso/SAML2/POST

+0

Вы можете разделить метаданные SP и то, что вы установили на разъеме? – smartin

+0

Обновлено. Благодаря! –

ответ

1

Это guide объясняет вам, как настроить разъем OneLogin в.

В Шибболете:

Редактировать /etc/shi bboleth/shibboleth2.xml, чтобы добавить URL-адрес метаданных в качестве поставщика метаданных.

Я видел, что у вас уже есть URL-адрес метаданных для приложения, выполнив вход в OneLogin в качестве администратора и нажав на контекст коннектора> вкладка SSO> URL-адрес эмитента.

и добавить его в файл:

<MetadataProvider type="XML" file="onelogin_metadata.xml"/> 

отображение атрибутов Добавление, редактирование /и т.д./шибболет/атрибут-карту.XML и добавьте следующие атрибуты:

<!-- OneLogin attributes --> 

<Attribute name="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" id="login"> 
<AttributeDecoder xsi:type="ScopedAttributeDecoder"/> 
</Attribute> 

<Attribute name="User.Email" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" id="email"> 
<AttributeDecoder xsi:type="ScopedAttributeDecoder"/> 
</Attribute> 

<Attribute name="User.FirstName" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" id="firstName"> 
<AttributeDecoder xsi:type="StringAttributeDecoder"/> 
</Attribute> 

<Attribute name="User.LastName" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" id="lastName"> 
<AttributeDecoder xsi:type="StringAttributeDecoder"/> 
</Attribute> 

ошибка, что вы испытали «SAML сообщение доставлено с POST к неправильному URL сервера» is documented:

When a SAML message is addressed to a location inconsistent with where the SP believes it's running, this error will be thrown. The SP pulls much of this information from the web environment. 

* Verify that the server name and port are properly set in accordance with the SP's metadata. 
* Rewriting rules in effect for the Shibboleth.sso handler path must be consistent with the SP's metadata. 
* The IdP needs to properly address the SAML response. 

Запись потока SAML с SAML Tracer Tool и убедитесь, что SAMLResponse отправляется с использованием привязки HTTP-POST к конечной точке http://testserver/shibboleth.sso/SAML2/POST.

Я не эксперт шибболет, но, возможно, это связано с тем, отправки от HTTPS к HTTP, как описано here, объяснение here

+0

Hello smartin. Я пробовал вики SAML, но не повезло. Я попробовал инструмент SAML tracer, и я вижу, как SAML идет в обоих направлениях, но по возвращении он красный. Я наткнулся на TestShib, и все сработало правильно (зеленый в обоих направлениях). Затем я подтвердил, что TestShib использует те же ACS, что и я, и они есть. Поэтому я не уверен, что я делаю неправильно. –

Смежные вопросы