KR20230042191A - 로봇 프로세스에 대한 요소 인증 - Google Patents

로봇 프로세스에 대한 요소 인증 Download PDF

Info

Publication number
KR20230042191A
KR20230042191A KR1020217040194A KR20217040194A KR20230042191A KR 20230042191 A KR20230042191 A KR 20230042191A KR 1020217040194 A KR1020217040194 A KR 1020217040194A KR 20217040194 A KR20217040194 A KR 20217040194A KR 20230042191 A KR20230042191 A KR 20230042191A
Authority
KR
South Korea
Prior art keywords
asset
credential
authentication system
code
tokens
Prior art date
Application number
KR1020217040194A
Other languages
English (en)
Inventor
저스틴 레클레어
조셉 래셔
Original Assignee
유아이패스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20230042191A publication Critical patent/KR20230042191A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Storage Device Security (AREA)

Abstract

메모리 및 프로세서를 포함하는 컴퓨팅 디바이스가 본 명세서에 개시된다. 메모리는 인증 시스템을 위한 프로세서 실행 가능 명령어들을 저장한다. 프로세서는 메모리에 결합된다. 프로세서는 컴퓨팅 디바이스로 하여금 고유한 이름을 포함하는 자격증명 자산을 생성하게 하기 위해 인증 시스템을 실행한다. 인증 시스템은 또한 고유한 이름을 사용하여 자격증명 자산에 대한 토큰들을 페치하고, 토큰들 각각에 대한 통지를 호출하며, 자격증명 자산의 코드에 대해 폴링하고, 작업을 실행하기 위한 인증을 위해 코드를 활용한다.

Description

로봇 프로세스에 대한 요소 인증
비인가된 액세스를 방지하기를 원하는 온라인 플랫폼들은 그에 대한 사용자 액세스를 허용할 때 보안을 이용한다. 온라인 플랫폼에 의해 이용되는 보안의 예는 사용자 확인이다. 일반적으로, 사용자 확인은 사용자가 온라인 플랫폼에 액세스하기 위해 자격증명들(예를 들면, 올바른 사용자 이름과 패스워드 조합)을 제출할 때를 포함한다.
다중 요소 인증은 사용자 확인에 대한 보안 강화이다. 다중 요소 인증은 온라인 플랫폼에 로그인할 때 적어도 2 개의 '증거'를 필요로 한다. 예를 들어, 자격증명들은, 사용자가 가지고 있는 어떤 것(예를 들면, 스마트 카드 또는 인증 코드) 및/또는 사용자에 관한 어떤 것(예를 들면, 지문)과 같은, 하나 이상의 추가적인 요소와 조합되는 제1 요소로 간주될 수 있다. 그러나, (무인(unattended) 또는 유인(attended)인지에 관계없이) 로봇 프로세스들과 관련하여, 다중 요소 인증은 문제들을 제기한다.
예를 들어, 로봇 프로세스가 사용자 확인과 함께 다중 요소 인증을 사용하여 온라인 플랫폼에 로그인하려고 시도할 때, 로봇 프로세스들이 다중 요소 인증을 완료하기 위해 하나 이상의 추가적인 요소를 얻을 방법이 없기 때문에 로봇 프로세스는 오류 또는 실패를 경험할 수 있다. 따라서, 로봇 프로세스들이 다중 요소 인증을 진행할 수 있도록 하는 방식으로 다중 요소 인증을 개선시키는 것이 바람직하다.
하나 이상의 실시예에 따르면, 컴퓨팅 디바이스가 제공된다. 컴퓨팅 디바이스는 메모리 및 프로세서를 포함한다. 메모리는 인증 시스템을 위한 프로세서 실행 가능 명령어들을 저장한다. 프로세서는 메모리에 결합된다. 프로세서는 컴퓨팅 디바이스로 하여금 고유한 이름을 포함하는 자격증명 자산을 생성하게 하기 위해 인증 시스템을 실행한다. 인증 시스템은 또한 고유한 이름을 사용하여 자격증명 자산에 대한 토큰들을 페치(fetch)하고, 토큰들 각각에 대한 통지를 호출하며, 자격증명 자산의 코드에 대해 폴링하고, 작업을 실행하기 위한 인증을 위해 코드를 활용한다.
하나 이상의 실시예에 따르면, 위의 컴퓨팅 디바이스 실시예는 방법, 장치, 시스템, 및/또는 컴퓨터 프로그램 제품으로서 구현될 수 있다.
첨부 도면들과 관련하여 예로서 주어진, 이하의 설명으로부터 보다 상세한 이해가 이루어질 수 있으며, 도면들에서 유사한 참조 번호들은 유사한 요소들을 나타낸다.
도 1a는 하나 이상의 실시예에 따른 로봇 프로세스 자동화(robotic process automation, RPA) 개발, 설계, 동작 또는 실행의 예시이다.
도 1b는 하나 이상의 실시예에 따른 RPA 개발, 설계, 동작 또는 실행의 다른 예시이다.
도 1c는 하나 이상의 실시예에 따른 컴퓨팅 시스템 또는 환경의 예시이다.
도 2는 하나 이상의 실시예에 따른 인증 시스템 내의 하나 이상의 프로세서에 의해 실행되는 프로세스 흐름을 예시하는 블록 다이어그램이다.
도 3은 하나 이상의 실시예에 따른 인증 시스템의 예시이다.
도 4는 하나 이상의 실시예에 따른 도 3의 인증 시스템에 의해 실행되는 프로세스 흐름을 예시하는 블록 다이어그램이다.
도 5는 하나 이상의 실시예에 따른 사용자 인터페이스를 예시하는 블록 다이어그램이다.
본 명세서에는 하나 이상의 실시예에 따른 인증 시스템이 개시되어 있다. 인증 시스템은 인증 절차의 적어도 일부의 기능들을 수행하는 소프트웨어 및/또는 하드웨어를 포함한다. 인증 시스템은 온라인 플랫폼들에 액세스하기 위한 특정 구성 및 툴링 로봇 프로세스 자동화 방법을 제공하며, 여기서 인증 시스템은 하드웨어와 소프트웨어(예를 들면, 필연적으로 하드웨어에 기반한 프로세서 실행 가능 코드)의 조합일 수 있다. 이와 관련하여, 구성 및 툴링 로봇 프로세스 자동화 방법은 로봇 프로세스가 다중 요소 인증의 하나 이상의 추가적인 요소를 필요로 한다는 것을 사용자에게 (예를 들면, 즉시) 경고하고 로봇 프로세스에 해당 하나 이상의 추가적인 요소를 제공한다. 따라서, 인증 시스템의 구성 및 툴링 로봇 프로세스 자동화 방법은 로봇 프로세스가 온라인 플랫폼들에 의해 구현되는 다중 요소 인증을 진행하는 것과 관련하여 하나 이상의 디바이스 및/또는 데이터베이스의 구성 설정들 및 화면들(및/또는 소프트웨어 창들)의 다단계 데이터 조작을 포함한다.
이와 관련하여 그리고 동작 중에, 인증 시스템은 적어도 고유한 이름을 포함하는 자격증명 자산을 생성한다. 고유한 이름은 추가로 자격증명 자산에 대한 하나 이상의 토큰을 페치하는 것을 가능하게 한다. 따라서, 인증 시스템이 하나 이상의 토큰에 대한 통지를 호출할 때, 인증 시스템은 추가로 자격증명 자산의 코드에 대해 폴링하고 임의의 작업을 실행하기 위한 다중 요소 인증을 위해 코드를 활용할 수 있다. 인증 시스템의 기술적 효과들 및 이점들은 로봇 프로세스들을 (예를 들면, 자동으로) 인증하기 위해 토큰들을 사용하여 로그인 시도들, 자격증명 자산들 및 코드들을 연결시키는 것에 의해 다중 요소 인증을 개선시키는 것을 포함한다. 인증 시스템의 기술적 효과들 및 이점들은, 디바이스들이 로봇 프로세스들과 관련하여 다중 요소 인증에 대한 통지들을 수신하도록, 디바이스들에 대한 자격증명 자산들의 선택 및 연관을 가능하게 한다는 것을 또한 포함한다.
본 명세서에 기술된 방법들 및 프로세스들에 대해, 기재된 단계들은 임의의 순서로 비순차적으로 수행될 수 있고, 명시적으로 기술되거나 도시되지 않은 하위 단계들이 수행될 수 있다. 추가적으로, "결합된" 또는 "작동 가능하게 결합된"은 객체들이 링크되어 있지만 링크된 객체들 사이에 0 개 이상의 중간 객체가 있을 수 있음을 의미할 수 있다. 또한, 하나 이상의 실시예에서, 개시된 특징들/요소들의 임의의 조합이 사용될 수 있다. "A 또는 B"에 대해 언급하는 것을 사용할 때, 이는 A, B, 또는 A 및 B를 포함할 수 있으며, 이는 유사하게 보다 긴 리스트들로 확장될 수 있다. 표기법 X/Y를 사용할 때, 이는 X 또는 Y를 포함할 수 있다. 대안적으로, 표기법 X/Y를 사용할 때, 이는 X 및 Y를 포함할 수 있다. 표기법 X/Y는 동일한 설명된 논리로 유사하게 보다 긴 리스트들로 확장될 수 있다.
도 1a는 로봇 프로세스 자동화(RPA) 개발, 설계, 동작 또는 실행(100)의 예시이다. 하나 이상의 엔진(예를 들면, 인증 시스템), 개발 환경 등을 포함하는 스튜디오, 개발 또는 온라인 플랫폼이라고 때때로 지칭되는 디자이너(designer)(102)는 로봇이 하나 이상의 워크플로를 수행하거나 자동화하기 위한 코드, 명령어들, 커맨드들 등을 생성하도록 구성될 수 있다. 컴퓨팅 시스템이 로봇에 제공할 수 있는 선택(들)으로부터, 로봇은 사용자 또는 조작자에 의해 선택되는 시각 디스플레이의 영역(들)의 대표 데이터를 결정할 수 있다. RPA의 일부로서, 다수의 치수들의 정사각형, 직사각형, 원, 다각형, 자유 형상(freeform) 등과 같은 형상들이 컴퓨터 비전(CV) 동작 또는 머신 러닝(ML) 모델과 관련하여 UI 로봇 개발 및 런타임에 활용될 수 있다.
워크플로에 의해 달성될 수 있는 동작들의 비제한적인 예들은 로그인을 수행하는 것, 양식을 작성하는 것, 정보 기술(IT) 관리 등 중 하나 이상일 수 있다. UI 자동화를 위한 워크플로를 실행하기 위해, 로봇은, 애플리케이션 액세스 또는 애플리케이션 개발에 관계없이, 버튼, 체크박스, 텍스트 필드, 라벨 등과 같은, 특정 화면 요소들을 고유하게 식별할 필요가 있을 수 있다. 애플리케이션 액세스의 예들은 로컬, 가상, 원격, 클라우드, Citrix®, VMWare®, VNC®, Windows® 원격 데스크톱, VDI(virtual desktop infrastructure) 등일 수 있다. 애플리케이션 개발의 예들은 win32, Java, Flash, HTML(hypertext markup language), HTML5, XML(extensible markup language), JavaScript, C#, C++, Silverlight 등일 수 있다.
워크플로는 태스크 시퀀스, 플로차트, 유한 상태 머신(Finite State Machine, FSM), 전역 예외 처리기(global exception handler) 등을 포함할 수 있지만 이에 제한되지 않는다. 태스크 시퀀스는 하나 이상의 애플리케이션 또는 창 간의 선형 태스크들을 처리하기 위한 선형 프로세스일 수 있다. 플로차트가 복잡한 비즈니스 논리를 처리하여, 다수의 분기 논리 연산자들을 통해 보다 다양한 방식으로 의사 결정들의 통합 및 활동들의 연결을 가능하게 하도록 구성될 수 있다. FSM은 대규모 워크플로를 위해 구성될 수 있다. FSM은 조건, 전환, 활동 등에 의해 트리거될 수 있는 그의 실행에서 제한된 수의 상태들을 사용할 수 있다. 전역 예외 처리기는, 프로세스들을 디버깅하는 것 등을 위해, 실행 오류에 직면할 때 워크플로 거동을 결정하도록 구성될 수 있다.
로봇은 기본 운영 체제(OS) 또는 하드웨어에 투명하게 UI를 자동화할 수 있는 애플리케이션, 애플릿, 스크립트 등일 수 있다. 배포 시에, 오케스트레이터(orchestrator)라고 때때로 지칭되는, 컨덕터(conductor)(104)에 의해 하나 이상의 로봇이 관리되거나, 제어되거나 할 수 있다. 컨덕터(104)는 로봇(들) 또는 자동화 실행기(automation executor)(106)에게 메인프레임, 웹, 가상 머신, 원격 머신, 가상 데스크톱, 엔터프라이즈 플랫폼, 온라인 플랫폼, 데스크톱 앱(들), 브라우저, 또는 이와 유사한 클라이언트, 애플리케이션 또는 프로그램에서 워크플로를 실행하거나 모니터링하도록 지시하거나 명령할 수 있다. 컨덕터(104)는 복수의 로봇들에 컴퓨팅 플랫폼(예를 들면, 온라인 플랫폼)을 자동화하도록 지시하거나 명령하기 위한 중앙 또는 반중앙 지점으로서 역할할 수 있다.
특정 구성들에서, 컨덕터(104)는 프로비저닝하며, 배포하고, 구성하며, 큐잉하고, 모니터링하며, 로깅하고/하거나 상호연결성을 제공하도록 구성될 수 있다. 프로비저닝은 로봇(들) 또는 자동화 실행기(106)와 컨덕터(104) 사이의 연결 또는 통신의 생성 및 유지를 포함할 수 있다. 배포는 실행을 위해 패키지 버전들을 할당된 로봇들에 전달하는 것을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지 및 전달을 포함할 수 있다. 큐잉은 큐들 및 큐 항목들의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하는 것 및 사용자 권한을 유지하는 것을 포함할 수 있다. 로깅은 데이터베이스(예를 들면, SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예를 들면, 대규모 데이터 세트들을 저장하고 빠르게 쿼리할 수 있게 하는 ElasticSearch®)에 로그들을 저장하고 인덱싱하는 것을 포함할 수 있다. 컨덕터(104)는 제3자 솔루션들 및/또는 애플리케이션들을 위한 중앙 집중식 통신 지점으로서 역할하는 것에 의해 상호연결성을 제공할 수 있다.
로봇(들) 또는 자동화 실행기(106)는 무인(108) 또는 유인(110)으로서 구성될 수 있다. 무인(108) 동작의 경우, 제3자 입력들 또는 제어 없이 자동화가 수행될 수 있다. 유인(110) 동작의 경우, 제3자 컴포넌트로부터 입력, 커맨드들, 명령어들, 안내 등을 수신하는 것에 의해 자동화가 수행될 수 있다. 무인(108) 또는 유인(110) 로봇들은 모바일 컴퓨팅 또는 모바일 디바이스 환경들에서 실행(run) 또는 실행(execute)될 수 있다.
로봇(들) 또는 자동화 실행기(106)는 디자이너(102)에서 빌드된 워크플로들을 실행하는 실행 에이전트들일 수 있다. UI 또는 소프트웨어 자동화를 위한 로봇(들)의 상업적 예는 UiPath Robots™이다. 일부 실시예들에서, 로봇(들) 또는 자동화 실행기(106)는 기본적으로 Microsoft Windows® SCM(Service Control Manager) 관리 서비스(managed service)를 설치할 수 있다. 그 결과, 그러한 로봇들은 로컬 시스템 계정으로 대화형 Windows® 세션들을 열 수 있고, Windows® 서비스의 권한을 가질 수 있다.
일부 실시예들에서, 로봇(들) 또는 자동화 실행기(106)는 사용자 모드에서 설치될 수 있다. 이러한 로봇들은 주어진 로봇을 설치한 사용자와 동일한 권한을 가질 수 있다. 이 특징은 HD(High Density) 로봇들에 대해서도 이용 가능할 수 있으며, 이는, 예컨대, HD 환경에서, 최대 성능으로 각각의 머신을 최대한 활용하는 것을 보장한다.
특정 구성들에서, 로봇(들) 또는 자동화 실행기(106)는, 각각이 특정 자동화 태스크 또는 활동에 전용되는, 여러 컴포넌트들로 분할되거나, 분산되거나 할 수 있다. 로봇 컴포넌트들은 SCM 관리 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행기들, 에이전트들, 커맨드 라인(command line) 등을 포함할 수 있다. SCM 관리 로봇 서비스들은 Windows® 세션들을 관리 또는 모니터링할 수 있고 컨덕터(104)와 실행 호스트들(즉, 로봇(들) 또는 자동화 실행기(106)가 실행되는 컴퓨팅 시스템들) 사이에서 프록시로서 역할할 수 있다. 이러한 서비스들은 로봇(들) 또는 자동화 실행기(106)에 대한 자격증명들을 맡아서 관리할 수 있다.
사용자 모드 로봇 서비스들은 Windows® 세션들을 관리하고 모니터링할 수 있으며 컨덕터(104)와 실행 호스트들 사이에서 프록시로서 역할할 수 있다. 사용자 모드 로봇 서비스들은 로봇들에 대한 자격증명들을 맡아서 관리할 수 있다. SCM 관리 로봇 서비스들이 설치되어 있지 않더라도 Windows® 애플리케이션은 자동으로 론칭(launch)될 수 있다.
실행기는 Windows® 세션 하에서 주어진 작업들을 실행할 수 있다(즉, 워크플로들을 실행할 수 있음). 실행기는 모니터별 DPI(dots per inch) 설정들을 알고 있을 수 있다. 에이전트는 시스템 트레이 창에 이용 가능한 작업들을 디스플레이하는 WPF(Windows® Presentation Foundation) 애플리케이션일 수 있다. 에이전트는 서비스의 클라이언트일 수 있다. 에이전트는 작업들을 시작 또는 중지하고 설정들을 변경하도록 요청할 수 있다. 커맨드 라인은 서비스의 클라이언트일 수 있다. 커맨드 라인은 작업들을 시작하도록 요청할 수 있는 콘솔 애플리케이션이고 작업들의 출력을 기다린다.
로봇(들) 또는 자동화 실행기(106)의 컴포넌트들이 위에 설명된 바와 같이 분할되는 구성들에서는 개발자들을 돕고, 사용자들을 지원하며, 컴퓨팅 시스템들은 각각의 컴포넌트에 의한 실행을 보다 쉽게 실행하고, 식별하며 추적할 수 있다. 실행기 및 서비스에 대해 상이한 방화벽 규칙들을 셋업하는 것과 같이, 특수 거동들은 이러한 방식으로 컴포넌트별로 구성될 수 있다. 일부 실시예들에서, 실행기는 모니터별 DPI 설정들을 알고 있을 수 있다. 그 결과, 워크플로들은, 이들이 생성된 컴퓨팅 시스템의 구성에 관계없이, 임의의 DPI로 실행될 수 있다. 디자이너(102)로부터의 프로젝트들은 브라우저 줌 레벨과도 무관할 수 있다. DPI를 인식하지 못하거나 인식하지 못하는 것으로 의도적으로 표시되는 애플리케이션들의 경우, 일부 실시예들에서, DPI가 디스에이블될 수 있다.
도 1b는 RPA 개발, 설계, 동작 또는 실행(120)의 다른 예시이다. 스튜디오 컴포넌트 또는 모듈(122)은 로봇이 하나 이상의 활동(124)을 수행하기 위한 코드, 명령어들, 커맨드들 등을 생성하도록 구성될 수 있다. 사용자 인터페이스(UI) 자동화(126)는 하나 이상의 드라이버(들) 컴포넌트(128)를 사용하여 클라이언트 상의 로봇에 의해 수행될 수 있다. 로봇은 컴퓨터 비전(CV) 활동들 모듈 또는 엔진(130)(예를 들면, 인증 시스템)을 사용하여 활동들을 수행할 수 있다. 다른 드라이버들(132)은 UI의 요소들을 얻기 위해 로봇에 의한 UI 자동화에 활용될 수 있다. 이들은 OS 드라이버들, 브라우저 드라이버들, 가상 머신 드라이버들, 엔터프라이즈 드라이버들 등을 포함할 수 있다. 특정 구성들에서, CV 활동들 모듈 또는 엔진(130)은 UI 자동화에 사용되는 드라이버일 수 있다.
도 1c는 정보 또는 데이터를 통신하기 위한 버스(142) 또는 다른 통신 메커니즘, 및 프로세싱을 위한 버스(142)에 결합된 하나 이상의 프로세서(들)(144)를 포함할 수 있는 컴퓨팅 시스템 또는 환경(140)(예를 들면, 온라인 플랫폼 및/또는 인증 시스템을 지원하는 하드웨어)의 예시이다. 하나 이상의 프로세서(들)(144)는, CPU(central processing unit), ASIC(application specific integrated circuit), FPGA(field programmable gate array), GPU(graphics processing unit), 제어기, 다중 코어 프로세싱 유닛, 3차원 프로세서, 양자 컴퓨팅 디바이스, 또는 이들의 임의의 조합을 포함한, 임의의 유형의 범용 또는 특수 목적 프로세서일 수 있다. 하나 이상의 프로세서(들)(144)는 또한 다수의 프로세싱 코어들을 가질 수 있고, 코어들 중 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 다중 병렬 프로세싱이 또한 구성될 수 있다. 추가적으로, 적어도 하나 이상의 프로세서(들)(144)는 생물학적 뉴런들을 모방하는 프로세싱 요소들을 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수 있다.
메모리(146)는 프로세서(들)(144)에 의해 실행되거나 프로세싱될 정보, 명령어들(예를 들면, 인증 시스템의 프로세서 실행 가능 명령어들), 커맨드들, 또는 데이터를 저장하도록 구성될 수 있다. 메모리(146)는 RAM(random access memory), ROM(read only memory), 플래시 메모리, 솔리드 스테이트 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 유형들의 비일시적 컴퓨터 판독 가능 매체 또는 이들의 조합들의 임의의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독 가능 매체는 프로세서(들)(144)에 의해 액세스될 수 있는 임의의 매체일 수 있고 휘발성 매체, 비휘발성 매체 등을 포함할 수 있다. 매체는 또한 이동식, 비이동식 등일 수 있다.
통신 디바이스(148)는 FDMA(frequency division multiple access), SC-FDMA(single carrier FDMA), TDMA(time division multiple access), CDMA(code division multiple access), OFDM(orthogonal frequency-division multiplexing), OFDMA(orthogonal frequency-division multiple access), GSM(Global System for Mobile) 통신, GPRS(general packet radio service), UMTS(universal mobile telecommunications system), cdma2000, W-CDMA(wideband CDMA), HSDPA(high-speed downlink packet access), HSUPA(high-speed uplink packet access), HSPA(high-speed packet access), LTE(long term evolution), LTE-A(LTE Advanced), 802.11x, Wi-Fi, Zigbee, UWB(Ultra-WideBand), 802.16x, 802.15, HnB(home Node-B), Bluetooth, RFID(radio frequency identification), IrDA(infrared data association), NFC(near-field communications), 5G(fifth generation), NR(new radio), 또는 하나 이상의 안테나를 통한 통신을 위한 임의의 다른 무선 또는 유선 디바이스/트랜시버로서 구성될 수 있다. 안테나는 단일(singular), 어레이(arrayed), 위상(phased), 스위칭(switched), 빔포밍(beamforming), 빔스티어링(beamsteering) 등일 수 있다.
하나 이상의 프로세서(들)(144)는 버스(142)를 통해, 플라스마, LCD(liquid crystal display), LED(light emitting diode), FED(field emission display), OLED(organic light emitting diode), 플렉서블 OLED, 플렉서블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, HD(high definition) 디스플레이, Retinaⓒ 디스플레이, IPS(in-plane switching) 등 기반 디스플레이와 같은, 디스플레이 디바이스(150)에 더 결합될 수 있다. 디스플레이 디바이스(150)는 입력/출력(I/O)을 위한 본 기술 분야의 통상의 기술자에 의해 이해되는 바와 같은 저항성, 용량성, 표면 탄성파(SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 불완전 전반사(frustrated total internal reflection) 등을 사용하는 터치, 3차원(3D) 터치, 다중 입력 터치, 또는 다중 터치 디스플레이로서 구성될 수 있다.
키보드(152) 및, 컴퓨터 마우스, 터치패드 등과 같은, 컨트롤 디바이스(154)는 컴퓨팅 시스템 또는 환경(140)에 대한 입력을 위해 버스(142)에 더 결합될 수 있다. 추가적으로, 입력은 컴퓨팅 시스템 또는 환경(140)에 이와 통신하는 다른 컴퓨팅 시스템을 통해 원격으로 제공될 수 있거나, 또는 컴퓨팅 시스템 또는 환경(140)은 자율적으로 작동할 수 있다.
메모리(146)는 하나 이상의 프로세서(들)(144)에 의해 실행되거나 프로세싱될 때 기능성을 제공하는 소프트웨어 컴포넌트들, 모듈들, 엔진들 등을 저장할 수 있다. 이것은 컴퓨팅 시스템 또는 환경(140)을 위한 OS(156)를 포함할 수 있다. 모듈들은 애플리케이션 특정 프로세스들 또는 그의 파생물들을 수행하기 위한 커스텀 모듈(158)을 더 포함할 수 있다. 컴퓨팅 시스템 또는 환경(140)은 추가적인 기능성을 포함하는 하나 이상의 추가적인 기능 모듈(160)을 포함할 수 있다. 예를 들어, 인증 시스템은 특정 구성 및 툴링 로봇 프로세스 자동화 방법을 컴퓨팅 시스템 또는 환경(140)에 제공하기 위해 모듈들(158 및 160) 중 하나 이상에서 구현될 수 있다.
컴퓨팅 시스템 또는 환경(140)은 온라인 플랫폼, 서버, 임베디드 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, PDA(personal digital assistant), 셀폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 디바이스, 클라우드 컴퓨팅 디바이스, 모바일 디바이스, 스마트폰, 고정 모바일 디바이스, 스마트 디스플레이, 웨어러블 컴퓨터 등으로서 역할하도록 적응되거나 구성될 수 있다.
본 명세서에서 주어진 예들에서, 모듈들은 커스텀 VLSI(very Large scale integration) 회로들 또는 게이트 어레이들, 로직 칩들, 트랜지스터들 또는 다른 개별 컴포넌트들과 같은 기성품 반도체들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그래머블 게이트 어레이들, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스들, 그래픽 프로세싱 유닛들 등과 같은 프로그래밍 가능 하드웨어 디바이스들로 구현될 수 있다.
모듈은 다양한 유형들의 프로세서들에 의한 실행을 위해 적어도 부분적으로 소프트웨어로 구현될 수 있다. 식별된 실행 가능 코드 유닛은, 예를 들어, 객체, 프로시저, 루틴, 서브루틴 또는 함수로서 구성될 수 있는 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록을 포함할 수 있다. 식별된 모듈의 실행 파일들은, 논리적으로 함께 결합될 때, 모듈을 구성하도록 상이한 위치들에 병치되거나 저장된다.
실행 가능 코드의 모듈은 단일 명령어, 하나 이상의 데이터 구조, 하나 이상의 데이터 세트, 여러 상이한 코드 세그먼트들에 걸쳐, 여러 프로그램들 간에, 여러 메모리 디바이스들에 걸쳐 등으로 분산되어 있는 복수의 명령어들 등일 수 있다. 동작 또는 기능 데이터는 본 명세서에서 모듈들 내에서 식별되고 예시될 수 있으며, 적합한 형태로 구체화되고 임의의 적합한 유형의 데이터 구조 내에 구성될 수 있다.
본 명세서에서 주어진 예들에서, 컴퓨터 프로그램은 하드웨어, 소프트웨어 또는 하이브리드 구현으로 구성될 수 있다. 컴퓨터 프로그램은 서로 작동 가능하게 통신하고 정보 또는 명령어들을 전달하는 모듈들로 구성될 수 있다.
비록 특징들 및 요소들이 특정 조합들로 위에서 기술되어 있지만, 본 기술 분야의 통상의 기술자는 각각의 특징 또는 요소가 단독으로 또는 다른 특징들 및 요소들과 임의의 조합으로 사용될 수 있음을 이해할 것이다. 추가적으로, 본 명세서에서 기술된 방법들은 컴퓨터 또는 프로세서에 의해 실행하기 위한 컴퓨터 판독 가능 매체에 포함된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 컴퓨터 판독 가능 매체의 예들은 (유선 또는 무선 연결들을 통해 전송되는) 전자 신호들 및 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 저장 매체의 예들은 ROM(read only memory), RAM(random access memory), 레지스터(register), 캐시 메모리, 반도체 메모리 디바이스, 내부 하드 디스크 및 이동식 디스크와 같은 자기 매체, 자기 광학 매체, 그리고 CD-ROM 디스크 및 DVD(digital versatile disk)와 같은 광학 매체를 포함하지만, 이에 제한되지 않는다.
이제 도 2를 참조하면, 블록 다이어그램은 하나 이상의 실시예에 따른 인증 시스템 내의 하나 이상의 프로세서에 의해 실행되는 프로세스 흐름(200)을 예시한다. 보다 상세하게는, 프로세스 흐름(200)은 인증 시스템에 의한 인증 동작들을 위한 방법의 예시적인 구현이다. 일반적으로, 인증 시스템(예를 들면, 인증 절차의 적어도 일부의 기능들을 수행하는 소프트웨어 및/또는 하드웨어)은 다중 요소 인증을 활용하는 온라인 플랫폼에 로그인하는 컴퓨팅 디바이스의 로봇 프로세스들과 관련하여 실행된다. 하나 이상의 실시예에 따르면, 인증 동작들 및 인증 시스템은 하드웨어 및/또는 프로세서 실행 가능 명령어들, 컴퓨터 코드, 및/또는 프로그래밍 언어들에 의해 구현된다. 게다가, 하나 이상의 실시예에 따르면, 인증 동작들 및 인증 시스템은 온라인 플랫폼의 다중 요소 인증 프레임워크의 일부일 수 있다.
프로세스 흐름(200)은, 인증 시스템이 적어도 고유한 이름을 포함하는 자격증명 자산을 생성하는, 블록(210)에서 시작한다. 자격증명 자산은 사용자 또는 디바이스에 첨부된, 자격(qualification), 능력(competence) 및/또는 허가(clearance)의 증거와 같은, (어떤 서비스를 얻기 위한) 디지털 기반 자격증명들을 포함한다. 이와 관련하여, 자격증명 자산은 사용자 또는 디바이스에 관한 무언가를 증명할 수 있으며, 이름(예를 들면, 고유한 이름), 출생 정보, 제조 정보, 식별 정보 및/또는 생체 측정 정보를 포함할 수 있다. 자격증명 자산은 로봇 프로세스가 인증을 필요로 하는 작업을 실행하는 것에 응답하여 생성될 수 있으며, 여기서 로봇 프로세스는 컴퓨팅 디바이스 상에서 실행되고 있다. 예를 들어, 컴퓨팅 디바이스 상에서 실행되는 로봇 프로세스는 온라인 플랫폼에 연결하고, (로봇 프로세스 또는 작업의) 고유한 이름을 사용하여 그에 대한 로그인을 시도한다. 온라인 플랫폼의 인증 시스템은, 연결에 응답하여, (예를 들면, 사용자 디바이스로부터의 사용자 입력과 관련하여) 자격증명 자산을 생성하고 저장한다.
블록(230)에서, 인증 시스템은 고유한 이름을 사용하여 자격증명 자산에 대한 하나 이상의 토큰을 페치한다(예를 들면, 메모리로부터 검색함). 즉, 인증 시스템은 로봇 프로세스 또는 작업의 고유한 이름을 사용하여 해당 고유한 이름과 연관된 모든 토큰들을 페치하고/하거나 얻는다. 인증 시스템에 의해 페치되는 토큰은 동작을 수행할 권한을 나타내는 임의의 객체(소프트웨어 또는 코딩된 하드웨어에 저장됨)를 포함한다. 하나 이상의 토큰의 예들은 푸시 토큰(예를 들면, 액세스 제어 동작들을 나타내는 고유한 키, 액세스 핸들, 또는 시스템 객체), 보안 토큰(예를 들면, 토큰 또는 암호화 토큰) 및 세션 토큰(예를 들면, 상호작용 세션의 고유 식별자)을 포함할 수 있지만 이에 제한되지 않는다. 토큰들은, 프라이머리(primary) 또는 가장(impersonation) 유형들과 같은, 하나 이상의 유형으로 나올 수 있으며, 사용자 식별자, 그룹 식별자, 세션 식별자 및 특권 식별자 필드들과 같은, 다양한 필드들을 포함할 수 있다.
블록(250)에서, 인증 시스템은 하나 이상의 토큰 각각에 대한 통지를 호출한다. 통지는 임의의 디바이스에, 임의의 곳에 그리고 임의의 때에(예를 들면, 사용자 디바이스에) 도달할 수 있는 메시지이다. 예시적인 통지는 푸시 통지 URL(uniform resource locator)을 포함할 수 있다. 인증 시스템은 통지를 송신하고 하나 이상의 토큰을 사용자 디바이스에 제공할 수 있다. 예를 들어, 사용자 디바이스에 대한 호출이 이루어질 수 있고, 통지가 사용자 디바이스에 의해 디스플레이될 수 있다.
블록(270)에서, 인증 시스템은 자격증명 자산의 코드에 대해 폴링한다(예를 들면, 사용자 디바이스를 폴링함). 코드는 임의의 영숫자 조합일 수 있다. 블록(290)에서, 인증 시스템은 작업을 실행하기 위한 인증을 위해 코드를 활용한다. 하나 이상의 실시예에 따르면, 코드는 통지에 응답하여 자격증명 자산을 업데이트하기 위해 사용자 디바이스로부터 인증 시스템에 의해 수신되고 활용될 수 있다. 업데이트된 자격증명 자산은 이어서 로봇 프로세스에 의해 온라인 플랫폼에 로그인하는 데 사용된다.
이제 도 3 내지 도 6을 참조하면, 하나 이상의 실시예에 따른 인증 시스템의 컴포넌트들 및 동작들이 기술된다. 도 3은 인증 시스템(300)(예를 들면, 인증 절차의 적어도 일부의 기능들을 수행하는 소프트웨어 및/또는 하드웨어)의 예시이다. 도 3에 도시된 바와 같이, 인증 시스템(300)은 (파선 화살표들 A 및 B로 도시된 바와 같이) 온라인 플랫폼(315)과 통신하는 사용자 디바이스(305) 및 컴퓨팅 디바이스(310)를 포함한다.
사용자 디바이스(305)는 하나 이상의 사용자 디바이스를 나타내며, 각각은 적어도 프로세서, 메모리, 및 사용자 인터페이스를 갖는 디스플레이를 포함한다. 사용자 디바이스(305)의 예들은 개인용 컴퓨터, PDA, 셀폰, 태블릿 컴퓨팅 디바이스, 모바일 디바이스 및 스마트폰을 포함하지만 이에 제한되지 않는다. 사용자 디바이스(305)는 사용자 디바이스(305)의 디스플레이 상의 하나 이상의 화면(예를 들면, 사용자 인터페이스)을 제공하는 로컬 애플리케이션(320)(예를 들면, 모바일 애플리케이션)을 실행할 수 있다. 로컬 애플리케이션(320)은 사용자 인터페이스를 통해 사용자로부터 입력들을 수신할 수 있고, 다중 요소 인증 동작들과 관련한 하나 이상의 코드(325)를 수신할 수 있으며, 인증 엔진(330)과 통신할 수 있다.
컴퓨팅 디바이스(310)는 하나 이상의 작업(340)을 실행하는 하나 이상의 로봇 프로세스(335)를 지원하는 하나 이상의 디바이스를 나타낸다. 각각의 컴퓨팅 디바이스(310)는 적어도 프로세서 및 메모리(및 선택적으로 사용자 인터페이스를 갖는 디스플레이)를 포함한다. 컴퓨팅 디바이스(310)의 예들은 개인용 컴퓨터, 태블릿 컴퓨팅 디바이스 및 데스크톱 디바이스를 포함하지만 이에 제한되지 않는다. 로봇 프로세스(335)는 사용자 자격증명들(345)을 사용하여 온라인 플랫폼(315)에 로그인하려고 시도할 수 있다. 인증 엔진(330)이 컴퓨팅 디바이스(310)에 대해 로컬인 것으로 도시되어 있지만, 인증 엔진(330)이 또한, 또는 대안으로, 온라인 플랫폼(315)에 로컬이거나, 사용자 디바이스(305)에 로컬이거나, 인증 시스템(300)의 다른 컴포넌트들과 통신하는 독립형 하드웨어/소프트웨어 조합일 수 있다는 점에 유의한다. 사용자 디바이스(305)와 컴퓨팅 디바이스(310)가 (파선 화살표 C1에 의해 도시된 바와 같이) 직접 통신할 수 있고/있거나 (파선 화살표들 C2 및 C3에 의해 도시된 바와 같이; 중계 서버의 파선 경계(350)는 이 컴포넌트를 선택적인 것으로 나타냄) 선택적으로 중계 서버(350)를 통해 통신할 수 있다는 점에 유의한다.
온라인 플랫폼(320)은 네트워크들, 서버들(예를 들면, 중계 서버(350)), 스토리지 서비스들, 운영 체제들, 데이터베이스 서비스들 및 보안 서비스들(예를 들면, 인증 엔진(330))을 사용자 디바이스(305) 및/또는 컴퓨팅 디바이스(310)에 제공하는 하나 이상의 소프트웨어 기반, 인프라스트럭처 기반, 플랫폼 기반 서비스를 나타낸다. 인증 엔진(330)은, 자격증명 자산들(354)이 거기서 생성, 저장 및 관리되도록, 온라인 플랫폼의 하나 이상의 프로세서/디바이스/시스템 상에서 동작할 수 있다. 인증 시스템(300) 내의 화살표들 A, B, C1, C2 및 C3이 유선 및/또는 무선 연결들, 네트워크들 등을 통해 전송되는 통신을 나타낸다는 점에 유의한다. 게다가, 인증 시스템(300)의 각각의 아이템 또는 컴포넌트에 대해 단일 블록이 도시되어 있지만, 해당 단일 블록은 해당 아이템 또는 컴포넌트 중 하나 이상을 나타낸다.
하나 이상의 실시예에 따르면, 로컬 애플리케이션(320)과 로봇 프로세스(335)가 필요한 정보 모두를 서로에게 통신할 수 있도록 자격증명 자산(354)은 데이터를 저장한다. 이는 단지 코드(325) 이상의 것을 포함한다. 예를 들어, 자격증명 자산(354)은, 자산 이름, 설명, 사용자 이름 및 패스워드와 같은, 하나 이상의 필드를 가질 수 있다.
자산 이름은 이중 요소 인증(2FA) 자산의 이름(예를 들면, "PENDING_2FA_ASSET_etc" 또는 2FA 자산들을 페치할 때 로컬 애플리케이션(320)이 탐색할 수 있는 고유한 어떤 것)일 수 있다.
설명은 2FA 트랜잭션에 대한 정보가 저장되는 필드일 수 있다. 정보는, 본 명세서에서 상술된 바와 같이, JSON 문자열과 같은, 문자열일 수 있다. 게다가, 정보는 프로세스, 로봇, 에포크(epoch), 웹사이트, 이메일 및 needsCode를 포함할 수 있다. 하나 이상의 실시예에 따르면, 설명은 250 문자 제한을 가질 수 있으며, 따라서 인증 시스템(300)은 이 정보를 JSON 문자열, 쉼표로 구분된(comma-delimited) 문자열, 또는 다른 어떤 것으로서 압축하도록 보장한다.
Figure pct00001
프로세스는 로봇 프로세스(335)가 실행 중인 작업(340)의 이름일 수 있다. 로봇은 작업(340)을 실행 중인 로봇 프로세스(335)의 이름일 수 있다. 에포크는 로봇 프로세스(335)가 코드(325)를 마지막으로 송신한 에포크일 수 있다(따라서 로컬 애플리케이션(320)은 너무 많은 시간이 경과했는지를 알 수 있다). 웹사이트는 로봇 프로세스(335)가 로그인하려고 시도하고 있는 이메일 서비스/웹사이트일 수 있다. 이메일은 로봇 프로세스(335)가 로그인하려고 시도하는 데 사용하는 이메일/사용자 이름일 수 있다. needsCode는 로봇 프로세스(335)가 현재 코드를 필요로 하는지를 나타내는 불 연산자(Boolean operator)일 수 있다. 예를 들어, needsCode가 '1'인 경우, 로봇 프로세스(335)는 로컬 애플리케이션(320)이 코드(325)를 공급하기를 기다리고 있다. NeedsCode가 '0'인 경우, 로컬 애플리케이션(320)은 코드(325)(예를 들면, 2FA 코드)를 패스워드 필드에 설정하고 이를 저장하였다.
자격증명 자산(354)의 사용자 이름은, 일부 경우에, 코드(325)(예를 들면, 2FA 코드)를 포함할 수 있는 유연한 필드이다. 패스워드는 2FA 코드를 수신하는 필드일 수 있다. 로봇 프로세스(335)는 자격증명 자산(354)에서 2FA 코드를 볼 수 있다. 그러나, 오케스트레이터 사용자들은 자격증명 자산(354)에서 2FA 코드를 볼 수 없다. 이러한 방식으로, 인증 시스템(300)은 비인가된 사용자들(예를 들면, 오케스트레이터 사용자들)에 의한 스누핑을 방지하는 기술적 효과 및 이점들을 제공한다.
도 4를 참조하면, 도 3의 컴퓨팅 환경(300)에 의해 실행되는 프로세스 흐름(400)을 예시하는 블록 다이어그램이 도시되어 있다. 게다가, 도 5 및 도 6은 하나 이상의 실시예에 따른 사용자 인터페이스 흐름들(500 및 600)을 예시하는 블록 다이어그램들이다.
프로세스 흐름(400)은, 링크가 확립되는, 블록(410)에서 시작한다. 링크는 (예를 들면, 중계 서버(350)를 통해) 사용자 디바이스(305)의 로컬 애플리케이션(320)과 컴퓨팅 디바이스(310)의 인증 엔진(330) 사이에 있을 수 있다. 링크는 인증 시스템(300)이 사용자 디바이스(305)에서의 사용자 입력에 따라 자격증명 자산(354)을 생성할 수 있게 한다. 로봇 프로세스(335)는 자격증명 자산(354)을 사용하여 온라인 플랫폼(315)(또는 다른 외부 서비스)에 로그인한다.
일반적으로, 사용자 디바이스(305)를 조작하는 사용자는 사용자 디바이스(305)의 푸시 토큰을 내부에 가지고 있는 자산의 생성을 야기할 수 있다. 로봇 프로세스(335)는 로봇 프로세스(335)가 다중 요소 인증(예를 들면, 자격증명 자산(354)을 사용하는 2 요소 문제)에 직면할 때 푸시 통지를 사용자 디바이스(305)로 송신하기 위해 해당 푸시 토큰을 풀링할 수 있다. 예를 들어, 블록(410) 내에서, 각각의 사용자 자격증명(345)에 대한 푸시 토큰(355)이 생성(generate/create)되고 자격증명 자산(354) 내에 저장된다. 푸시 토큰(355)의 기술적 효과들 및 이점들은 사용자 디바이스(305) 상의 사용자가 어느 자격증명 자산들(354)이 자신의 사용자 디바이스(305)와 연관되기를 원하는지를 선택할 수 있게 하여, 사용자가 해당 선택된 자격증명 자산들(354)에 대한 2 요소 코드들을 요청하는/필요로 하는 ‘푸시 통지들(PushNotifications)’을 수신하도록 한다.
도 5를 참조하면, 푸시 토큰을 생성하는 것은, 각각이 하나 이상의 구성 가능한 셀을 포함하는, 자산 세부사항 화면들(501, 502, 503)과 관련하여 기술된다. 예를 들어, 자산 세부사항 화면(501)의 하나의 셀은, 유형을 선택하는 것과 함께, 인에이블시키는 것 및 자격증명 자산을 생성하는 것을 위한 토글(511)을 포함한다. 자산 세부사항 화면(501)의 다른 셀들은 이름(512), 설명, 유형, 범위, 사용자 이름 및 패스워드를 포함한다. 자산 세부사항 화면(502)의 셀들은 토글(521), 푸시 토큰(PushToken)(522), 이름, 설명, 유형, 범위, 사용자 이름 및 패스워드를 포함할 수 있는 반면, 자산 세부사항 화면(503)의 셀들은 푸시 토큰, 이름, 설명, 유형, 범위 및 전역 값(global value)을 포함한다.
자산 세부사항 화면(501)은 로컬 애플리케이션(320)(예를 들면, 모바일 애플리케이션)을 실행하고 있는 사용자 디바이스(305)의 사용자 인터페이스 및 디스플레이에 의해 생성/제공될 수 있다. 하나 이상의 실시예에 따르면, 토글(511)은 오케스트레이터 인스턴스들에 대한 자산 세부사항 화면(501) 상에만 표시된다. 토글(511)은 자격증명 자산이 보류 중인 2FA인지를 표시하지 않는다. 토글(511)이 인에이블될 때, 인증 시스템(340) 및/또는 사용자 디바이스(305)는 (사용자가 아직 등록하지 않은 경우) 푸시 통지들을 위해 등록하도록 사용자를 프롬프트한다. 사용자가 수락/등록하고 사용자 디바이스(305)가 푸시 토큰을 얻을 때, 로컬 애플리케이션(320)은 푸시 토큰을 사용하여 'TextAsset'을 생성한다. TextAsset의 이름(512)은 PushToken_<AssetID>_<DeviceUUID>를 포함할 수 있으며, 여기서 AssetID는 이 자격증명 자산의 ID(identification)이고 DeviceUUID는 사용자 디바이스(305)의 ID(identification)이다. 하나 이상의 실시예에 따르면, TextAsset은 다음 코드에 따라 생성/게시될 수 있다:
Figure pct00002
후속적으로(화살표(538) 참조), 자산 세부사항 화면(502)은 이름(512)(예를 들면, PushToken_<AssetID>_<DeviceUUID>)과 관련하여 페칭하는 것에 의해 이 푸시 토큰(522)을 표시할 수 있다. 하나 이상의 실시예에 따르면, 페치 동작은 다음 코드에 따라 수행될 수 있다:
Figure pct00003
푸시 토큰(522)의 자산 세부사항 화면(503)으로 직접 이동하기 위해 푸시 토큰(522)(예를 들면, "Auto-Generated PushToken Asset") 셀이 눌러질 수 있다. 다음 코드에 따라 푸시 토큰(522)을 삭제하고 화면을 원래 상태(예를 들면, 자산 세부사항 화면(501))로 복귀시키기 위해 토글(511)이 또한 '오프'로 토글될 수 있음에 유의한다:
Figure pct00004
추가적으로, 사용자 인터페이스 및 로컬 애플리케이션(320)은, 2FA 탭에서, 상부 액션 버튼(예를 들면, “View your 2FA Push Token Assets”)이 사용자가 푸시 토큰(522)을 볼 수 있게 하는 "QuickActions" 화면을 또한 포함한다. 예를 들어, 상부 액션 버튼을 누르는 것은 생성된 푸시 토큰(522)만을 표시하도록 필터링된 자산들 탭으로 사용자를 안내하며, 이 탭은 다음 코드에 따라 "푸시 토큰"과 사용자의 DeviceUUID를 포함하는 자산들을 페치하는 것에 의해 획득된다:
Figure pct00005
로컬 애플리케이션(320)의 사용자 인터페이스는 또한 푸시 토큰(522)에 대한 자격증명 자산(354)과 대조하기 위해 자산 세부사항 뷰들을 열 수 있는 것은 물론, 푸시 토큰(522)을 삭제하기 위해 '...' 버튼을 누를 수 있다. 하나 이상의 동작에 따라, 로컬 애플리케이션(320)은 유지 관리 동작들을 실행할 수 있다. 예를 들어, 사용자가 로컬 애플리케이션(320)에 로그인하거나 로컬 애플리케이션(320)으로 복귀할 때, 로컬 애플리케이션(320)은 푸시 토큰들(522) 모두를 페치하고 푸시 토큰들(522) 중 임의의 것이 오래된 것인지를 검사할 수 있다. 임의의 푸시 토큰들(522)이 오래된 것인 경우에, 로컬 애플리케이션(320)은 다음 코드에 따라 각각의 자격증명 자산(350)을 새로운 푸시 토큰(522)으로 업데이트한다.
Figure pct00006
Figure pct00007
따라서 기술적 효과 및 이점들은 어느 자산들이 2FA 푸시 통지들을 수신할 것인지를 사용자가 구체적으로 선택할 수 있게 하는 것 및 자격증명 자산의 구성 가능성 및 토큰들의 사용으로 인해 인증 시스템의 하드 코딩을 피하는 것을 포함한다.
블록(415)에서, 로봇 프로세스(335)는 작업(340)을 실행(실행하기 시작)한다. 차례로, 로봇 프로세스(335)는 온라인 플랫폼(315)에 액세스하려고 시도한다(예를 들면, 파선 화살표 B). 작업(340)을 실행하는 것 및 온라인 플랫폼(315)에 액세스하거나 로그인하는 것은 수동이거나, 스케줄에 의하거나, 트리거에 의하거나, 큐에 의하거나 할 수 있다. 하나 이상의 실시예에 따르면, 작업(335)이 온라인 플랫폼(315)(예를 들면, 이메일 서비스/웹사이트)의 이메일들을 백업하는 자동화된 프로세스인 경우, 온라인 플랫폼에 액세스하는 것은 매일 스케줄링된 이벤트일 수 있다(예를 들면, 매일 저녁 오후 11:00에 있을 수 있음). 로봇 프로세스(335)는 이메일 서비스/웹사이트에 로그인하기 위해 사용자 자격증명들(345)을 더 사용할 것이다. 사용자 자격증명들(345)의 예는 사용자 이름로서의 이메일 주소 및 패스워드를 포함한다.
블록(420)에서, 로봇 프로세스(335)는 자격증명 자산(354)을 생성(generate/create)한다. 로봇 프로세스(335)는 로컬 애플리케이션(320)이 자격증명 자산(354)을 다중 요소 인증 프레임워크(예를 들면, 2FA 코드 요구 자산(2FA Code Required asset))의 일부로서 인식하도록 특정 셋업으로 자격증명 자산(354)을 생성할 수 있다. 이 자격증명 자산(354)은 로컬 애플리케이션(320)이 알 필요가 있고 사용자에게 디스플레이할 필요가 있는 모든 정보를 포함한다.
블록(425)에서, 로봇 프로세스(335)는 로그인하는 데 사용되는 사용자 자격증명(345)에 대한 푸시 토큰(355)을 페치한다. 로봇 프로세스(335)는 자격증명 자산(354)의 ID(identification)(예를 들면, 도 5의 이름(512))를 사용하는 것에 의해 푸시 토큰들(355) 모두를 페치할 수 있다. 예를 들어, 자격증명 자산(354)이 '12345'의 ID를 갖는 경우, 로봇 프로세스(335)는 "PushToken_12345"라는 이름으로 시작하는 푸시 토큰들(355) 모두를 페치한다. 푸시 토큰들(355)이 없는 경우, 작업(340)이 실패하고 프로세스 흐름(400)이 종료된다.
블록(430)에서, 로봇 프로세스(335)는 블록(425)에서 페치되는 푸시 토큰들(355) 각각에 대한 통지(예를 들면, 푸시 통지 URL)를 호출한다. 예를 들어, 로봇 프로세스(335)는 다음과 같이 페치된 각각의 푸시 토큰(355)에 대해 푸시 통지 URL을 한 번 호출한다:
Figure pct00008
Figure pct00009
"dqCYHs:APAr3IzRSIR"이 모바일 디바이스의 푸시 토큰임에 유의한다. 푸시 토큰 자산은 "Text" 유형이며, 모바일 디바이스의 푸시 토큰은 "StringValue" 필드에 저장된다. "languageCode"는 선택적인 반면, 모든 다른 필드들은 필수이다.
파선 블록(435)(선택적이기 때문에 파선으로 표시됨)에서, 중계 서버(350)는 (예를 들면, 인증 엔진(330)에 의해 사용자 디바이스(305)로, 화살표들 C2 및 C3 참조) 푸시 통지를 송신하도록 경고받는다. 예를 들어, 블록(435)에서 호출된 URL은 중계 서버(350)(예를 들면, 로컬 애플리케이션의 푸시 통지 중계 서버(320))에 도달하고, 중계 서버(350)는 중계 서버(350)에 전달되는 연관된 푸시 토큰(355)과 함께 푸시 통지를 사용자 디바이스(305)로 송신한다.
블록(440)에서, 로봇 프로세스(335)는 자격증명 자산(354)을 폴링한다. 즉, 로봇 프로세스(335)는 블록(420)에서 생성된 자격증명 자산(354)이 하나 이상의 코드(325)를 포함하는지를 검사하기 위해 몇 초마다 자격증명 자산(354)에 대해 폴링하는 동안 2FA 화면 상에서 가만히 있을 수 있다. 로봇 프로세스(335)가 코드(325)가 자격증명 자산(354)의 패스워드 필드에 설정되어 있음을 검출하는 경우, 로봇 프로세스(335)는 코드(325)를 이메일 서비스/웹사이트에 입력할 수 있다. 로봇 프로세스(335)는 설명 JSON의 'needsCode' 속성이 0으로 설정되어 있을 때 코드(325)가 입력되었음을 검출할 수 있다.
블록(445)에서, 사용자 디바이스(305)는 통지 및 코드(325)(예를 들면, 푸시 통지/경고 및 2FA 단문 메시지 서비스(SMS) 메시지)를 수신한다. 즉, 사용자 디바이스(305)는 푸시 통지를 수신하고 로봇 프로세스(335)가 로그인하려고 시도한 이메일 서비스/웹사이트로부터 SMS를 통해 코드(325)(예를 들면, 2FA 코드)를 수신한다. 사용자 디바이스(305)가 열려 있는 동안, 사용자 디바이스(305)는 임의의 보류 중인 요청들에 대해 검사하기 위해 자격증명 자산(354)(예를 들면, "2FA 코드 요구" 자산)에 대해 주기적으로, 예컨대, 30초마다 폴링한다. 사용자 디바이스(305)가 임의의 보류 중인 요청들을 발견하는 경우, 사용자 디바이스(305)는 로컬 애플리케이션(320)에서 경고를 생성한다. 일부 경우에, 로컬 애플리케이션(320)의 사용자 인터페이스는 임의의 보류 중인 "2FA 코드 요구" 자산들을 포함하도록 업데이트될 수 있다. 사용자가 푸시 통지 또는 인앱(in-app) 경고를 탭핑하고 자산의 설명 JSON의 'needsCode' 속성이 1로 설정되어 있을 때, 프로세스 흐름(400)은 블록(450)으로 진행하고 따라서 사용자는 코드(325)를 입력할 수 있다.
블록(450)에서, 로컬 애플리케이션(320)은 코드(325)를 수신할 수 있는 사용자 인터페이스의 화면을 제시한다. 예를 들어, 로컬 애플리케이션(320)은 사용자가 사용자 디바이스(305) 상에서 SMS를 통해 수신된 2FA 코드를 입력할 수 있는 "코드 송신(Send Code)" 모달 화면을 표시한다. 자격증명 자산(354)은 이어서 패스워드 필드에 코드(325)를 포함하도록 로컬 애플리케이션(320)에 의해 업데이트되고, 설명 JSON의 'needsCode' 속성은 0으로 설정된다.
블록(455)에서, 로봇 프로세스(335)가 (블록(440)에 기술된 바와 같이) 폴링했기 때문에, 로봇 프로세스(335)는 (인증 자산(354)이 업데이트되었으므로) 코드(325)를 검색한다. 블록(460)에서, 로봇 프로세스(335)는, 로봇 프로세스(335)가 2FA 코드를 얻고 입력하는 데 성공하는지 여부에 관계없이, 자격증명 자산(354)을 삭제한다. 블록(465)에서, 로봇 프로세스(335)는 작업(340)의 실행을 계속한다.
본 명세서에서의 개시에 비추어 볼 때, 콘텍스트 인식 실행취소-재실행 서비스의 기술적 효과들 및 이점들은 비인가된 사용자들에 의한 스누핑을 방지하는 것 및 로봇 프로세스가 다중 요소 인증으로 온라인 플랫폼에 액세스하는 것을 진행할 수 있게 하는 것을 포함한다.
도면들에서의 플로차트 및 블록 다이어그램들은 본 발명의 다양한 실시예들에 따른 시스템들, 방법들, 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능성, 및 동작을 예시하고 있다. 이와 관련하여, 플로차트 또는 블록 다이어그램들에서의 각각의 블록은 명시된 논리적 기능(들)을 구현하기 위한 하나 이상의 실행 가능 명령어를 포함하는 명령어들의 모듈, 세그먼트, 또는 부분을 표현할 수 있다. 일부 대안적인 구현들에서, 블록들에 표시된 기능들이 도면들에 표시된 순서와 달리 발생할 수 있다. 예를 들어, 연속으로 도시된 2 개의 블록이, 실제로, 실질적으로 동시에 실행될 수 있거나, 또는 블록들이, 때때로, 관여된 기능성에 따라, 역순으로 실행될 수 있다. 블록 다이어그램들 및/또는 플로차트 예시의 각각의 블록, 및 블록 다이어그램들 및/또는 플로차트 예시에서의 블록들의 조합들이 명시된 기능들 또는 동작들을 수행하는 특수 목적 하드웨어 기반 시스템들에 의해 구현될 수 있거나, 또는 특수 목적 하드웨어와 컴퓨터 명령어들의 조합들을 수행할 수 있음에 또한 유의해야 할 것이다.
비록 특징들 및 요소들이 특정 조합들로 위에서 기술되어 있지만, 본 기술 분야의 통상의 기술자는 각각의 특징 또는 요소가 단독으로 또는 다른 특징들 및 요소들과 임의의 조합으로 사용될 수 있음을 이해할 것이다. 추가적으로, 본 명세서에서 기술된 방법들은 컴퓨터 또는 프로세서에 의해 실행하기 위한 컴퓨터 판독 가능 매체에 포함된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 컴퓨터 판독 가능 매체는, 본 명세서에서 사용되는 바와 같이, 전파(radio wave) 또는 다른 자유 전파(freely propagating) 전자기파, 도파관 또는 다른 전송 매체를 통해 전파되는 전자기파(예를 들면, 광섬유 케이블을 통과하는 광 펄스), 또는 전선(wire)을 통해 전송되는 전기 신호와 같은, 일시적 신호 그 자체인 것으로서 해석되어서는 안된다.
컴퓨터 판독 가능 매체의 예들은 (유선 또는 무선 연결들을 통해 전송되는) 전기 신호 및 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 저장 매체의 예들은 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내부 하드 디스크 및 이동식 디스크와 같은 자기 매체, 자기 광학 매체, CD(compact disk) 및 DVD(digital versatile disk)와 같은 광학 매체, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그래밍 가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM) 및 메모리 스틱을 포함하지만 이에 제한되지 않는다. 프로세서는 소프트웨어와 함께 단말, 기지국, 또는 임의의 호스트 컴퓨터에서 사용하기 위한 무선 주파수 트랜시버를 구현하는 데 사용될 수 있다.
본 명세서에서 사용되는 전문용어는 특정의 실시예들을 기술하기 위한 것에 불과하고 제한하는 것으로 의도되지 않는다. 본 명세서에서 사용되는 바와 같이, 단수 형태들("a", "an" 및 "the)"은, 문맥이 명확하게 달리 나타내지 않는 한, 복수 형태들도 포함하는 것으로 의도된다. 용어들 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은, 본 명세서에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것이 더 이해될 것이다.
본 명세서에서의 다양한 실시예들에 대한 설명은 예시의 목적을 위해 제시되었지만, 총망라적이거나 개시된 실시예들로 제한되는 것으로 의도되지 않는다. 많은 수정들 및 변형들이 기술된 실시예들의 범위 및 사상을 벗어나지 않으면서 본 기술 분야의 통상의 기술자에게 명백할 것이다. 본 명세서에서 사용된 전문용어는 실시예들의 원리들, 실용적인 응용 또는 시장에서 발견되는 기술들에 대한 기술적 개선을 가장 잘 설명하기 위해, 또는 본 기술 분야의 통상의 기술자가 본 명세서에 개시된 실시예들을 이해할 수 있게 해주기 위해 선택되었다.

Claims (20)

  1. 컴퓨팅 디바이스에 있어서,
    인증 시스템에 대한 프로세서 실행 가능 명령어들을 저장하도록 구성된 메모리; 및
    상기 메모리에 결합된 적어도 하나의 프로세서
    를 포함하며,
    상기 적어도 하나의 프로세서는 상기 컴퓨팅 디바이스로 하여금:
    상기 인증 시스템에 의해, 적어도 고유한 이름을 포함하는 자격증명 자산을 생성하게 하고;
    상기 인증 시스템에 의해, 상기 고유한 이름을 사용하여 상기 자격증명 자산에 대한 하나 이상의 토큰을 페치하게 하며;
    상기 인증 시스템에 의해, 상기 하나 이상의 토큰 각각에 대한 통지를 호출하게 하고;
    상기 인증 시스템에 의해, 상기 자격증명 자산의 코드에 대해 폴링하게 하며;
    상기 인증 시스템에 의해, 작업을 실행하기 위한 인증을 위해 상기 코드를 활용하게 하기 위해
    상기 인증 시스템을 실행하도록 구성되는 것인, 컴퓨팅 디바이스.
  2. 제1항에 있어서,
    상기 자격증명 자산은 상기 적어도 하나의 프로세서의 로봇 프로세스가 상기 인증을 요구하는 상기 작업을 실행하는 것에 응답하여 생성되는 것인, 컴퓨팅 디바이스.
  3. 제1항에 있어서,
    상기 하나 이상의 토큰은 하나 이상의 푸시 토큰을 포함하는 것인, 컴퓨팅 디바이스.
  4. 제1항에 있어서,
    상기 통지는 푸시 통지 URL(uniform resource locator)을 포함하는 것인, 컴퓨팅 디바이스.
  5. 제1항에 있어서,
    상기 통지는 상기 컴퓨팅 디바이스 및 사용자 디바이스와 통신하는 중계 서버로 하여금 상기 하나 이상의 토큰을 상기 사용자 디바이스에 제공하게 하는 것인, 컴퓨팅 디바이스.
  6. 제1항에 있어서,
    상기 코드는 상기 통지에 응답하여 상기 자격증명 자산을 업데이트하기 위해 상기 인증 시스템에 의해 수신되고 활용되는 것인, 컴퓨팅 디바이스.
  7. 제1항에 있어서,
    상기 자격증명 자산은 사용자 디바이스의 로컬 애플리케이션과 로봇 프로세스가 정보를 통신하도록 데이터를 저장하는 것인, 컴퓨팅 디바이스.
  8. 제1항에 있어서,
    상기 자격증명 자산은 자산 이름 필드, 설명 필드, 사용자 이름 필드, 및 패스워드 필드 중 하나 이상을 포함하는 것인, 컴퓨팅 디바이스.
  9. 제1항에 있어서,
    상기 자격증명 자산은 상기 인증을 요구하는 상기 작업을 실행하는 상기 적어도 하나의 프로세서의 로봇 프로세스에 의해 삭제되는 것인, 컴퓨팅 디바이스.
  10. 제1항에 있어서,
    상기 인증 시스템의 로봇 프로세스는 상기 코드에 대해 상기 자격증명 자산을 폴링하는 것인, 컴퓨팅 디바이스.
  11. 방법에 있어서,
    메모리 및 상기 메모리에 결합된 적어도 하나의 프로세서를 포함하는 인증 시스템에 의해, 적어도 고유한 이름을 포함하는 자격증명 자산을 생성하는 단계;
    상기 인증 시스템에 의해, 상기 고유한 이름을 사용하여 상기 자격증명 자산에 대한 하나 이상의 토큰을 페치하는 단계;
    상기 인증 시스템에 의해, 상기 하나 이상의 토큰 각각에 대한 통지를 호출하는 단계;
    상기 인증 시스템에 의해, 상기 자격증명 자산의 코드에 대해 폴링하는 단계; 및
    상기 인증 시스템에 의해, 작업을 실행하기 위한 인증을 위해 상기 코드를 활용하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서,
    상기 자격증명 자산은 상기 적어도 하나의 프로세서의 로봇 프로세스가 상기 인증을 요구하는 상기 작업을 실행하는 것에 응답하여 생성되는 것인, 방법.
  13. 제11항에 있어서,
    상기 하나 이상의 토큰은 하나 이상의 푸시 토큰을 포함하는 것인, 방법.
  14. 제11항에 있어서,
    상기 통지는 푸시 통지 URL(uniform resource locator)을 포함하는 것인, 방법.
  15. 제11항에 있어서,
    상기 통지는 컴퓨팅 디바이스 및 사용자 디바이스와 통신하는 중계 서버로 하여금 상기 하나 이상의 토큰을 상기 사용자 디바이스에 제공하게 하는 것인, 방법.
  16. 제11항에 있어서,
    상기 코드는 상기 통지에 응답하여 상기 자격증명 자산을 업데이트하기 위해 상기 인증 시스템에 의해 수신되고 활용되는 것인, 방법.
  17. 제11항에 있어서,
    상기 자격증명 자산은 사용자 디바이스의 로컬 애플리케이션과 로봇 프로세스가 정보를 통신하도록 데이터를 저장하는 것인, 방법.
  18. 제11항에 있어서,
    상기 자격증명 자산은 자산 이름 필드, 설명 필드, 사용자 이름 필드, 및 패스워드 필드 중 하나 이상을 포함하는 것인, 방법.
  19. 제11항에 있어서,
    상기 자격증명 자산은 상기 인증을 요구하는 상기 작업을 실행하는 상기 적어도 하나의 프로세서의 로봇 프로세스에 의해 삭제되는 것인, 방법.
  20. 제11항에 있어서,
    상기 인증 시스템의 로봇 프로세스는 상기 코드에 대해 상기 자격증명 자산을 폴링하는 것인, 방법.
KR1020217040194A 2020-07-30 2021-07-29 로봇 프로세스에 대한 요소 인증 KR20230042191A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/944,044 US11647015B2 (en) 2020-07-30 2020-07-30 Factor authentication for robotic processes
US16/944,044 2020-07-30
PCT/US2021/043711 WO2022026715A1 (en) 2020-07-30 2021-07-29 Factor authentication for robotic processes

Publications (1)

Publication Number Publication Date
KR20230042191A true KR20230042191A (ko) 2023-03-28

Family

ID=80004716

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217040194A KR20230042191A (ko) 2020-07-30 2021-07-29 로봇 프로세스에 대한 요소 인증

Country Status (6)

Country Link
US (1) US11647015B2 (ko)
EP (1) EP3973424A4 (ko)
JP (1) JP2023536015A (ko)
KR (1) KR20230042191A (ko)
CN (1) CN114467089A (ko)
WO (1) WO2022026715A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11514154B1 (en) * 2020-01-31 2022-11-29 Automation Anywhere, Inc. Automation of workloads involving applications employing multi-factor authentication
US20230169085A1 (en) * 2021-11-30 2023-06-01 Intuit Inc. Multitenancy in extract, transform, load (etl) pipeline orchestration tools

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685631B1 (en) 2003-02-05 2010-03-23 Microsoft Corporation Authentication of a server by a client to prevent fraudulent user interfaces
US7552467B2 (en) 2006-04-24 2009-06-23 Jeffrey Dean Lindsay Security systems for protecting an asset
KR20070111660A (ko) 2006-05-18 2007-11-22 주식회사 케이티 소프트웨어 로봇을 이용한 개인용 컴퓨터 관리 시스템 및방법
US20100064357A1 (en) 2008-09-09 2010-03-11 Kerstin Baird Business Processing System Combining Human Workflow, Distributed Events, And Automated Processes
US9119067B2 (en) * 2011-06-03 2015-08-25 Apple Inc. Embodiments of a system and method for securely managing multiple user handles across multiple data processing devices
US8554855B1 (en) 2011-06-14 2013-10-08 Urban Airship, Inc. Push notification delivery system
WO2013063326A1 (en) 2011-10-25 2013-05-02 Toopher, Inc. Two-factor authentication systems and methods
US9098687B2 (en) 2013-05-03 2015-08-04 Citrix Systems, Inc. User and device authentication in enterprise systems
US20150180849A1 (en) 2013-12-20 2015-06-25 Verisec AB Mobile token
US9990485B2 (en) * 2014-09-26 2018-06-05 Assa Abloy Ab Anti-passback algorithm for reading a public or secure object
US9692752B2 (en) * 2014-11-17 2017-06-27 Bank Of America Corporation Ensuring information security using one-time tokens
US10440016B2 (en) * 2014-12-09 2019-10-08 Duo Security, Inc. System and method for applying digital fingerprints in multi-factor authentication
US9961070B2 (en) 2015-09-11 2018-05-01 Drfirst.Com, Inc. Strong authentication with feeder robot in a federated identity web environment
US10110740B2 (en) * 2017-03-24 2018-10-23 Vonage Business Inc. Systems and methods for providing call verification
US10802453B2 (en) 2017-06-02 2020-10-13 Bank Of America Corporation Robotics process automation macro bot
US10437984B2 (en) 2017-10-26 2019-10-08 Bank Of America Corporation Authentication protocol elevation triggering system
US10917409B2 (en) 2018-04-19 2021-02-09 Microsoft Technology Licensing, Llc System and method to securely execute datacenter management operations remotely
US20200013500A1 (en) * 2018-07-03 2020-01-09 Eric Mora Cloud-based system for caregiver and client for credentialing, patient referrals, clinical documentation, and scheduling
US10764290B2 (en) 2018-08-23 2020-09-01 Accenture Global Solutions Limited Governed access to RPA bots
US10960541B2 (en) * 2018-12-10 2021-03-30 Accenture Global Solutions Limited Analytical robotic process automation
US11556362B2 (en) * 2019-03-31 2023-01-17 Automation Anywhere, Inc. Robotic process automation system with device user impersonation
US11243803B2 (en) * 2019-04-30 2022-02-08 Automation Anywhere, Inc. Platform agnostic robotic process automation
JP7299499B2 (ja) * 2019-09-30 2023-06-28 富士通株式会社 情報処理プログラム、情報処理方法及び情報処理装置
US11016789B2 (en) * 2019-10-11 2021-05-25 UiPath, Inc. Robot browser embedding
US11204676B2 (en) * 2019-10-24 2021-12-21 Vmware, Inc. Enterprise workspace notifications service
US10654166B1 (en) 2020-02-18 2020-05-19 UiPath, Inc. Automation windows for robotic process automation
US20210314339A1 (en) * 2020-04-07 2021-10-07 Cyberark Software Ltd. On-demand and proactive detection of application misconfiguration security threats
US11934175B2 (en) * 2020-10-02 2024-03-19 Sap Se Robotic process automation for remote assistance

Also Published As

Publication number Publication date
WO2022026715A1 (en) 2022-02-03
JP2023536015A (ja) 2023-08-23
US11647015B2 (en) 2023-05-09
EP3973424A1 (en) 2022-03-30
EP3973424A4 (en) 2023-01-11
CN114467089A (zh) 2022-05-10
US20220038445A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
US11738453B2 (en) Integration of heterogeneous models into robotic process automation workflows
KR102253980B1 (ko) 로봇 브라우저 임베딩
CN115243838A (zh) 针对机器人流程自动化(rpa)机器人的会话间自动化
KR20210156192A (ko) 로봇 프로세스 자동화를 위한 애플리케이션 통합
US20240265081A1 (en) Facial recognition framework using deep learning for attended robots
KR20230042191A (ko) 로봇 프로세스에 대한 요소 인증
US20230108145A1 (en) Cloud migration
US20230373087A1 (en) Localized configurations of distributed-packaged robotic processes
KR20230043025A (ko) 컴퓨팅 플랫폼의 엔티티 엔진
EP4276621A1 (en) Cloud triggers for scheduling robots
US12058118B2 (en) Standardized authentication mechanism integrating diverse software platforms
EP3806419A1 (en) Robot browser embedding
US12026535B2 (en) System and computer-implemented method for controlling a robot of a virtual machine
KR20230061197A (ko) 로봇 프로세스에 의한 동적 로봇 트레이