def real_test_discover(self): c = Consumer(None, None) principal = "*****@*****.**" res = c.discover(principal) assert isinstance(res, ProviderConfigurationResponse) assert _eq( res.keys(), [ "registration_endpoint", "scopes_supported", "identifiers_supported", "token_endpoint", "flows_supported", "version", "userinfo_endpoint", "authorization_endpoint", "x509_url", "issuer", ], ) assert res.version == "3.0" # type: ignore assert _eq( res.flows_supported, # type: ignore [ "code", "token", "id_token", "code token", "code id_token", "id_token token", ], )
def test_provider_config(self): c = Consumer(None, None) mfos = MyFakeOICServer("http://example.com") mfos.keyjar = SRVKEYS c.http_request = mfos.http_request principal = "*****@*****.**" res = c.discover(principal) info = c.provider_config(res) assert isinstance(info, ProviderConfigurationResponse) assert _eq(info.keys(), ['registration_endpoint', 'jwks_uri', 'check_session_endpoint', 'refresh_session_endpoint', 'register_endpoint', 'subject_types_supported', 'token_endpoint_auth_methods_supported', 'id_token_signing_alg_values_supported', 'grant_types_supported', 'user_info_endpoint', 'claims_parameter_supported', 'request_parameter_supported', 'discovery_endpoint', 'issuer', 'authorization_endpoint', 'scopes_supported', 'require_request_uri_registration', 'identifiers_supported', 'token_endpoint', 'request_uri_parameter_supported', 'version', 'response_types_supported', 'end_session_endpoint', 'flows_supported']) assert info["end_session_endpoint"] == "http://example.com/end_session"
def test_provider_config(): c = Consumer(None, None) mfos = MyFakeOICServer("http://example.com") mfos.keyjar = SRVKEYS c.http_request = mfos.http_request principal = "*****@*****.**" res = c.discover(principal) info = c.provider_config(res) assert info.type() == "ProviderConfigurationResponse" print info.keys() assert _eq(info.keys(), [ 'registration_endpoint', 'jwks_uri', 'check_session_endpoint', 'refresh_session_endpoint', 'register_endpoint', 'subject_types_supported', 'token_endpoint_auth_methods_supported', 'id_token_signing_alg_values_supported', 'grant_types_supported', 'user_info_endpoint', 'claims_parameter_supported', 'request_parameter_supported', 'discovery_endpoint', 'issuer', 'authorization_endpoint', 'scopes_supported', 'require_request_uri_registration', 'identifiers_supported', 'token_endpoint', 'request_uri_parameter_supported', 'version', 'response_types_supported', 'end_session_endpoint', 'flows_supported' ]) assert info["end_session_endpoint"] == "http://example.com/end_session"
def test_discover_redirect(): c = Consumer(None, None) mfos = MyFakeOICServer(name="http://example.com/") c.http_request = mfos.http_request principal = "*****@*****.**" res = c.discover(principal) assert res == "http://example.net/providerconf"
def test_discover(self): c = Consumer(None, None) mfos = MyFakeOICServer("http://*****:*****@example.com" res = c.discover(principal) assert res == "http://localhost:8088/"
def test_discover(): c = Consumer(None, None) mfos = MyFakeOICServer(SRVKEYS, "http://example.com/") c.http_request = mfos.http_request principal = "*****@*****.**" res = c.discover(principal) assert res == "http://example.com/"
def test_discover(self, fake_oic_server): c = Consumer(None, None) mfos = fake_oic_server("https://*****:*****@example.com" res = c.discover(principal) assert res == "https://localhost:8088/"
def test_discover(self, fake_oic_server): c = Consumer(None, None) mfos = fake_oic_server("https://*****:*****@example.com" res = c.discover(principal) assert res == "https://localhost:8088/"
def test_discover(): c = Consumer(None, None) mfos = MyFakeOICServer("http://*****:*****@example.com" res = c.discover(principal) assert res == "http://localhost:8088/"
def real_test_discover(self): c = Consumer(None, None) principal = "*****@*****.**" res = c.discover(principal) assert isinstance(res, ProviderConfigurationResponse) assert _eq(res.keys(), ['registration_endpoint', 'scopes_supported', 'identifiers_supported', 'token_endpoint', 'flows_supported', 'version', 'userinfo_endpoint', 'authorization_endpoint', 'x509_url', 'issuer']) assert res.version == "3.0" assert _eq(res.flows_supported, ['code', 'token', 'id_token', 'code token', 'code id_token', 'id_token token'])
def test_client_register(self, fake_oic_server): c = Consumer(None, None) c.redirect_uris = ["https://example.com/authz"] mfos = fake_oic_server("https://example.com") mfos.keyjar = SRVKEYS c.http_request = mfos.http_request # type: ignore # FIXME: Replace with responses location = c.discover("*****@*****.**") info = c.provider_config(location) c.register(info["registration_endpoint"]) assert c.client_id is not None assert c.client_secret is not None assert c.registration_expires > utc_time_sans_frac()
def real_test_discover(self): c = Consumer(None, None) principal = "*****@*****.**" res = c.discover(principal) assert isinstance(res, ProviderConfigurationResponse) assert _eq(res.keys(), ['registration_endpoint', 'scopes_supported', 'identifiers_supported', 'token_endpoint', 'flows_supported', 'version', 'userinfo_endpoint', 'authorization_endpoint', 'x509_url', 'issuer']) assert res.version == "3.0" assert _eq(res.flows_supported, ['code', 'token', 'id_token', 'code token', 'code id_token', 'id_token token'])
def test_client_register(self, fake_oic_server): c = Consumer(None, None) c.application_type = "web" c.application_name = "My super service" c.redirect_uris = ["https://example.com/authz"] c.contact = ["*****@*****.**"] mfos = fake_oic_server("https://example.com") mfos.keyjar = SRVKEYS c.http_request = mfos.http_request location = c.discover("*****@*****.**") info = c.provider_config(location) c.register(info["registration_endpoint"]) assert c.client_id is not None assert c.client_secret is not None assert c.registration_expires > utc_time_sans_frac()
def test_client_register(self, fake_oic_server): c = Consumer(None, None) c.application_type = "web" c.application_name = "My super service" c.redirect_uris = ["https://example.com/authz"] c.contact = ["*****@*****.**"] mfos = fake_oic_server("https://example.com") mfos.keyjar = SRVKEYS c.http_request = mfos.http_request location = c.discover("*****@*****.**") info = c.provider_config(location) c.register(info["registration_endpoint"]) assert c.client_id is not None assert c.client_secret is not None assert c.registration_expires > utc_time_sans_frac()
def test_provider_config(): c = Consumer(None, None) mfos = MyFakeOICServer(SRVKEYS, "http://example.com/") c.http_request = mfos.http_request principal = "*****@*****.**" res = c.discover(principal) info = c.provider_config(res) assert info.type() == "ProviderConfigurationResponse" print info.keys() assert _eq(info.keys(), ['registration_endpoint', 'check_session_endpoint', 'refresh_session_endpoint', 'scopes_supported', 'identifiers_supported', 'token_endpoint', 'version', 'user_info_endpoint', 'end_session_endpoint', 'authorization_endpoint', 'flows_supported', 'issuer']) assert info["end_session_endpoint"] == "http://example.com/end_session"
def test_discover(self): c = Consumer(None, None) webfinger = { "subject": "acct:[email protected]", "links": [{ "rel": "http://openid.net/specs/connect/1.0/issuer", "href": "https://*****:*****@example.com" with responses.RequestsMock() as rsps: rsps.add( responses.GET, "https://example.com/.well-known/webfinger" "?resource=acct%3Afoo%40example.com&rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer", json=webfinger, ) res = c.discover(principal) assert res == "https://localhost:8088/"
def test_provider_config(): c = Consumer(None, None) mfos = MyFakeOICServer("http://example.com") mfos.keyjar = SRVKEYS c.http_request = mfos.http_request principal = "*****@*****.**" res = c.discover(principal) info = c.provider_config(res) assert info.type() == "ProviderConfigurationResponse" print info.keys() assert _eq(info.keys(), ['registration_endpoint', u'check_session_endpoint', u'refresh_session_endpoint', 'scopes_supported', 'subject_types_supported', 'token_endpoint_auth_methods_supported', 'id_token_signing_alg_values_supported', u'flows_supported', 'version', u'identifiers_supported', u'user_info_endpoint', 'response_types_supported', 'end_session_endpoint', 'authorization_endpoint', u'discovery_endpoint', 'token_endpoint', 'x509_url', 'issuer']) assert info["end_session_endpoint"] == "http://example.com/end_session"
from oic.oic.consumer import Consumer from oic.utils.keyio import KeyChain, KeyJar __author__ = 'rohe0002' from fakeoicsrv import MyFakeOICServer CLIENT_SECRET = "abcdefghijklmnop" CLIENT_ID = "client_1" RSAPUB = "../oc3/certs/mycert.key" KC_HMAC_VS = KeyChain({"hmac": CLIENT_SECRET}, usage=["ver", "sig"]) KC_RSA = KeyChain(source="file://%s" % RSAPUB, type="rsa", usage=["ver", "sig"]) KC_HMAC_S = KeyChain({"hmac": CLIENT_SECRET}, usage=["sig"]) SRVKEYS = KeyJar() SRVKEYS[""] = [KC_RSA] SRVKEYS["client_1"] = [KC_HMAC_VS, KC_RSA] c = Consumer(None, None) mfos = MyFakeOICServer("http://example.com") mfos.keyjar = SRVKEYS c.http_request = mfos.http_request principal = "*****@*****.**" res = c.discover(principal) info = c.provider_config(res) assert info.type() == "ProviderConfigurationResponse"
#!/usr/bin/env python __author__ = 'rohe0002' import sys from oic.oic.consumer import Consumer principal = sys.argv[1] if principal[0] in ["@", "=", "!"]: print "Not supported" sys.exit() if "@" in principal: idtype = "mail" else: idtype = "url" client = Consumer(None, None) issuer = client.discover(principal, idtype) print "ISSUER: %s" % issuer pcr = client.provider_config(issuer) print pcr.to_dict()