コード例 #1
0
    def __init__(self, caller_options):
        caller_config = user_sync.config.DictConfig('%s configuration' % self.name, caller_options)
        builder = user_sync.config.OptionsBuilder(caller_config)
        builder.set_string_value('group_filter_format',
                                 '{group}')
        builder.set_string_value('all_users_filter',
                                 'user.status == "ACTIVE"')
        builder.set_string_value('string_encoding', 'utf8')
        builder.set_string_value('user_identity_type_format', None)
        builder.set_string_value('user_email_format', six.text_type('{email}'))
        builder.set_string_value('user_username_format', None)
        builder.set_string_value('user_domain_format', None)
        builder.set_string_value('user_given_name_format', six.text_type('{firstName}'))
        builder.set_string_value('user_surname_format', six.text_type('{lastName}'))
        builder.set_string_value('user_country_code_format', six.text_type('{countryCode}'))
        builder.set_string_value('user_identity_type', None)
        builder.set_string_value('logger_name', self.name)
        host = builder.require_string_value('host')
        api_token = builder.require_string_value('api_token')

        options = builder.get_options()

        OKTAValueFormatter.encoding = options['string_encoding']
        self.user_identity_type = user_sync.identity_type.parse_identity_type(options['user_identity_type'])
        self.user_identity_type_formatter = OKTAValueFormatter(options['user_identity_type_format'])
        self.user_email_formatter = OKTAValueFormatter(options['user_email_format'])
        self.user_username_formatter = OKTAValueFormatter(options['user_username_format'])
        self.user_domain_formatter = OKTAValueFormatter(options['user_domain_format'])
        self.user_given_name_formatter = OKTAValueFormatter(options['user_given_name_format'])
        self.user_surname_formatter = OKTAValueFormatter(options['user_surname_format'])
        self.user_country_code_formatter = OKTAValueFormatter(options['user_country_code_format'])

        self.users_client = None
        self.groups_client = None
        self.logger = logger = user_sync.connector.helper.create_logger(options)
        self.user_identity_type = user_sync.identity_type.parse_identity_type(options['user_identity_type'])
        self.options = options
        caller_config.report_unused_values(logger)

        if not host.startswith('https://'):
            if "://" in host:
                raise AssertionException("Okta protocol must be https")
            host = "https://" + host

        self.user_by_uid = {}

        logger.debug('%s initialized with options: %s', self.name, options)

        logger.info('Connecting to: %s', host)

        try:
            self.users_client = okta.UsersClient(host, api_token)
            self.groups_client = okta.UserGroupsClient(host, api_token)
        except OktaError as e:
            raise AssertionException("Error connecting to Okta: %s" % e)

        logger.info('Connected')
コード例 #2
0
    def setUp(self):
        self.orig_directory_init = OktaDirectoryConnector.__init__

        OktaDirectoryConnector.__init__ = mock.Mock(return_value=None)
        directory = OktaDirectoryConnector({})
        directory.options = {'all_users_filter': None, 'group_filter_format': '{group}'}
        directory.logger = mock.create_autospec(logging.Logger)
        directory.groups_client = okta.UserGroupsClient('example.com', 'xyz')

        self.directory = directory
コード例 #3
0
    def setUp(self):
        class MockResponse:
            def __init__(self, status_code, data):
                self.status_code = status_code
                self.text = json.dumps(data)
                self.links = {}

        self.mock_response = MockResponse
        directory = OktaDirectoryConnector({'host': 'okta-test.com', 'api_token': 'abcdefghijklmnopqrstuvwxyz'})
        directory.logger = mock.create_autospec(logging.Logger)
        directory.groups_client = okta.UserGroupsClient('example.com', 'xyz')
        directory.user_identity_type = 'enterpriseID'
        self.directory = directory
コード例 #4
0
    def setUp(self):
        class MockResponse:
            def __init__(self, status_code, data):
                self.status_code = status_code
                self.text = json.dumps(data)
                self.links = {}

        self.mock_response = MockResponse
        self.orig_directory_init = OktaDirectoryConnector.__init__
        OktaDirectoryConnector.__init__ = mock.Mock(return_value=None)
        directory = OktaDirectoryConnector({})
        directory.logger = mock.create_autospec(logging.Logger)
        directory.groups_client = okta.UserGroupsClient('example.com', 'xyz')
        directory.user_identity_type = 'enterpriseID'
        self.directory = directory
コード例 #5
0
    def setUp(self):
        class MockResponse:
            def __init__(self, status_code, data):
                self.status_code = status_code
                self.text = json.dumps(data)

        self.mock_response = MockResponse

        self.orig_directory_init = OktaDirectoryConnector.__init__

        OktaDirectoryConnector.__init__ = mock.Mock(return_value=None)
        directory = OktaDirectoryConnector({})
        directory.options = {'all_users_filter': None, 'group_filter_format': '{group}'}
        directory.logger = mock.create_autospec(logging.Logger)
        directory.groups_client = okta.UserGroupsClient('example.com', 'xyz')

        self.directory = directory
コード例 #6
0
def connect_okta(config):
    url = "https://" + config['okta_url']
    api_token = config['api_token']
    conn = okta.UserGroupsClient(url, api_token)
    return conn