def sync_okta_applications(neo4j_session, okta_org_id, okta_update_tag, okta_api_key): """ Sync okta application :param neo4j_session: session from the Neo4j server :param okta_org_id: okta organization id :param okta_update_tag: The timestamp value to set our new Neo4j resources with :param okta_api_key: Okta api key :return: Nothing """ logger.debug("Syncing Okta Applications") api_client = create_api_client(okta_org_id, "/api/v1/apps", okta_api_key) okta_app_data = _get_okta_applications(api_client) app_data = transform_okta_application_list(okta_app_data) _load_okta_applications(neo4j_session, okta_org_id, app_data, okta_update_tag) for app in okta_app_data: app_id = app["id"] user_list_data = _get_application_assigned_users(api_client, app_id) user_list = transform_application_assigned_users_list(user_list_data) _load_application_user(neo4j_session, app_id, user_list, okta_update_tag) group_list_data = _get_application_assigned_groups(api_client, app_id) group_list = transform_application_assigned_groups_list(group_list_data) _load_application_group(neo4j_session, app_id, group_list, okta_update_tag) reply_urls = transform_okta_application_extract_replyurls(app) _load_application_reply_urls(neo4j_session, app_id, reply_urls, okta_update_tag)
def sync_roles(neo4j_session, okta_org_id, okta_update_tag, okta_api_key, sync_state): """ Sync okta roles :param neo4j_session: Neo4j Session :param okta_org_id: Okta organization id :param okta_update_tag: Update tag :param okta_api_key: Okta API key :param sync_state: Okta sync state :return: None """ logger.debug("Syncing Okta Roles") # get API client api_client = create_api_client(okta_org_id, "/api/v1/users", okta_api_key) for user_id in sync_state.users: user_roles_data = _get_user_roles(api_client, user_id, okta_org_id) user_roles = transform_user_roles_data(user_roles_data, okta_org_id) if len(user_roles) > 0: _load_user_role(neo4j_session, user_id, user_roles, okta_update_tag) for group_id in sync_state.groups: group_roles_data = _get_group_roles(api_client, group_id, okta_org_id) group_roles = transform_group_roles_data(group_roles_data, okta_org_id) if len(group_roles) > 0: _load_group_role(neo4j_session, group_id, group_roles, okta_update_tag)
def sync_okta_groups(neo4_session, okta_org_id, okta_update_tag, okta_api_key, sync_state): """ Synchronize okta groups :param neo4_session: session with the Neo4j server :param okta_org_id: okta organization id :param okta_update_tag: The timestamp value to set our new Neo4j resources with :param okta_api_key: Okta API key :param sync_state: Okta sync state :return: Nothing """ logger.debug("Syncing Okta groups") api_client = create_api_client(okta_org_id, "/api/v1/groups", okta_api_key) okta_group_data = _get_okta_groups(api_client) group_list_info, group_ids = transform_okta_group_list(okta_group_data) # store result for later use sync_state.groups = group_ids _load_okta_groups(neo4_session, okta_org_id, group_list_info, okta_update_tag) _sync_okta_group_membership(neo4_session, api_client, group_list_info, okta_update_tag)
def sync_trusted_origins( neo4j_session: neo4j.Session, okta_org_id: str, okta_update_tag: int, okta_api_key: str, ) -> None: """ Sync trusted origins :param neo4j_session: session with the Neo4j server :param okta_org_id: okta organization id :param okta_update_tag: The timestamp value to set our new Neo4j resources with :param okta_api_key: okta api key :return: Nothing """ logger.debug("Syncing Okta Trusted Origins") api_client = create_api_client(okta_org_id, "/api/v1/trustedOrigins", okta_api_key) trusted_data = _get_trusted_origins(api_client) trusted_list = transform_trusted_origins(trusted_data) _load_trusted_origins(neo4j_session, okta_org_id, trusted_list, okta_update_tag)