Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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)