KR20060120148A - 서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법및 장치 - Google Patents

서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법및 장치 Download PDF

Info

Publication number
KR20060120148A
KR20060120148A KR1020067010247A KR20067010247A KR20060120148A KR 20060120148 A KR20060120148 A KR 20060120148A KR 1020067010247 A KR1020067010247 A KR 1020067010247A KR 20067010247 A KR20067010247 A KR 20067010247A KR 20060120148 A KR20060120148 A KR 20060120148A
Authority
KR
South Korea
Prior art keywords
server
user
client
computing device
authentication data
Prior art date
Application number
KR1020067010247A
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 KR20060120148A publication Critical patent/KR20060120148A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • 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/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • 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
    • 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
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

서버 기반의 컴퓨팅 환경에서 유저를 서버에 원격 인증하기 위한 방법과 장치가 개시된다. 클라이언트 컴퓨팅 디바이스는 유저 크리덴셜을 수신하고 이 수신된 크리덴셜에 기초하여 유저 인증 데이터를 형성한다. 클라이언트 컴퓨팅 디바이스는 형성된 유저 인증 데이터를 서버 컴퓨팅 디바이스에 전송한다. 서버 컴퓨팅 디바이스는 전송된 유저 인증 데이터에 응답하여 유저를 인증한다. 서버 컴퓨팅 디바이스는 전송된 유저 인증 데이터에 기초하여 새로운 유저 인증 데이터를 형성한다. 서버 컴퓨팅 디바이스는 제2 서버에 새로운 유저 인증 데이터를 전송한다. 제2 서버는 수신된 유저 인증 데이터에 응답하여 유저를 인증한다.
유저 크리덴셜, 유저 인증 데이터, 원격 인증, 클라이언트, 서버, 씬 클라이언트

Description

