2015-10-27 2 views
0

Вот фрагмент кода для обмена утверждениями SAML между IDP и SP, я могу получить утверждение SAML из IDP, но код для извлечения утверждения SAML из IDP со стороны SP не работает.Как обменять утверждение SAML между IDP и SP

def exchange_assertion(self): 
    """Send assertion to a SP.""" 
    # sp[u'sp_url'] = http://localhost/Shibboleth.sso/SAML2/ECP 
    response = self.session.post(
     sp[u'sp_url'], 
     headers={'Content-Type': 'application/vnd.paos+xml'}, 
     data=self.assertion, 
     authenticated=False, 
     redirect=False) 

    # the status code is 302, so I assume it's okay so far. 
    self._check_response(response) 

    # sp[u'auth_url'] is url of which points to SP where it expects 
    # the saml assertion can be fetched from the context, but 
    # it doesn't unfortunately. 
    r = self._handle_http_302_ecp_redirect(self.session, response, sp[u'auth_url'], 
              method='GET', 
              headers={'Content-Type': 
              'application/vnd.paos+xml'}) 

def _handle_http_302_ecp_redirect(self, session, response, location, method, **kwargs): 
    return session.get(location, authenticated=False, **kwargs) 

Где я застрял является SAML утверждение не может быть получить из контекста [ «окружения»]. Итак, что здесь происходит? Спасибо за продвижение за любое предложение.

ответ

0

ах, есть некоторая неправильная настройка под apache, проблема решена.

Конфигурация в /etc/shibboleth/shibboleth2.xml настроены на использование по умолчанию приложения, так что я должен изменить ApplicationID к «по умолчанию» под апач, конфигурация выглядит так,

<Location ~ "/this is the auth uri/"> 
    ShibRequestSetting requireSession 1 
    AuthType shibboleth 
    ShibRequestSetting applicationId default 
    #ShibRequireAll On 
    #ShibRequireSession On 
    ShibExportAssertion Off 
    Require valid-user 
</Location> 

Тогда работает.

+0

Это заявление не помогает никому, у кого есть такая же проблема. Если у вас есть ощущение, что у кого-то может быть такой же вопрос, вы должны добавить дополнительную информацию. В противном случае вы должны удалить свой вопрос. –

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