Skip to content

Commit 0e7f4c2

Browse files
committed
update console connector to support S2S
1 parent 84c80b9 commit 0e7f4c2

1 file changed

Lines changed: 33 additions & 10 deletions

File tree

user_sync/connector/directory_adobe_console.py

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def __init__(self, caller_options, *args, **kwargs):
4444
builder.set_string_value('user_identity_type', None)
4545
builder.set_string_value('identity_type_filter', 'all')
4646
builder.set_bool_value('ssl_cert_verify', True)
47+
builder.set_string_value('authentication_method', 'jwt')
4748
options = builder.get_options()
4849

4950
if not options['identity_type_filter'] == 'all':
@@ -57,8 +58,17 @@ def __init__(self, caller_options, *args, **kwargs):
5758
server_builder = config_common.OptionsBuilder(server_config)
5859
server_builder.set_string_value('host', 'usermanagement.adobe.io')
5960
server_builder.set_string_value('endpoint', '/v2/usermanagement')
60-
server_builder.set_string_value('ims_host', 'ims-na1.adobelogin.com')
6161
server_builder.set_string_value('ims_endpoint_jwt', '/ims/exchange/jwt')
62+
63+
auth_host_key = 'ims_host' if 'ims_host' in server_config else 'auth_host'
64+
server_builder.set_string_value(auth_host_key, 'ims-na1.adobelogin.com')
65+
66+
auth_endpoint_key = 'ims_endpoint_jwt' if 'ims_endpoint_jwt' in server_config else 'auth_endpoint'
67+
auth_endpoint_default = '/ims/exchange/jwt'
68+
if options['authentication_method'] == 'oauth':
69+
auth_endpoint_default = '/ims/token/v2'
70+
server_builder.set_string_value(auth_endpoint_key, auth_endpoint_default)
71+
6272
server_builder.set_int_value('timeout', 120)
6373
server_builder.set_int_value('retries', 3)
6474
options['server'] = server_options = server_builder.get_options()
@@ -67,17 +77,33 @@ def __init__(self, caller_options, *args, **kwargs):
6777
integration_builder = config_common.OptionsBuilder(enterprise_config)
6878
integration_builder.require_string_value('org_id')
6979
tech_field = 'tech_acct_id' if 'tech_acct_id' in enterprise_config else 'tech_acct'
70-
integration_builder.require_string_value(tech_field)
80+
integration_builder.set_string_value(tech_field, None)
7181
options['integration'] = integration_options = integration_builder.get_options()
7282

83+
if integration_options[tech_field] is None and options['authentication_method'] == 'jwt':
84+
raise AssertionException(f"'{tech_field}' is required for jwt authentication")
85+
86+
if integration_options[tech_field] is not None and options['authentication_method'] == 'oauth':
87+
raise AssertionException(f"'{tech_field}' should not be set for oauth authentication")
88+
7389
self.logger = logger = user_sync.connector.helper.create_logger(options)
7490
logger.debug('%s initialized with options: %s', self.name, options)
7591

7692
self.options = options
7793

7894
ims_host = server_options['ims_host']
7995
self.org_id = org_id = integration_options['org_id']
80-
auth_dict = make_auth_dict(self.name, enterprise_config, org_id, integration_options[tech_field], logger)
96+
auth = create_umapi_auth(
97+
self.name,
98+
enterprise_config,
99+
org_id,
100+
integration_options[tech_field],
101+
server_options[auth_host_key],
102+
server_options[auth_endpoint_key],
103+
options['ssl_cert_verify'],
104+
options['authentication_method'],
105+
logger,
106+
)
81107

82108
# this check must come after we fetch all the settings
83109
caller_config.report_unused_values(logger)
@@ -88,15 +114,12 @@ def __init__(self, caller_options, *args, **kwargs):
88114
try:
89115
self.connection = umapi_client.Connection(
90116
org_id=org_id,
91-
auth_dict=auth_dict,
92-
ims_host=ims_host,
93-
ims_endpoint_jwt=server_options['ims_endpoint_jwt'],
94-
user_management_endpoint=um_endpoint,
117+
auth=auth,
118+
endpoint=um_endpoint,
95119
test_mode=False,
96120
user_agent="user-sync/" + app_version,
97-
logger=self.logger,
98-
timeout_seconds=float(server_options['timeout']),
99-
retry_max_attempts=server_options['retries'] + 1,
121+
timeout=float(server_options['timeout']),
122+
max_retries=server_options['retries'] + 1,
100123
ssl_verify=options['ssl_cert_verify']
101124
)
102125
except Exception as e:

0 commit comments

Comments
 (0)