74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from saml2 import BINDING_SOAP
 | 
						|
from saml2.samlp import NewID
 | 
						|
from saml2.saml import NameID, NAMEID_FORMAT_TRANSIENT
 | 
						|
from saml2.client import Saml2Client
 | 
						|
from saml2.server import Server
 | 
						|
 | 
						|
__author__ = 'rolandh'
 | 
						|
 | 
						|
def test_basic():
 | 
						|
    sp = Saml2Client(config_file="servera_conf")
 | 
						|
    idp = Server(config_file="idp_all_conf")
 | 
						|
 | 
						|
    # -------- @SP ------------
 | 
						|
    binding, destination = sp.pick_binding("manage_name_id_service",
 | 
						|
                                           entity_id=idp.config.entityid)
 | 
						|
 | 
						|
    nameid = NameID(format=NAMEID_FORMAT_TRANSIENT, text="foobar")
 | 
						|
    newid = NewID(text="Barfoo")
 | 
						|
 | 
						|
    mid = sp.create_manage_name_id_request(destination, name_id=nameid,
 | 
						|
                                           new_id=newid)
 | 
						|
 | 
						|
    print mid
 | 
						|
    rargs = sp.apply_binding(binding, "%s" % mid, destination, "")
 | 
						|
 | 
						|
    # --------- @IDP --------------
 | 
						|
 | 
						|
    _req = idp.parse_manage_name_id_request(rargs["data"], binding)
 | 
						|
 | 
						|
    print _req.message
 | 
						|
 | 
						|
    assert mid.id == _req.message.id
 | 
						|
 | 
						|
def test_flow():
 | 
						|
    sp = Saml2Client(config_file="servera_conf")
 | 
						|
    idp = Server(config_file="idp_all_conf")
 | 
						|
 | 
						|
    binding, destination = sp.pick_binding("manage_name_id_service",
 | 
						|
                                           entity_id=idp.config.entityid)
 | 
						|
 | 
						|
    nameid = NameID(format=NAMEID_FORMAT_TRANSIENT, text="foobar")
 | 
						|
    newid = NewID(text="Barfoo")
 | 
						|
 | 
						|
    mid = sp.create_manage_name_id_request(destination, name_id=nameid,
 | 
						|
                                           new_id=newid)
 | 
						|
 | 
						|
    print mid
 | 
						|
    rargs = sp.apply_binding(binding, "%s" % mid, destination, "")
 | 
						|
 | 
						|
    # --------- @IDP --------------
 | 
						|
 | 
						|
    _req = idp.parse_manage_name_id_request(rargs["data"], binding)
 | 
						|
 | 
						|
    print _req.message
 | 
						|
 | 
						|
    mnir = idp.create_manage_name_id_response(_req.message, None)
 | 
						|
 | 
						|
    if binding != BINDING_SOAP:
 | 
						|
        binding, destination = idp.pick_binding("manage_name_id_service",
 | 
						|
                                                entity_id=sp.config.entityid)
 | 
						|
    else:
 | 
						|
        destination = ""
 | 
						|
 | 
						|
    respargs = idp.apply_binding(binding, "%s" % mnir, destination, "")
 | 
						|
 | 
						|
    print respargs
 | 
						|
 | 
						|
    # ---------- @SP ---------------
 | 
						|
 | 
						|
    _response = sp.parse_manage_name_id_request_response(respargs["data"], binding)
 | 
						|
 | 
						|
    print _response.response
 | 
						|
 | 
						|
    assert _response.response.id == mnir.id |