2015-10-27 4 views
0

Voici l'extrait de code pour l'échange d'assertions SAML entre IDP et SP, je peux obtenir l'assertion SAML de IDP, mais le code pour récupérer l'assertion SAML de l'IDP côté SP ne fonctionne pas.Comment échanger l'assertion SAML entre IDP et 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) 

Là où je suis me suis coincé est l'assertion SAML ne peut pas être obtenir du contexte [ « environnement »]. Alors, qu'est-ce qui ne va pas ici? Merci à l'avance pour toute suggestion.

Répondre

0

ah, il ya une mauvaise configuration sous apache, le problème a été résolu.

La configuration /etc/shibboleth/shibboleth2.xml sont configurés pour utiliser par défaut d'application, donc je dois changer le applicationId 'default' sous apache, la configuration ressemble à ceci,

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

Ensuite, travaux.

+0

Cette déclaration n'aide personne qui a le même problème. Si vous avez le sentiment que quelqu'un pourrait avoir la même question, vous devriez ajouter quelques informations supplémentaires. Sinon, vous devriez supprimer votre question. –