Example #1
0
    def test_pack_and_unpack(self):
        ss = make_software_statement(self.keyjar, self.issuer,
                                     client_id='ABC 001')

        msg = unpack_software_statement(ss, self.issuer, self.keyjar)
        assert msg
        assert _eq(msg.keys(), ['client_id', 'iat', 'iss', 'exp', 'jti'])
        assert msg['client_id'] == 'ABC 001'
        assert msg['iss'] == self.issuer
Example #2
0
    def test_client_registration_with_software_statement(self):
        jwks, keyjar, kidd = build_keyjar(KEYS)
        fed_operator = 'https://fedop.example.org'

        self.provider.keyjar[fed_operator] = keyjar['']
        ss = make_software_statement(keyjar, fed_operator, client_id='foxtrot')

        args = {
            "redirect_uris": ["https://client.example.org/callback",
                              "https://client.example.org/callback2"],
            "client_name": "XYZ Service B",
            "token_endpoint_auth_method": "client_secret_basic",
            "scope": "read write dolphin",
            'software_statement': ss
        }
        request = RegistrationRequest(**args)
        resp = self.provider.registration_endpoint(request=request.to_json(),
                                                   environ={})
        cli_resp = ClientInfoResponse().from_json(resp.message)
        assert cli_resp
Example #3
0
    json.dumps(ssreq.to_dict(),
               sort_keys=True,
               indent=2,
               separators=(',', ': ')))

# -----------------------------------------------------------------------------
# The FO constructs Software statement
# -----------------------------------------------------------------------------

ssreq.update({
    "response_types": ["code", "token"],
    "token_endpoint_auth_method": "private_key_jwt",
    "scopes_allowed": ['openid', 'email', 'phone']
})

sost = make_software_statement(fo_keyjar, 'https://fo.example.com/',
                               **ssreq.to_dict())
_jwt = factory(sost)
_sos = json.loads(_jwt.jwt.part[1].decode('utf8'))

print(70 * "-")
print('FO extended software statement')
print(70 * "-")
print_lines(json.dumps(_sos, sort_keys=True, indent=2, separators=(',', ': ')))
print()
print_lines(sost)

# -----------------------------------------------------------------------------
# Create intermediate key pair
# -----------------------------------------------------------------------------

im_jwks, im_keyjar = build_keyjar(key_conf)[:-1]
Example #4
0
 def test_pack(self):
     ss = make_software_statement(self.keyjar, self.issuer,
                                  client_id='ABC 001')
     assert ss
     assert len(ss.split('.')) == 3
Example #5
0
print(70 * "-")
print_lines(json.dumps(ssreq.to_dict(), sort_keys=True, indent=2, separators=(",", ": ")))

# -----------------------------------------------------------------------------
# The FO constructs Software statement
# -----------------------------------------------------------------------------

ssreq.update(
    {
        "response_types": ["code", "token"],
        "token_endpoint_auth_method": "private_key_jwt",
        "scopes_allowed": ["openid", "email", "phone"],
    }
)

sost = make_software_statement(fo_keyjar, "https://fo.example.com/", **ssreq.to_dict())
_jwt = factory(sost)
_sos = json.loads(_jwt.jwt.part[1].decode("utf8"))

print(70 * "-")
print("FO extended software statement")
print(70 * "-")
print_lines(json.dumps(_sos, sort_keys=True, indent=2, separators=(",", ": ")))
print()
print_lines(sost)

# -----------------------------------------------------------------------------
# Create intermediate key pair
# -----------------------------------------------------------------------------

im_jwks, im_keyjar = build_keyjar(key_conf)[:-1]