서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법 및 장치{METHODS AND APPARATUS FOR REMOTE AUTHENTICATION IN A SERVER-BASED COMPUTING SYSTEM}
본 발명은 서버 기반 컴퓨팅 시스템에서의 분산 어플리케이션 처리를 제공하기 위한 방법 및 장치에 관한 것으로, 특히, 이런 시스템에서의 원격 인증 기술에 관한 것이다.
네트워크화 리소스에의 원격 액세스를 제공하기 위한 기술들은 각종 클라이언트/서버 소프트웨어 조합을 포함한다. 이들 기술 중 하나는 종종 "씬 클라이언트(thin-client)" 또는 "서버 기반의 컴퓨팅" 시스템으로 불리고 있다. 이들 시스템에서, 어플리케이션 프로그램은 하나 이상의 클라이언트 컴퓨팅 디바이스 대신에 서버 컴퓨팅 디바이스에 의해 실행된다. 어플리케이션에의 유일한 클라이언트 입력과 어플리케이션 출력은 클라이언트 컴퓨팅 디바이스와 서버 컴퓨팅 디바이스 간에 전송된다. 이들 시스템은 일반적으로 어플리케이션이 이들 대신에 서버 컴퓨팅 디바이스에 의해 실행되기 전에 클라이언트 컴퓨팅 디바이스의 유저가 스스로 인증할 것을 요구한다.
클라이언트 컴퓨팅 디바이스는 디바이스를 이용하기 전에 유저가 로컬 로그온할 것을 요구할 수 있다. 클라이언트 컴퓨팅 디바이스에의 로컬 로그온은 유저 네임과 패스워드를 보통 필요로 하지만, 많은 클라이언트 운영 시스템은 로그온 기구를 대체하고 있는데, 예를 들어, 토큰 기반의 기구, 스마트카드나 지문과 같은 생체 인식으로 유저가 로그온하게 하고 있다.
클라이언트 컴퓨팅 디바이스에의 인증에도 불구하고, 유저는 종종 서버 컴퓨팅 디바이스에 더 인증할 필요가 있게 된다. 그러나, 상술된 것과 같은 대체 로그온 기구를 이용하는 경우, 유저는 서버 컴퓨팅 디바이스가 유저네임과 패스워드만을 허용하게 되기 때문에 서버 컴퓨팅 디바이스에 인증할 수가 없게 되고; 유저가 생체 인식 또는 스마트 카드와 같은 기술을 이용하여 인증한 경우에는, 유저가 서버 컴퓨팅 디바이스에의 인증에 이용할 유효 유저네임-패스워드 조합을 알지 못할 수도 있다. 몇 기술들은 유저 공급 유저 네임-패스워드 조합의 클라이언트 컴퓨팅 디바이스에 의해서 가능하게 된다. 그러나, 이들 기술들은 표준 인증 기구가 대체되는 경우에는 작용하지 않게 된다.
따라서, 씬 클라이언트 시스템의 유저를 원격 인증하는 개선된 방법이 요망되고 있다.
본 발명은 일 형태에서 클라이언트 컴퓨팅 디바이스의 유저를 원격 인증하기 위해서, 플로리다 포트 로우더데일 소재의 시트릭스 시스템사에 의해 제조된 ICA 프로토콜과 같은 씬 클라이언트 프로토콜, 또는 워싱톤 레드몬드 소재의 마이크로소프트사에 의해 제조된 RDP 프로토콜과 결합하여 산업 표준 일반 보안 서비스 어플리케이션 프로그램 인터페이스 (GSSAPI)를 이용한다.
다른 형태에서, 본 발명은 패스-스루 인증의 네트워크 프로바이더 방법의 대안을 제공함으로써 보안을 강화한다. 클라이언트 컴퓨팅 디바이스가 유저 인증 크리덴셜 (credential), 예를 들어, 패스워드를 서버 컴퓨팅 디바이스에 보내는 대신에, 인증 가상 채널 드라이버는 씬 클라이언트 프로토콜 내에서 가상 채널을 통해 유저 인증 데이터를 보낸다. 유저 인증 데이터는 유저의 신원을 증명하는 데에 이용될 수는 있지만 유저의 근원적인 인증 크리덴셜을 밝히는 것은 아니다. 전송된 유저 인증 데이터는 유저를 서버 컴퓨팅 장치에 인증하는 데에 이용된다. 따라서, 클라이언트는 유저 인증 크리덴셜을 전혀 액세스하지 않고; 관리자의 특전을 필요로 하는 네트워크 프로바이더를 인스톨하여 인증 크리덴셜을 클라이언트 컴퓨팅 디바이스 상에서의 로컬 프로세스에 이용 가능하게 만들 필요가 없고; 유저의 인증 크리덴셜은 어느 형태의 네트워크를 통해서도 보내지지 않고; 원격 인증은 서버 컴퓨팅 디바이스의 근원적인 운영 시스템에 의해 실행된다.
본 발명의 일 형태에서, 클라이언트 컴퓨팅 디바이스는 유저 크리덴셜을 수신하고 수신된 크리덴셜에 기초하여 유저 인증 데이터를 형성한다. 클라이언트 컴퓨팅 디바이스는 형성된 유저 인증 데이터를 서버 컴퓨팅 디바이스에 전송한다. 서버 컴퓨팅 디바이스는 유저 인증 데이터에 응답하여 유저를 인증한다. 서버는 수신된 유저 인증 데이터에 기초하여 새로운 유저 인증 데이터를 형성한다. 서버는 새로운 유저 인증 데이터를 제2 서버에 전송한다. 제2 서버는 수신된 유저 인증 데이터에 응답하여 유저를 인증한다. 일 실시예에서, 유저는 제1 서버와 제2 서버 간의 연결을 통해 이용 가능한 리소스를 액세스한다.
다른 형태에서 본 발명은 유저의 원격 인증을 위해 인증 데이터를 교환하기 위해서 ICA 프로토콜이나 RDP 프로토콜 내의 가상 채널을 이용한다. 가상 채널은 최단점 간에 데이터를 전송할 목적으로 하나 이상의 최단점 간의 논리적 결합이다.
다른 형태에서 본 발명은 인증을 위해 GSSAPI를 이용하고, 따라서 Kerberos 인증법과 같이, GSSAPI 구현에 의해 지원되는 인증법으로 작용하며, GSSAPI를 지원하는 클라이언트 컴퓨팅 플랫폼이나 디바이스 상에서 이용될 수 있다.
본 발명의 다른 형태에서, 유저 인증 크리덴셜 (예를 들어, 패스워드)은 클라이언트나 서버에 의해 명백히 취급되지 않고 클라이언트 컴퓨팅 디바이스와 서버 컴퓨팅 디바이스 간에서 전송되지 않는다.
본 발명의 다른 형태에서 클라이언트 컴퓨팅 디바이스는 서버 컴퓨팅 디바이스를 인증하고 서버 컴퓨팅 디바이스는 클라이언트 컴퓨팅 디바이스의 유저를 인증한다.
본 발명의 다른 형태에서 마이크로소프트 윈도우의 주 보안 정책이 지원되고 있다. 예를 들어, "계정은 민감하며 위임되어는 안됨"이라고 정한 유저 계정이 부여되게 되면, 그 유저는 다른 서버에 로그온하기 위해 이 원격 인증 기술을 이용할 수가 없게 된다.
본 발명의 이들 및 그 외 형태는 이하 상세 설명 및 첨부한 도면으로부터 용이하게 명백하게 될 것이며, 이는 본 발명을 설명하거나 제한하고자 하는 것이 아니다:
도 1은 본 발명의 본 발명의 실시예를 실행하는 데에 적합한 환경의 블럭도이다.
도 2A 및 도 2B는 본 발명과 관련하여 유용한 컴퓨터 실시예를 도시하는 블럭도이다.
도 3A는 본 발명이 실행될 수 있는 네트워크(40)의 실시예를 도시하는 블럭도이다.
도 3B는 클라이언트 노드가 이용 가능한 어플리케이션의 실행을 개시하고 서버가 클라이언트 노드에 어플리케이션의 결과를 제시하는 프로세스의 실시예를 도시하는 블럭도이다.
도 3C는 클라이언트 노드가 월드 와이드 웹을 거쳐 이용 가능한 어플리케이션의 실행을 개시하는 프로세스의 실시예를 도시하는 블럭도이다.
도 3D는 클라이언트 노드와 두 서버 노드 간의 통신 프로세스의 실시예를 도시하는 블럭도이다.
도 4는 클라이언트 노드의 유저를 서버 컴퓨팅 디바이스에 원격 인증하기 위한 시스템의 실시예의 블럭도이다.
본 발명의 실시예는 원격 유저가 컨텐트에의 액세스를 요청하는 분산 네트워킹 환경에 적용 가능하다. 본 발명의 상세 설명을 설명하기 전에, 발명의 실시예가 이용될 수 있는 네트워크 환경을 논의하는 것이 도움이 될 것이다.
이하 도 1을 참조하여, 간략하게, 본 발명이 이용될 수 있는 클라이언트-서 버 시스템의 일 실시예를 도시하고 있다. 제1 컴퓨팅 디바이스 (클라이언트 컴퓨팅 디바이스; 100)는 통신 네트워크(180)을 통해 제2 컴퓨팅 디바이스 (서버 컴퓨팅 서비스; 140)와 통신한다. 어떤 실시예에서는 제2 컴퓨팅 디바이스가 또한 클라이언트 디바이스(100)가 된다. 클라이언트 디바이스(100)가 서버 디바이스(140)와 통신하는 네트워크(180)의 토폴러지는 버스, 스타, 또는 링 토폴로지일 수 있다. 네트워크(180)는 근거리 통신망(LAN), 대도시권 통신망(MAN), 또는 인터넷 등의 원거리 통신망(WAN)일 수 있다.
클라이언트 및 서버 디바이스(100, 140)는 표준 전화선, LAN 또는 WAN 링크 (예를 들어, T1, T3, 56kb, X.25), 광대역 연결 (ISDN, 프레임 릴레이, ATM) 및 무선 연결을 포함하는 각종 연결을 통해 네트워크(180)에 연결될 수 있다. 연결은 각종 통신 프로토콜 (예를 들어, TCP/IP, IPX, SPX, NetBIOS, NetBEUI, SMB, Ethernet, ARCNET, 광 분산 데이터 인터페이스 (FDDI), RS232, IEEE802.11, IEEE 802.11a, IEE 802.11b, IEEE802.11g 및 직접 비동기식 연결)을 이용하여 설정된다. 그 외 클라이언트 디바이스와 서버 디바이스 (도시 생략)가 또한 네트워크(180)에 연결될 수 있다.
클라이언트 디바이스(100)는 그 대신에 하나 이상의 서버 컴퓨팅 디바이스(140)에 의해 실행되는 어플리케이션으로부터의 출력을 수신 및 표시할 수 있으며 여기 기재된 프로토콜에 따라 동작할 수 있는 디바이스면 된다. 클라이언트 컴퓨팅 디바이스(100)는 퍼스널 컴퓨터, 윈도우 기반의 단말, 네트워크 컴퓨터, 정보 기기, X-디바이스, 워크스테이션, 미니 컴퓨터, 퍼스널 디지털 보조 기기나 이동 전화일 수 있다.
유사하게, 서버 컴퓨팅 디바이스(140)는 클라이언트 컴퓨팅 디바이스(100)로부터 실행 어플리케이션에 대한 유저 입력을 수신하고, 클라이언트 컴퓨팅 디바이스(100) 대신에 어플리케이션 프로그램을 실행하고, 여기 개시된 바와 같이 프로토콜을 이용하여 클라이언트 컴퓨팅 디바이스와 상호 작용할 수 있는 컴퓨팅 디바이스일 수 있다. 서버 컴퓨팅 디바이스(140)는 여기에서 서버 팜(server farm)으로 언급되는 하나의 서버 시스템으로 논리적으로 작용하는 서버 디바이스의 그룹으로 제공될 수 있다. 일 실시예에서, 서버 컴퓨팅 디바이스(140)는 다수의 동시 활성 클라이언트 연결을 지원하는 다중-유저 서버 시스템이다.
도 2A 및 도 2B는 클라이언트 컴퓨팅 디바이스(100) 및 서버 컴퓨팅 디바이스(140)로 유용한 전형적인 컴퓨터(200)의 블럭도를 도시한다. 도 2A 및 도 2B에 나타낸 바와 같이, 각 컴퓨터(200)는 중앙 처리 장치(202), 및 주요 메모리 유닛(204)를 포함한다. 각 컴퓨터(200)는 또한 하나 이상의 입/출력 디바이스(230a-230b) (보통 참조 부호 230으로 언급) 및 중앙 처리 유닛(202)과 통신하는 캐시 메모리(240) 등의 다른 선택 요소를 포함할 수 있다.
중앙 처리 유닛(202)는 주요 메모리 유닛(204)로부터 불러온 명령에 응답하여 이를 처리하는 논리 회로이다. 많은 실시예에서, 중앙 처리 유닛은 8088, 80286, 80386, 80486, 펜티엄, 펜티엄 프로, 펜티엄 II, 셀러론, 제논 프로세서 - 이들 모두는 캘리포니아 마운틴 뷰 소재의 인텔사에 의해 제조됨 -; 68000, 68010, 68020, 68030, 68040, PowerPC 601, PowerPC604, PowerPC604e, MPC603e, MPC603ei, MPC603ev, MPC603r, MPC603p, MPC740, MPC745, MPC750, MPC755, MPC7400, MPC7410, MPC7441, MPC7445, MPC7447, MPC7450, MPC7451, MPC7455, MPC7457 프로세서 - 이들 모두는 일러노이주 슈앰버그 소재의 모토롤라사에 의해 제조됨 -; Crusoe TM5800, Crusoe TM5600, Crusoe TM5500, Crusoe TM5400, Efficeon TM8600, Efficeon TM8300, 또는 Efficeon TM8620 프로세서 - 이들은 캘리포니아 산타클라라 소재의 트랜스메타사에 의해 제조됨- ; RS/6000 프로세서, RS64, RS64 II, P2SC, POWER3, RS64 III, POWER3-II, RS 64 IV, POWER4, POWER4+, POWER5, 또는 POWER6 프로세서 - 이들 모두는 뉴욕 화이트 플레인즈 소재의 인터네셔널 비지니스 머신사에 의해 제조됨 -; 또는 캘리포니아, 서니베일 소재의 어드밴스드 마이크로 디바이스사에 의해 제조된 AMD Opteron, AMD Athlon 64 FX, AMD Athlon, 또는 AMD Duron 프로세서와 같은 마이크로프로세서 유닛에 의해 제공된다.
주요 메모리 유닛(204)은 데이터를 저장하고 또한 정적 랜덤 액세스 메모리 (SRAM), 버스트 SRAM 또는 싱크버스트 SRAM (BSRAM), 동적 랜덤 액세스 메모리 (DRAM), 패스트 페이지 모드 DRAM (FPM DRAM), 개선된 DRAM (EDRAM), 확장형 데이터 출력 RAM (EDO RAM), 확장형 데이터 출력 DRAM (EDODRAM), 버스트 확장형 데이터 출력 DRAM (BEDO DRAM), 개선된 DRAM (EDRAM), 동기성 DRAM (SDRAM), JEDEC SRAM, PC100 SDRAM, 더블 데이터 레이트 SDRAM (DDR SDRAM), 개선된 SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), 디렉트 램버스 DRAM (DRDRAM), 또는 강자성 RAM (FRAM)과 같은 마이크로프로세서(202)에 의해 저장 위치가 바로 액세스되게 할 수 있는 하나 이상의 메모리 칩일 수 있다. 도 2A에 나타낸 실시예에서, 프로세 서(202)는 시스템 버스(220) (이하 더 상세히 기술)를 통해 주요 메모리(204)와 통신한다. 도 2B는 프로세서가 메모리 포트를 통해 주요 메모리(204)와 바로 통신하는 컴퓨터 시스템(200)의 실시예를 도시한다. 예를 들어, 도 2B에서, 주요 메모리(204)는 DRDRAM일 수 있다.
도 2A 및 도 2B는 주요 프로세서(20)가 때로는 "백사이드" 버스로 불리는 이차 버스를 통해 캐시 메모리(240)와 직접 통신하는 실시예를 도시한다. 다른 실시예에서, 주요 프로세서(202)는 시스템 버스(220)를 이용하여 캐시 메모리(240)와 통신한다. 캐시 메모리(240)는 주요 메모리(204) 보다 보통 응답 속도가 더 빠르고, 통상 SRAM, BSRAM, 또는 EDRAM에 의해 제공된다.
도 2A에 나타낸 실시예에서, 프로세서(202)는 로컬 시스템 버스(220)를 거쳐 여러 I/O 디바이스(230)와 통신한다. 여러 버스들이 중앙 처리 유닛(202)를 VESA VL 버스, ISA 버스, EISA 버스, 마이크로채널 아키텍쳐 (MCA) 버스, PCI 버스, PCI-X 버스, PCI-익스프레스 버스, 또는 NuBus를 포함하는 I/O 디바이스(230)에 연결하는 데에 이용될 수 있다. I/O 디바이스가 비디오 디스플레이인 실시예인 경우, 프로세서(202)는 디스플레이와 통신하기 위해 어드밴스드 그래픽 포트 (AGP)를 이용할 수 있다. 도 2B는 주요 프로세서(202)가 하이퍼트랜스포트, 고속 I/O 또는 인피니밴드 (InfiniBand)를 거쳐 I/O 디바이스(230b)와 직접 통신하는 컴퓨터 ㅅ스템(203b)의 실시예를 도시한다. 도 2B는 로컬 버스와 직접 통신이 혼합되어 있는 실시예를 도시하고; 프로세서(202)는 I/O 디바이스(230b)와 직접 통신하면서 로컬 인터커넥트 버스를 이용하여 I/O 디바이스(230a)와 통신한다.
광범위한 I/O 디바이스(230)가 컴퓨터 시스템에 제시될 수 있다. 입력 디바이스는 키보드, 마우스, 트랙패드, 트랙볼, 마이크로폰, 및 드로잉 테이블을 포함한다. 출력 디바이스는 비디오 디스플레이, 스피커, 잉크제트, 프린터, 레이저 프린터, 및 염료 승화식 프린터를 포함한다. 하드 디스크 드라이브, 3.5인치, 5.25인치 디스크나 ZIP 디스크와 같은 플로피 디스크르를 수신하기 위한 플로피 디스크 드라이브, CD-ROM 드라이브, CD-R/RW 드라이브, DVD-ROM 드라이브, 여러 포맷의 테이프 드라이브및 캘리포니아 로스알라미토스 소재의 트윈테크 인더스트리사에 의해 제조된 USB 플래시 드라이브 라인의 디바이스와 같은 USB 저장 디바이스 등의 I/O 디바이스가 또한 컴퓨터 시스템(200)에 대량 저장소를 제공한다.
다른 실시예에서, I/O 디바이스(230)는 시스템 버스(220)와 USB 버스, 애플 데스크톱 버스, RS-232 시리얼 연결, SCSI 버스, 파이어와이어 버스, 파이어와이어 800 버스, 이더넷 버스, 애플토크 버스, 기가비트 이더넷 버스, 비동기성 트랜스퍼 모드 버스, HIPPI 버스, 수퍼 HIPPI 버스, 시리얼플러스 버스, SCK/LAMP 버스, 파이버채널 버스, 또는 시리얼 부착형 소형 컴퓨터 시스템 인터페이스 버스와 같은 외부 통신 버스 간의 브리지일 수 있다.
도 2A 및 도 2B에 도시된 종류의 범용 데스크톱 컴퓨터는 보통 운영 시스템의 제어하에서 동작하며, 이는 태스크의 스케줄링과 시스템 리소스에의 액세스를 제어한다. 통상의 운영 시스템은 그중에서도: 워싱톤 레드몬드 소재의 마이크로소프트사에 의해 제조된 마이크로소프트 윈도우; 캘리포니아 쿠퍼티노 소재의 애플 컴퓨터사에 의해 제조된 MacOS; 뉴욕 아몽크 소재의 IBM사에 의해 제조된 OS/2; 및 유타주 솔트레이크시 소재의 칼데브라사에 의해 분포된 무료 이용 가능한 운영 시스템을 포함한다.
다른 실시예에서, 클라이언트 컴퓨팅 디바이스(100)는 이와 호환되는 여러 프로세서, 운영 시스템 및 입력 디바이스를 구비한다. 예를 들어, 일 실시예에서 클라이언트 컴퓨팅 디바이스(100)는 팜사 (Palm, Inc)에 의해 제조되는 Zire 71 퍼스널 디지털 보조 기기이다. 이 실시예에서, Zire 71은 텍사스 달라스 소재의 텍사스 인스트루먼트사에 의해 제조되는 OMAP 310 프로세서를 이용하며, PalmOS 운영 시스템의 제어하에 동작하며 액정 디스플레이 스크린, 스타일러스 입력 디바이스, 및 5방향 네비게이터 디바이스를 포함한다.
이하 본 발명이 실행될 수 있는 네트워크(40)의 실시예를 도시하는 도 3A를 참조하여 설명한다. 서버(30, 32 및 34)는 동일한 도메인(38)에 속할 수 있다. 네트워크(40)에서, 도메인은 일 보안 데이터베이스의 제어하에서 한 그룹의 어플리케이션 서버와 클라이언트 노드를 포함하는 서브네트워크이다. 도메인은 하나 이상의 "서버 팜"을 포함할 수 있다. (서버 팜은 중앙 관리를 제공하기 위해 하나의 서버 시스템으로 작용하도록 함께 링크되어 있는 서버 그룹이다.) 반대로, 서버 팜은 하나 이상의 도메인을 포함할 수 있다. 동일한 서버 팜에 속하는 두 다른 도메인의 서버에 대해서는, 도메인 간에 상호 신뢰 관계가 존재할 필요가 있다. 상호 신뢰 관계는 유저가 단 하나의 로그온 인증된 각 도메인과 관련된 리소스를 액세스하도록 하는 다른 도메인 간의 연관성이다.
일 실시예에서, 어플리케이션 서버(36)는 도메인(38)과는 다른 도메인 내에 있다. 다른 실시예에서, 어플리케이션 서버(36)는 서버(30, 32 및 34)와 동일한 도메인 내에 있다. 양 실시예에서, 어플리케이션 서버(30, 32, 34)는 하나의 서버 팜에 속하는 반면, 서버(36)는 다른 서버 팜에 속하거나, 또는 모든 어플리케이션 서버(30, 32, 34 및 36)가 동일한 서버 팜에 속할 수 있다. 새로운 서버가 네트워크(40)에 연결되면, 새로운 서버는 기존의 서버 팜에 결합되거나 새로운 서버 팜을 시작하게 된다.
클라이언트 노드(10, 20)는 도메인 내에 있거나, 어느 도메인과도 연결되지 않을 수 있다. 일 실시예에서, 클라이언트 노드(10)는 도메인(38) 내에 있다. 다른 실시예에서, 클라이언트 노드(10)는 어플리케이션 서버(30, 32, 34 또는 36)를 포함하지 않는 다른 도메인 내에 있다. 다른 실시예에서, 클라이언트 노드(10)는 도메인 내에 있지 않다.
일 실시예에서 클라이언트 노드(10)는 도메인(38) 내에 있고 클라이언트 노드의 유저는 클라이언트 노드(10)에 로그온하기 위해 유저 크리덴셜을 제공한다. 유저 크리덴셜은 보통 클라이언트 노드의 유저의 이름, 유저의 패스워드, 및 유저가 인식되는 도메인의 이름을 포함한다. 유저 크리덴셜은 스마트 카드, 시간 기반의 토큰, 사회 보장 번호, 유저 패스워드, 개인 인증 (PIN) 번호, 대칭 키나 타원 곡선 암호, 유저의 생물학적 특성에 기초한 디지털 인증, 또는 그 외 클라이언트 노드의 유저의 신원을 인증을 위해 취득하여 제출하도록 하는 수단으로부터 취득될 수 있다.
유저 제공 크리덴셜로부터, 클라이언트 노드(10)는 유저 인증 데이터를 형성 한다. 클라이언트 노드(10)는 서버(30)에 이 유저 인증 데이터를 전송한다. 이 실시예에서, 클라이언트 크리덴셜은 네트워크를 통해 전송되지 않고, 최종 유저 인증 데이터만이 클라이언트 노드에 의해 전송되게 된다.
유저 인증 데이터와 어플리케이션 관련 정보로부터, 서버(30)는 또한 서버(30)를 포함하는 어플리케이션 서버 팜이 호스트하는 어느 어플리케이션 프로그램이 클라이언트 노드의 유저에 의해 이용하기 가능한지를 결정할 수 있다. 서버(30)는 이용 가능한 어플리케이션 프로그램을 나타내는 정보를 클라이언트 노드(10)에 전송한다. 이 프로세스는 클라이언트의 유저가 어플리케이션 연결을 셋업할 필요를 없애준다. 또한, 서버 팜의 관리자는 여러 클라이언트 노드 유저 사이에서 어플리케이션에의 액세스를 제어할 수 있다.
서버(30)에 의해 실행되는 유저 인증이 클라이언트 노드(10)에 제시된 각각의 호스트된 어플리케이션 프로그램의 이용을 인증하는 데에 충분할 수 있지만, 이 어플리케이션은 다른 서버에 존재할 수는 있다. 따라서, 이 실시예에서, 클라이언트 노드는 호스트된 어플리케이션 중 하나를 론치 (즉, 실행 개시)할 때, 그 어플리케이션의 이용을 인증하는 데에 유저에 의한 유저 크리덴셜의 부가 입력은 불필요하게 된다. 따라서, 클라이언트 유저에 의한 부가의 수동적 로그온 인증 프로세스 없이도 유저 크리덴셜의 한번의 입력으로 이용 가능한 어플리케이션을 결정하여 이 어플리케이션의 론칭을 인증할 수가 있다.
도 3B는 클라이언트 노드(10)가 이용 가능한 어플리케이션의 실행을 개시하고 서버가 클라이언트 노드(10)에 어플리케이션의 결과를 제시하는 다른 예시의 프 로세스를 나타낸다. 클라이언트 노드(10)의 유저는 어플리케이션(41)의 론치를 요청한다 (예를 들어, 어플리케이션을 나타내는 클라이언트 노드(10) 상에 표시되는 아이콘을 클릭하는 것으로). 어플리케이션의 요청(42)은 제1 서버 노드, 이 예에서 서버(30)로 향한다. 제1 서버 노드(30)는 어플리케이션이 제1 서버 노드(30) 상에 있으면 어플리케이션을 실행하고, 그 결과를 클라이언트 노드(10)에 보낸다. 다르게, 제1 서버 노드(30)는 클라이언트 노드(10)에게 이 예시의 서버(32)에서, 어플리케이션(41)이 다른 서버 상에서 이용 가능하다는 것을 나타낼 수 있다 (화살표 43). 클라이언트 노드(10) 및 서버(32)는 클라이언트 노드(10)가 어플리케이션(41)의 실행을 요청하는 연결 (화살표 45 및 46)을 설정한다. 서버(32)는 어플리케이션(41)을 실행하고 그 결과 (즉, 그래픽 유저 인터페이스)를 클라이언트 노드(10)에 전달한다.
도 3C는 이 예에서 월드 와이드 웹을 거쳐, 클라이언트 노드(20)가 이용 가능한 어플리케이션의 실행을 개시하는 다른 예시의 프로세스를 나타낸다. 클라이언트 노드(20)는 워싱톤 레드몬드 소재의 마이크로소프트사에 의해 제조되는 마이크로소프트 인터넷 익스플로어와 같은 웹 브라우저 어플리케이션(80)을 실행한다. 클라이언트 노드(20)는 웹 브라우저(80)를 거쳐 서버(30)에 의해 동적으로 형성된 HTML 페이지에 대응하는 유니폼 리소스 로케이터 (URL) 주소를 액세스하도록 하는 요청(82)을 전송한다. 어떤 실시예에서는, 서버(30)에 의해 클라이언트 노드(20)에 보내진 제1 응답(84)은 클라이언트 노드(20)를 식별하려고 하는 인증 요청이다.
유저는 유저 크리덴셜을 클라이언트 노드(20)에 제공한다. 클라이언트 노 드(20)는 이에 제공된 유저 크리덴셜에 기초하여 유저 인증 데이터를 형성한다. 인증 요청은 클라이언트 노드(20)가 웹 브라우저(80)를 통해 유저 인증 데이터를 인증을 위해 서버(30)에 전송할 수 있도록 한다. 전송된 유저 인증 데이터는 서버(30)에 의해 확인된다.
유저 인증 데이터 및 어플리케이션 관련 정보로부터, 서버(30)는 어플리케이션 서버가 호스트한 어느 어플리케이션 프로그램이 클라이언트 노드(20)의 유저에 의해 이용되기 가능한지를 결정할 수 있다. 서버(30)는 이용 가능한 어플리케이션 프로그램을 나타내는 정보를 포함하는 HTML 페이지를 형성하고 이를 웹 브라우저(80)를 통해 클라이언트 노드(20)에 전송한다. 정보는 각 이용 가능한 어플리케이션에 대응하는 개별의 론치 URL 주소를 포함한다.
이 실시예에서, 이용 가능한 어플리케이션은 웹 브라우저(80)를 통해 클라이언트 노드(20)에 표시된다. 클라이언트 노드 디스플레이는 이용 가능한 어플리케이션 프로그램을 나타내는 그래픽 아이콘(57)을 나타내는 윈도우(58)를 갖는다. 클라이언트 노드(20)의 유저는 마우스로 아이콘(57)을 클릭하여 어플리케이션 프로그램을 론치할 수 있다. 클라이언트 노드(20)는 웹 브라우저(80)를 통해, 서버(30) 상에 놓인 어플리케이션 론치 서비스에 대응하는 URL 주소를 액세스하도록 하는 요청(86)을 전송한다. 서버 노드(30)는 론치 정보(88)를 웹 브라우저(80)를 거쳐 클라이언트 노드(20)에 전송하고, 이는 어플리케이션의 실행을 야기하고 그 결과를 클라이언트 노드(20)에 전달하도록 하는 연결이 어떻게 설정될 수 있는지를 나타낸다.
도 3D는 클라이언트 노드(10), 제1 서버 노드, 이 예에서 서버(30) 및 서버(32) 간의 예시의 통신 프로세스를 나타낸다. 클라이언트 노드(10)는 서버(32)와의 활성 연결(72)을 갖는다. 클라이언트 노드(10)와 서버(32)는 제1 어플리케이션 프로그램의 실행에 관한 정보를 교환하기 위해 활성 연결(72)을 이용할 수 있다. 수신된 유저 크리덴셜로부터 클라이언트 노드에 의해 형성된 유저 인증 데이터는 클라이언트 노드에 저장되어 있다. 이러한 유저 인증 데이터의 저장소는 캐시 메모리 내에 있다.
이 실시예에서, 이용 가능한 어플리케이션은 클라이언트 노드(10) 상에 표시된다. 클라이언트 노드 디스플레이는 제2 어플리케이션 프로그램을 나타내는 그래픽 아이콘(57)을 나타내는 윈도우(58)를 갖는다. 클라이언트 노드(10)의 유저는 마우스로 아이콘(57)을 더블 클릭하여 제2 어플리케이션 프로그램을 론치할 수 있다. 이 요청은 연결(59)을 통해 제1 서버 노드(30)에 보내진다. 제1 서버 노드(30)는 수요가 많은 어플리케이션이 서버(32) 상에서 가능하다는 것을 연결(59)을 거쳐 클라이언트 노드(10)에 나타낸다. 클라이언트 노드(10)는 서버(32)에게 제2 연결(70)을 설정하라고 신호보낸다. 서버(32)는 클라이언트 노드(10)로부터 유저 인증 데이터를 요청하여 제2 어플리케이션 프로그램에의 액세스를 인증한다. 클라이언트 노드(10)는 저장된 유저 인증 데이터에 기초하여 유저 인증 데이터를 형성한다. 클라이언트 노드(10)는 다음에 서버(32)에 유저 인증 데이터를 전송한다. 인증 성공시, 클라이언트 노드(10)와 서버(32)는 제2 연결(70)을 설정하고 제2 어플리케이션 프로그램의 실행에 관한 정보를 교환한다. 따라서, 클라이언트 노 드(10) 및 서버(32)는 다수의 연결을 통해 서로 통신한다.
도 4는 클라이언트 노드(100)의 유저를 서버 컴퓨팅 디바이스(140)에 원격 인증하기 위한 시스템을 더욱 상세히 도시한다. 도 4에 나타낸 바와 같이, 클라이언트 컴퓨팅 디바이스(100)는 씬 클라이언트 프로그램(320)와 통신하는 인증 모듈(310)을 포함한다. 인증 모듈(310)은 유저를 클라이언트 컴퓨팅 디바이스(100), 서버 컴퓨팅 디바이스(140) 또는 둘 다에 인증할 목적으로 제공된 유저 인증 크리덴셜을 수신한다. 수신된 인증 크리덴셜은 유저네임-패스워드 조합, 그래픽 패스워드 데이터, 메샤츄세츠 베드포드 소재의 RSA 시큐리티사에 의해 제조된 SecurID 라인의 토큰과 같은 시간 기반 토큰으로부터 유도된 데이터, 시도-응답 데이터, 스마트 카드로부터의 정보, 및 지문, 성문 (voiceprint), 또는 얼굴 특성과 같은 생체 인식 정보를 포함할 수 있다. 인증 모듈(310)은 제공된 인증 크리덴셜을 이용하여 유저를 클라이언트 컴퓨팅 디바이스(100)에 인증한다. 예를 들어, 윈도우 기반의 환경에서, 인증 모듈(310)은 MSGINA 동적 링크된 라이브러리에 의해 제공될 수 있다. 다른 실시예에서, 예를 들어, 유닉스 기반의 환경에서, 인증 모듈(310)은 pam_krb 모듈을 이용하여 유닉스 장착식 인증 매니저에 의해 제공될 수 있다. 또 다른 실시예에서, 인증 모듈(310)은 유닉스 kinit 명령 프로그램으로 제공될 수 있다.
도 4에 나타낸 실시예에서, 클라이언트 컴퓨팅 디바이스는 또한 보안 서비스(312)를 포함한다. 다른 실시예에서, 인증 모듈(310) 및 보안 서비스(312)는 동일한 동적 결합 라이브러리로 제공된다. 보안 서비스(312)는 클라이언트 컴퓨팅 디바이스에의 인증과 원격 호스트나 네트워크 서비스에의 인증과 같이, 인증 모듈(310)과 씬 클라이언트 어플리케이션(320)을 포함하는 클라이언트 컴퓨팅 디바이스 상에서의 모듈과 어플리케이션에 보안 서비스를 제공한다. 예를 들어, 인터넷 엔지니어링 태스크 포스 (IETF)에 의해 특정된 GSSAPI 또는 워싱톤 레드몬드 소재의 마이크로소프트사에 의해 제조되는 SSPI일 수 있는 보안 서비스(312)는 유저 인증 크리덴셜의 수신에 응답하여 Kerberos 티켓을 취득하고, 이 티켓을 이용하여 클라이언트 컴퓨팅 디바이스 상에서의 모듈이나 어플리케이션의 요청시 유저를 원격 호스트나 네트워크 서비스에 인증하도록 부가의 Kerberos 티켓을 취득한다. 보안 서비스(312)는 원격 인증에 필요한 경우 이들 Kerberos 티켓을 이용하여 유저 인증 데이터를 형성할 수 있다. 일 실시예에서, 보안 서비스(312)는 Kerberos 환경에서의 키 분산 센터 (key distribution center) 또는 윈도우 기반의 환경에서의 활성 디렉토리와 같이, 외부 인증 서비스를 이용하여 유저 인증 데이터를 형성할 수 있다.
보안 서비스(312)는 형성된 유저 인증 데이터, 예를 들어, Kerberos 티켓 및 관련 Kerberos 인증기를 씬 클라이언트 어플리케이션(320)에 제공한다. 씬 클라이언트 어플리케이션(320)은 유저의 원격 인증을 위해 서버 컴퓨팅 디바이스(140)에 유저 인증 데이터를 전송한다. 따라서, 서버 기반의 컴퓨팅을 위한 기존의 한번의 사인온 메커니즘과는 달리, 유저 제공 인증 크리덴셜은 네트워크(180)를 통해 서버 컴퓨팅 디바이스(140)에 전송되지 않는다. 보안 서비스(312)에 의해 형성된 유저 인증 데이터는 클라이언트 컴퓨팅 디바이스(100)에 인증하기 위해 유저에 의해 이 용되는 방법과는 무관하다. 따라서, 예를 들어, 클라이언트 컴퓨팅 디바이스(100)의 유저에 대한 Kerberos 티켓은 유저가 클라이언트 컴퓨팅 디바이스(100)에 인증하기 위해 유저네임 패스워드 조합이나 생체 인식을 이용하는지의 여부가 취득된다.
도 4에 나타낸 실시예에서, 씬 클라이언트 어플리케이션(320)은 하나 이상의 가상 채널(335)를 갖는 씬 클라이언트 프로토콜을 거쳐 서버 컴퓨팅 디바이스(140)과 통신한다. 이들 실시예에서, 씬 클라이언트 어플리케이션(320)은 가상 채널 드라이버를 로드하고, 이를 이용하여 인증 가상 채널 상에서 메시지를 보내고 수신한다. 어떤 실시예에서, 가상 채널 드라이버는 가상 채널을 개방하고 이를 통해 데이터를 보내기 위한 기능을 보여준다.
씬 클라이언트 어플리케이션(320)은 씬 클라이언트 프로토콜 연결이 설정될 때 가상 채널(335)에 대해 데이터 구조를 서버 컴퓨팅 디바이스(140)에 보내는데, 이는 서버측 씬 클라이언트 어플리케이션(350)에게 인증 가상 채널이 이용 가능하다는 것을 나타낸다. 일 실시예에서, 인증 가상 채널에 대한 가상 채널 데이터 구조는 가상 채널 정보 및 클라이언트 컴퓨팅 디바이스(100)가 가상 채널(335)을 통해 서버 컴퓨팅 디바이스(140)로부터 수용하거나 여기에 보낼 수 있는 최대 데이터 패킷의 크기 표시를 포함한다. 데이터 패킷 사이즈는 최대 씬 클라이언트 크기 및 클라이언트 컴퓨팅 디바이스(100)에 의해 부여되는 특정 메모리 제약 조건에 의해제한되게 된다. 일 특정 실시예에서, 인증 가상 채널의 데이터 구조는 다음과 같이 정의된다:
typedef struct_C2H
{
VD_C2H Header;
UNIT16 cbMaxDataSize;
} C2H, *PC2H;
서버측 씬 클라이언트 어플리케이션(350)은 씬 클라이언트 어플리케이션(320)에게 가상 채널을 개방하여 그 채널 상으로 바인드 요청 메시지를 보냄으로써 인증 가상 채널(335)을 이용하여 인증을 실행하려는 의도를 나타낸다. 가상 채널이 일단 개방되면, 씬 클라이언트 어플리케이션(320)의 가상 채널 드라이버는 일 실시예에서, 가상 채널로부터 바인딩을 요청하는 메시지를 읽고, 메시지를 바인드 요청에 응답하여 가상 채널 상에 보내고; 이 채널로부터 "커미트 (commit)" 메시지를 읽는다. 일 실시예에서, 바인딩을 요청한 메시지는 지원되는 프로토콜 버전을 특정하는 데이터를 포함한다. 다른 실시예에서, 프로토콜 버전은 바인드 요청과 바인드 응답 메시지를 이용하여 씬 클라이언트 어플리케이션(320)과 서버측 씬 클라이언트 어플리케이션(350) 간에 협상될 수 있다.
바인드 요청, 바인드 응답, 및 바인드 커미트 개시 메시지는 서버측 씬 클라이언트 어플리케이션(350)과 씬 클라이언트 어플리케이션(320)이 서버측 씬 클라이언트 어플리케이션(350)에 의해 개시된 3 방향 핸드세이크를 실행하여 능력을 협상할 수 있게 한다. 2 방향 핸드세이크는 현재 세트의 가상 채널 용량이 2 방향 핸드세이크만을 이용하여 현상될 수 있을 때 서버측 씬 클라이언트 어플리케이 션(350)에 의해 개시되지만, 3 방향 핸드세이크는 새로운 용량이나 현재 용량의 장래 보강에 필요로 하는 유연성이 가능하도록 지원된다. 예를 들어, 3 방향 핸드세이크에서, 서버측 씬 클라이언트 어플리케이션(350)으로부터 능력의 "메뉴"를 수신한 후에, 3 방향 핸드세이크에서, 씬 클라이언트 어플리케이션(320)은 특정 선호도를 나타내거나, 대신에 특정 용량에 속하는 전체 세트의 옵션을 확인하여, 서버측 씬 클라이언트 어플리케이션(350)이 특정 옵션을 결정할 수 있게 한다. 씬 클라이언트 어플리케이션(320)에 의해 개시되는 2 방향 핸드세이크에서, 씬 클라이언트 어플리케이션(320)은 호스트에 의해 지원될 수 없기 때문에 특정 선호도를 나타내지 않는다.
채널 셋 업에 이어, 씬 클라이언트 어플리케이션(320)과 서버측 씬 클라이언트 어플리케이션(350) 둘 다의 가상 채널 드라이버는 "정지" 메시지나 "에러" 메시지가 수신될 때까지 루프에서 다음을 행한다: 보안 서비스(312, 312')로부터 인증 데이터를 검색하여, 가상 채널을 통해 다른 부분에 의해 보내진 인증 데이터를 입력으로 제공하고; 데이터 메시지로 가상 채널 상에 검색된 인증 데이터를 보낸다. 보안 서비스(312, 312')로부터의 데이터 검색이 "STOP" 메시지를 보내면, 신호는 인증 가상 채널을 정지 및 폐쇄한다. 몇 실시예에서 가상 채널 드라이버는 "정지" 신호시 스스로 리세트한다. 보안 서비스(312, 312')로부터의 데이터 검색이 "CONTINUE" 메시지를 보내면, 계속된다. 보안 서비스(312, 312')로부터 인증 데이터의 검색이 "ERROR"를 보내면, 에러가 발생했다고 신호 보내고 인증 가상 채널을 폐쇄한다.
"정지"나 "에러"가 신호보내지지 않는 한, 씬 클라이언트 어플리케이션(320)과 서버측 씬 클라이언트 어플리케이션(350)의 가상 채널 드라이버는 보안 서비스(312, 312')가 보내진 데이터 버퍼 생산을 정지할 때까지 데이터 메시지를 교환하는 것이 자유롭다. 몇 실시예에서, 교환된 메시지 수는 가상 채널 드라이버, 서버측 씬 클라이언트 어플리케이션(350), 또는 가상 채널(335)에 의해 제한될 수 있다. 다른 실시예에서, 씬 클라이언트 어플리케이션(320)과 서버측 씬 클라이언트 어플리케이션(350)의 가상 채널 드라이버는 순차적으로 메시지를 교환하는데, 즉 두 메시지가 한 방향으로 보내지면 반드시 처음 것의 응답은 다른 방향으로 보내지게 된다. 두 실시예에서, 메시지 교환은 메시지가 두 방향으로 보내진 후에 정지할 수 있다.
어떤 특정 실시예에서, 데이터 메시지는 먼저 가상 채널 최소 유효 이중 단어 (LSDW), 최소 유효 단어, 최소 유효 바이트 (LSB)를 통해 보내진다. 다른 특정 실시예에서는, 데이터 메시지가 바이트 경계에 정렬되고 메모리에 전부 모아진다. 이들 실시예에서, 데이터 필드는 가상 채널에 기록되거나 이로부터 판독되는 식으로 메모리에 정렬되게 된다.
인증 가상 채널 상에 전송되는 메시지는 다수의 가상 채널 패킷에 걸쳐 있다. 이를 지원하기 위해, 모든 메시지는 다음 전송된 명령의 길이를 특정하는 메시지가 선행된다. 다음 명령의 길이를 특정하는 데에 이용될 수 있는 메시지의 예는:
typedef struct_PKT_CMDLEN
{
UINT32 Length;
UINT8 Command;
UNIT8 FlagsBitMask;
} PKT_CMDLEN, *PPKT_CMDLEN;
이들 실시예 중에는, PKT_CMDLEN는 또한 어느 유형의 메시지가 이어질지를 나타내기 위해 명령 번호를 포함한다:
#define CMD_BIND_REQUEST 0x00
#define CMD_BIND_RESPONSE 0x01
#define CMD_BIND_COMMIT 0x02
#define CMD_SSPI_DATA 0x03
Length=0을 포함하는 PKT_CMDLEN 패킷은 더 이상의 데이터가 이어지지 않는다는 것을 나타낸다 (즉, 로직 채널 폐쇄).
서버측 씬=클라이언트 어플리케이션(350)은 인증 가상 채널을 통해 수신한 인증 데이터를 그의 보안 서비스(312')로 보낸다. 서버측 보안 서비스(312')가 데이터를 확인할 수 있으면, 유저에게 로그온 세션을 나타내는 액세스 토큰을 형성하여, 유저가 인증 크리덴셜을 재제출하지 않고도 서버 컴퓨팅 디바이스(140)에 인증할 수 있도록 한다. 액세스 토큰은 무엇보다도 로그온 세션에 대한 지역 고유 식별자 (LUID)를 포함하는 데이터 개체이다. 서버측 보안 서비스(312')가 데이터를 확인할 수 없으면, 유저에게 프롬프트하여 인증 크리덴셜을 재제출하도록 한다.
몇 실시예에서, 서버측 보안 서비스(312')가 유저를 인증할 때 까지, 유저가 서버 컴퓨팅 디바이스(140)와 통신하도록 하는 가상 채널만이 인증 가상 채널이 된다. 이들 실시예 중 몇에서는, 인증 후에 새로운 가상 채널이 통신 개시되는 것이 있다. 다른 실시예에서, 하나의 가상 채널만이 존재하는데 이것은 유저가 인증될 때 까지 인증 관련 통신에만 이용되고, 유저가 인증된 후에 다른 통신에 이용될 수 있다.
서버측 컴퓨팅 디바이스(140)가 마이크로소프트 윈도우 운영 시스템의 제어하에서 동작하는 실시예의 경우, 서버측 보안 서비스(312')에 의해 형성된 액세스 토큰은 네트워크 로그온 권리만을 갖는 위장 토큰이다. 즉, 형성된 액세스 토큰은 윈도우 서버 기반의 컴퓨팅 환경에서 필요로 하는 바와 같이, 어플리케이션을 대화식으로 실행 개시하는 데에 이용하기 적합하지 않다. 어플리케이션을 대화식으로 실행되도록 하기 위해서, 대화식 로그온 권리를 갖는 일차 액세스 토큰이 필요하다. 일 실시예에서, 형성된 액세스 토큰은 적당한 권리를 제공하도록 수정된다. 다른 실시예에서, 새로운 토큰이 유저에 대해 형성된다.
서버측 컴퓨팅 디바이스(140)가 유닉스 기반의 운영 시스템의 제어 하에서 동작하는 실시예인 경우, 서버측 보안 서비스(312')가 서버측 씬 클라이언트 어플리케이션(350)으로부터 인증 가상 채널을 통해 수신한 인증 데이터를 증명한 경우, 서버측 씬 클라이언트 어플리케이션(350)은 리소스에의 유저 액세스를 허용하게 된다. 이들 실시예에서, 서버측 보안 서비스(312')는 액세스 토큰을 형성하지 않는다.
몇 실시예에서, 서버가 유저를 인증한 후에, 서버는 유저에게 이용 가능한 리소스 목록을 제시한다. 이들 실시예에서, 서버는 클라이언트 컴퓨팅 디바이스에 이용 가능한 복수의 서버가 호스트한 리소스의 디스플레이를 설명하는 페이지를 형성한다. 서버는 형성된 페이지를 디스플레이를 위해 클라이언트 컴퓨팅 장치에 전송하고 클라이언트 컴퓨팅 디바이스로부터 호스트된 리소스들 중 하나를 액세스하려는 요청을 수신할 수 있다.
이들 실시예 중 몇에서, 복수의 서버 중 하나가 호스트한 이용 가능한 리소스 중 선택된 하나는 클라이언트 컴퓨팅 디바이스로부터 더 이상의 유저 인증 데이터 수신을 요구하지 않고 실행되게 된다. 몇 실시예에서, 서버는 유저에 의한 성공적 인증에 응답하여, 이 서버로부터 유저에게 이용 가능한 리소스를 호스트하고 있는 제2 서버로의 연결을 개시한다. 이들 실시예에서, 이용 가능한 리소스는 이 연결을 통해 실행된다. 몇 실시예에서, 이 연결은 가상 채널이 된다.
다른 실시예에서, 제1 서버는 이용 가능한 리소스 중 선택된 하나를 호스트하고 있다. 이들 실시예 중 몇에서, 서버는 리소스를 기존 연결을 통해 유저에게 이용 가능하게 만든다. 이들 실시예 중 다른 것에서, 서버는 리소스를 새로운 연결을 통해 유저에게 이용 가능하게 만든다. 이들 실시예 중 몇에서, 새로운 연결은 가상 채널을 포함한다.
본 발명은 하나 이상의 제조품으로 구현되는 하나 이상의 컴퓨터 판독 가능한 프로그램으로 제공될 수 있다. 제조품은 플로피 디스크, 하드 디스크, CD ROM, 플래시 메모리 카드, PROM, RAM, ROM 또는 자기 테이프일 수 있다. 일반적으로, 컴퓨터 판독 가능 프로그램은 어느 프로그래밍 언어로나 구현될 수 있다. 이용될 수 있는 언어의 예로는 C, C++, 또는 JAVA를 포함한다. 소프트웨어 프로그램은 개체 코드로서 하나 이상의 제조품에 저장될 수 있다.
본 발명이 특정 바람직한 실시예를 참조하여 도시 및 기술되고 있지만, 당업자라면 형태와 상세 사항의 여러 변경들이 다음 청구범위에 의해 정의되어진 본 발명의 정신 및 영역에서 벗어나지 않고 행해질 수 있다는 것이 이해될 것이다.

Claims (37)

  1. 서버 기반의 컴퓨팅 환경에서 유저를 서버에 원격 인증하기 위한 방법에 있어서:
    (a) 클라이언트 디바이스에서 유저 크리덴셜을 수신하는 단계;
    (b) 상기 클라이언트 컴퓨팅 디바이스에서, 상기 수신된 크리덴셜에 기초하여 유저 인증 데이터를 형성하는 단계;
    (c) 상기 형성된 유저 인증 데이터를 서버 컴퓨팅 디바이스에 전송하는 단계;
    (d) 상기 서버 컴퓨팅 디바이스에서, 상기 전송된 유저 인증 데이터에 응답하여 상기 유저를 인증하는 단계;
    를 포함하는, 원격 인증 방법.
  2. 제1항에 있어서,
    상기 단계 (a)는 클라이언트 컴퓨팅 디바이스에서 생체 인식 유저 크리덴셜을 수신하는 단계를 포함하는, 원격 인증 방법.
  3. 제1항에 있어서,
    상기 단계 (a)는 클라이언트 컴퓨팅 디바이스에서 시간 기반의 패스코드를 수신하는 단계를 포함하는, 원격 인증 방법.
  4. 제1항에 있어서,
    상기 단계 (a)는 클라이언트 컴퓨팅 디바이스에서, 스마트 카드로부터 유저 크리덴셜을 수신하는 단계를 포함하는, 원격 인증 방법.
  5. 제1항에 있어서,
    상기 단계 (b)는 상기 클라이언트 디바이스에서, 상기 수신된 유저 크리덴셜을 나타내는 암호화 비트 스트링을 형성하는 단계를 포함하는, 원격 인증 방법.
  6. 제1항에 있어서,
    상기 단계 (b)는 상기 클라이언트 디바이스에서의 보안 프로바이더 서브시스템에 의해, 상기 수신된 크리덴셜에 기초하여 유저 인증 데이터를 형성하는 단계를 포함하는, 원격 인증 방법.
  7. 제6항에 있어서,
    상기 유저 인증 데이터는 외부 인증 서비스를 이용하여 형성되는, 원격 인증 방법.
  8. 제6항에 있어서,
    상기 유저 인증 데이터는 상기 마이크로소프트 윈도우 보안 서비스 프로바이 더 인터페이스 (SSPI)에 의해 형성되는, 원격 인증 방법.
  9. 제6항에 있어서,
    상기 유저 인증 데이터는 일반 보안 서비스 어플리케이션 프로그램 인터페이스 (GSSAPI)에 의해 형성되는, 원격 인증 방법.
  10. 제1항에 있어서,
    상기 단계 (c)는 적어도 하나의 가상 채널 메시지를 서버 컴퓨팅 디바이스에 전송하는 단계를 포함하고, 상기 적어도 하나의 가상 채널 메시지는 상기 형성된 유저 인증 데이터의 적어도 일부를 포함하는, 원격 인증 방법.
  11. 제1항에 있어서,
    상기 단계 (d)는:
    (d-a) 상기 서버 컴퓨팅 디바이스에서 상기 전송된 유저 인증 데이터를 수신하는 단계;
    (d-b) 상기 수신된 유저 인증 데이터를 로컬 실행 보안 서브시스템에 제공하는 단계; 및
    (d-c) 상기 유저 인증 데이터에 응답하여 상기 유저를 상기 로컬 실행 보안 서브시스템에 의해 인증하는 단계
    를 포함하는, 원격 인증 방법.
  12. 제1항에 있어서,
    (e) 상기 서버에 의해, 복수의 서버에 의해 호스트되며 상기 클라이언트 컴퓨팅 디바이스에 이용 가능한 리소스의 디스플레이를 설명하는 페이지를 형성하는 단계;
    (f) 상기 서버에 의해, 상기 형성된 페이지를 표시를 위해 상기 클라이언트 컴퓨팅 디바이스에 전송하는 단계;
    (g) 상기 호스트된 리소스 중 하나를 액세스하려는 요청을 상기 클라이언트 컴퓨팅 디바이스로부터 수신하는 단계; 및
    (h) 상기 클라이언트 컴퓨팅 디바이스로부터 유저 인증 데이터의 수신을 더 이상 요구하지 않고 상기 복수의 서버 중 하나에 의해 호스트되는 상기 이용 가능한 리소스 중 선택된 것을 실행하는 단계를 더 포함하는, 원격 인증 방법.
  13. 제1항에 있어서,
    상기 유저에 의한 성공적인 인증에 응답하여 상기 클라이언트 컴퓨팅 디바이스로부터 상기 유저에게 이용 가능한 리소스를 호스트하는 서버에의 연결을 개시하는 단계를 더 포함하는, 원격 인증 방법.
  14. 제13항에 있어서,
    상기 연결은 가상 채널을 포함하는, 원격 인증 방법.
  15. 제1항에 있어서,
    (a) 상기 제1 서버에 의해, 상기 수신된 유저 인증 데이터에 기초하여 유저 인증 데이터를 형성하는 단계;
    (b) 상기 제1 서버에 의해, 상기 유저 인증 데이터를 제2 서버로 전송하는 단계;
    (c) 상기 제2 서버에 의해, 상기 유저를 상기 수신된 유저 인증 데이터에 응답하여 인증하는 단계;
    (d) 상기 제2 서버에 의해, 상기 제1 서버와의 연결을 유지하는 단계를 더 포함하는, 원격 인증 방법.
  16. 제15항에 있어서,
    상기 제1 서버와 상기 제2 서버사이의 상기 연결을 통해 상기 유저에게 가능한 리소스에 상기 유저가 엑세스하도록 허용하는 단계를 더 포함하는, 원격 인증 방법.
  17. 서버 기반의 컴퓨팅 환경에서 유저를 서버에 원격 인증하기 위한 시스템에 있어서:
    클라이언트측 인증 모듈, 클라이언트측 보안 프로바이더 서브시스템, 및 클라이언트측 가상 채널 드라이버를 포함하는 클라이언트 컴퓨팅 디바이스 - 상기 클 라이언트측 인증 모듈은 유저 인증 크리덴셜을 수신하고 상기 크리덴셜을 상기 클라이언트측 보안 프로바디어 서브시스템에 전송하고, 상기 클라이언트측 보안 프로바이더 서브시스템은 상기 유저 인증 크리덴셜에 기초하여 유저 인증 데이터를 형성하고 상기 유저 인증 데이터를 전송을 위해 상기 클라이언트측 가상 채널 드라이버에 전송함 - ;
    서버측 가상 채널 드라이버, 서버측 보안 프로바이더 서브시스템, 및 서버측 인증 모듈을 포함하는 서버 컴퓨팅 디바이스 -상기 서버측 가상 채널 드라이버는 상기 전송된 유저 인증 데이터를 수신하고 상기 수신된 인증 데이터를 상기 서버측 인증 모듈에 제공하고, 상기 서버측 인증 모듈은 상기 유저 인증 데이터를 상기 서버측 보안 프로바이더 서브시스템에 전송하고, 상기 보안 프로바디어 서브시스템은 인증 표시로 상기 유저 인증 데이터에 응답함-
    를 포함하는, 원격 인증 시스템.
  18. 제17항에 있어서,
    상기 클라이언트 컴퓨팅 디바이스는 퍼스널 컴퓨터를 포함하는, 원격 인증 시스템.
  19. 제17항에 있어서,
    상기 클라이언트 컴퓨팅 디바이스는 퍼스널 디지털 보조 기기를 포함하는, 원격 인증 시스템.
  20. 제17항에 있어서,
    상기 클라이언트 컴퓨팅 디바이스는 셀폰을 포함하는, 원격 인증 시스템.
  21. 제17항에 있어서,
    상기 클라이언트측 인증 모듈은 마이크로소프트 윈도우 그래픽 식별 및 인증 모듈을 포함하는, 원격 인증 시스템.
  22. 제17항에 있어서,
    상기 클라이언트측 인증 모듈은 pam_krb 모듈을 이용하는 유닉스 장착식 인증 매니저를 포함하는, 원격 인증 시스템.
  23. 제17항에 있어서,
    상기 클라이언트측 인증 모듈은 유닉스 kinit 명령 프로그램을 포함하는, 원격 인증 시스템.
  24. 제17항에 있어서,
    상기 클라이언트측 보안 프로바이더 서브시스템은 마이크로소프트 윈도우 보안 서비스 프로바이더 인터페이스 (SSPI)를 포함하는, 원격 인증 시스템.
  25. 제17항에 있어서,
    상기 클라이언트측 보안 프로바이더 서브시스템은 제너릭 보안 서비스 어플리케이션 프로그램 인터페이스 (GSSAPI)를 포함하는, 원격 인증 시스템.
  26. 제17항에 있어서,
    상기 클라이언트측 가상 채널 드라이버는 상기 유저 인증 데이터 중 적어도 일부를 포함하는 적어도 하나의 가상 채널 메시지를 전송하는, 원격 인증 시스템.
  27. 제17항에 있어서,
    상기 서버측 인증 모듈은 상기 마이크로소프트 윈도우 그래픽 식별 및 인증 모듈을 포함하는, 원격 인증 시스템.
  28. 제17항에 있어서,
    상기 서버측 보안 프로바이더 서브시스템은 상기 마이크로소프트 윈도우 보안 서비스 프로바이더 인터페이스 (SSPI)를 포함하는, 원격 인증 시스템.
  29. 제17항에 있어서,
    상기 서버측 보안 프로바이더 서브시스템은 일반 보안 서비스 어플리케이션 프로그램 인터페이스 (GSSAPI)를 포함하는, 원격 인증 시스템.
  30. 제17항에 있어서,
    상기 서버측 보안 프로바이더 서브시스템은 상기 유저 인증 데이터에 응답하여 로그온 세션과 대응 액세스 토큰을 형성하는, 원격 인증 시스템.
  31. 서버 기반의 컴퓨팅 환경에서 유저를 서버에 원격 인증하기 위한 컴퓨터 판독 가능 프로그램 수단이 구현되어 있는 제조품에 있어서:
    유저 크리덴셜을 수신하기 위한 컴퓨터 판독 가능 프로그램 수단;
    상기 수신된 크리덴셜에 기초하여 유저 인증 데이터를 형성하기 위한 컴퓨터 판독 가능 프로그램 수단;
    상기 형성된 유저 인증 데이터를 서버 컴퓨팅 디바이스에 전송하기 위한 컴퓨터 판독 가능 프로그램 수단;
    상기 전송된 유저 인증 데이터에 응답하여 상기 유저를 인증하기 위한 컴퓨터 판독 가능 프로그램 수단;
    을 포함하는 제조품.
  32. 제31항에 있어서,
    상기 수신하기 위한 컴퓨터 판독 가능 프로그램 수단은 생체 인식 유저 크리덴셜을 수신하기 위한 컴퓨터 판독 가능 프로그램 수단을 포함하는 제조품.
  33. 제31항에 있어서,
    상기 수신하기 위한 컴퓨터 판독 가능 프로그램 수단은 유저 크리덴셜을 스마트 카드로부터 수신하기 위한 컴퓨터 판독 가능 프로그램 수단을 포함하는 제조품.
  34. 제31항에 있어서, 상기 형성하기 위한 컴퓨터 판독 가능 프로그램 수단은 상기 수신된 유저 크리덴셜을 대표하는 암호화 비트 스트링을 형성하기 위한 컴퓨터 판독 가능 프로그램 수단을 포함하는 제조품.
  35. 제31항에 있어서,
    상기 형성하기 위한 컴퓨터 판독 가능 프로그램 수단은 상기 수신된 유저 크리덴셜에 기초하여 유저 인증 데이터를 형성하기 위한 컴퓨터 판독 가능 프로그램 수단을 포함하는 제조품.
  36. 제31항에 있어서,
    상기 전송하기 위한 컴퓨터 판독 가능 프로그램 수단은 적어도 하나의 가상 채널 메시지를 서버 컴퓨팅 디바이스에 전송하기 위한 컴퓨터 판독 가능 프로그램 수단을 포함하고, 상기 적어도 하나의 가상 채널 메시지는 상기 형성된 유저 인증 데이터의 적어도 일부를 포함하는 제조품.
  37. 제31항에 있어서,
    상기 유저에 의한 성공적 인증에 응답하여, 상기 클라이언트 컴퓨팅 디바이스로부터 상기 유저에게 이용 가능한 리소스를 호스트하는 서버로의 연결을 개시하기 위한 컴퓨터 판독 가능 프로그램 수단을 더 포함하는 제조품.
KR1020067010247A 2003-11-26 2004-11-23 서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법및 장치 KR20060120148A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US48170803P 2003-11-26 2003-11-26
US60/481,708 2003-11-26

Publications (1)

Publication Number Publication Date
KR20060120148A true KR20060120148A (ko) 2006-11-24

Family

ID=34652233

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020067010247A KR20060120148A (ko) 2003-11-26 2004-11-23 서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법및 장치
KR1020067010250A KR20060118510A (ko) 2003-11-26 2004-11-23 서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020067010250A KR20060118510A (ko) 2003-11-26 2004-11-23 서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법및 장치

Country Status (7)

Country Link
EP (2) EP1695180A1 (ko)
JP (2) JP2007520789A (ko)
KR (2) KR20060120148A (ko)
AU (2) AU2004294668A1 (ko)
CA (2) CA2547407A1 (ko)
IL (2) IL175842A0 (ko)
WO (2) WO2005055026A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356089B2 (en) 2015-12-24 2019-07-16 Samsung Electronics Co., Ltd. Electronic device for processing biometric information and method of controlling same

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759813B1 (ko) 2005-12-12 2007-09-20 한국전자통신연구원 생체정보를 이용한 사용자 인증 방법
US8997193B2 (en) * 2012-05-14 2015-03-31 Sap Se Single sign-on for disparate servers
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives
JP6860796B2 (ja) * 2019-08-08 2021-04-21 富士通クライアントコンピューティング株式会社 情報処理システム、情報処理装置およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187925A1 (en) * 1998-12-08 2003-10-02 Inala Suman Kumar Software engine for enabling proxy chat-room interaction
US6490679B1 (en) * 1999-01-18 2002-12-03 Shym Technology, Inc. Seamless integration of application programs with security key infrastructure
US20010027527A1 (en) * 2000-02-25 2001-10-04 Yuri Khidekel Secure transaction system
WO2002095589A1 (en) * 2001-05-17 2002-11-28 Identix Incorporated Mobile identity verification

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356089B2 (en) 2015-12-24 2019-07-16 Samsung Electronics Co., Ltd. Electronic device for processing biometric information and method of controlling same

Also Published As

Publication number Publication date
IL175841A0 (en) 2006-10-05
EP1687693A1 (en) 2006-08-09
JP2007520791A (ja) 2007-07-26
KR20060118510A (ko) 2006-11-23
CA2547407A1 (en) 2005-06-16
JP2007520789A (ja) 2007-07-26
IL175842A0 (en) 2006-10-05
CA2546872A1 (en) 2005-06-16
WO2005055026A1 (en) 2005-06-16
AU2004296049A1 (en) 2005-06-16
AU2004294668A1 (en) 2005-06-16
WO2005055025A1 (en) 2005-06-16
EP1695180A1 (en) 2006-08-30

Similar Documents

Publication Publication Date Title
US8112789B2 (en) Systems and methods for facilitating distributed authentication
US9800586B2 (en) Secure identity federation for non-federated systems
US9143502B2 (en) Method and system for secure binding register name identifier profile
TWI400922B (zh) 在聯盟中主用者之認證
US6954792B2 (en) Pluggable authentication and access control for a messaging system
US20100017857A1 (en) System and method for executing interactive applications with minimal privileges
CN112995219B (zh) 一种单点登录方法、装置、设备及存储介质
US9860223B2 (en) Mapping the network file system (NFS) protocol to secure web-based applications
KR20060120148A (ko) 서버 기반의 컴퓨팅 시스템에서의 원격 인증을 위한 방법및 장치
CA2403383C (en) System, method and computer program product for providing unified authentication services for online applications

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid