2013-11-13 2 views
0

Я использую rack-saml в качестве промежуточного программного обеспечения с omniauth-shibboleth, чтобы мое приложение могло работать как поставщик услуг.rack-saml Assertion Consumer Service binding

Я хотел бы знать, как установить привязку для URL-адреса службы поддержки (ACS)?

В настоящее время мой привязкой привязки ACS является «any». Тем не менее, я искал в rack-saml и omniauth-shibboleth, чтобы найти, где это задано, и не смог его найти.

Я пытаюсь заставить свое приложение работать с testhib.org в надежде использовать приложение с аналогично настроенным провайдером удостоверений (IdP).

Я загрузил свои метаданные на testhib.org. Я не уверен, как реализовать свой собственный файл shibboleth.xml; однако мое приложение может перенаправить на свою страницу входа в IdP, а файлы cookie устанавливаются их IdP.

Слушайте некоторые ошибки из журналов testhib.org.

20:14:15.864 - WARN [org.opensaml.saml2.binding.AuthnResponseEndpointSelector:206] - Relying party 'https://test_shib.com' requested the response to be returned to endpoint with ACS URL 'https://test_shib.com:443/auth/shibboleth/callback' and binding 'any' however no endpoint, with that URL and using a supported binding, can be found in the relying party's metadata 

20:14:15.864 - ERROR [edu.internet2.middleware.shibboleth.idp.profile.AbstractSAMLProfileHandler:447] - No return endpoint available for relying party https://test_shib.com 

Любая помощь была бы принята с благодарностью.

ответ

0

Возможно, это лучший способ сделать это; но у меня все работает, переопределяя Onelogin::Saml::Authrequest (и другие классы, которые называются Onelogin::Saml::Authrequest), а затем меняют AssertionConsumerServiceURL на AssertionConsumerService в методе создания.

0

в Lib/стойки/saml.rb вы найдете:

@config['assertion_consumer_service_uri'] ||= "#{saml_sp_prefix}#{@config['protected_path']}" 

Таким образом, в вашей конфигурации стойку/saml.yml вы можете настроить его, как это (и вам может понадобиться, если имеющий порт число в Ури вызывает проблемы):

assertion_consumer_service_uri: https://www.abc.edu/users/auth/shibboleth/callback 

Кроме того, вы не должны ничего нужно от их файла shibboleth2.xml, Просто поместите сертификат от XML своего провайдера в вашем metadata.yml конфигурационном файле:

--- 
idp_lists: 
    https://idp.testshib.org/idp/shibboleth: 
    certificate: |- 
     -----BEGIN CERTIFICATE----- 
     MIIEDjCCAvagAwIBAgIBADANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJVUzEV 
     ... 
     8K/qhmFT2nIQi538n6rVYLeWj8Bbnl+ev0peYzxFyF5sQA== 
     -----END CERTIFICATE----- 
    saml2_http_redirect: https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO 
+0

Несколько лет спустя, но спасибо. :-) Я в основном делал то, что вы предлагали. Но я закончил это в пользовательском инициализаторе, так как у меня была другая настройка, которую мне нужно сделать для конкретного проекта, над которым я работал. – user2517182