Esempio n. 1
0
 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",
         ],
     )
Esempio n. 2
0
    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"
Esempio n. 3
0
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"
Esempio n. 4
0
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"
Esempio n. 5
0
    def test_discover(self):
        c = Consumer(None, None)
        mfos = MyFakeOICServer("http://*****:*****@example.com"
        res = c.discover(principal)
        assert res == "http://localhost:8088/"
Esempio n. 6
0
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/"
Esempio n. 7
0
    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/"
Esempio n. 8
0
    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/"
Esempio n. 9
0
def test_discover():
    c = Consumer(None, None)
    mfos = MyFakeOICServer("http://*****:*****@example.com"

    res = c.discover(principal)
    assert res == "http://localhost:8088/"
Esempio n. 10
0
 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'])
Esempio n. 11
0
    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()
Esempio n. 12
0
 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'])
Esempio n. 13
0
    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()
Esempio n. 14
0
    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()
Esempio n. 15
0
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"
Esempio n. 16
0
 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/"
Esempio n. 17
0
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"
Esempio n. 18
0
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"
Esempio n. 19
0
#!/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()