JP2007520791A - Method and apparatus for remote authentication in a server-based computer system - Google Patents

Method and apparatus for remote authentication in a server-based computer system Download PDF

Info

Publication number
JP2007520791A
JP2007520791A JP2006541682A JP2006541682A JP2007520791A JP 2007520791 A JP2007520791 A JP 2007520791A JP 2006541682 A JP2006541682 A JP 2006541682A JP 2006541682 A JP2006541682 A JP 2006541682A JP 2007520791 A JP2007520791 A JP 2007520791A
Authority
JP
Japan
Prior art keywords
server
user
authentication data
client
user authentication
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
JP2006541682A
Other languages
Japanese (ja)
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 JP2007520791A publication Critical patent/JP2007520791A/en
Withdrawn legal-status Critical Current

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のサーバは、受信されたユーザ認証データに応答する、ユーザを認証する。A method and apparatus for remotely authenticating a user to a server in a server-based computing environment. The client computing device receives the user certificate and generates user authentication data based on the received certificate. The client computer device transmits the generated user authentication data to the server computer device. The server computing device authenticates the user in response to the transmitted user authentication data. The server computing device generates new user authentication data based on the transmitted user authentication data. The server computing device sends new user authentication data to the second server. The second server authenticates the user in response to the received user authentication data.

Description

本発明は、サーバベースのコンピュータシステムにおける分散されたアプリケーション処理を提供するため、特に、そのようなシステムにおける認証テクニックをリモートするための、方法および装置に関する。   The present invention relates to a method and apparatus for providing distributed application processing in server-based computer systems, and in particular for remote authentication techniques in such systems.

ネットワークされたリソースにリモートアクセスを提供するための技術は、様々なクライアント/サーバソフトウェアの組み合わせを含む。これらの技術の一つは、しばしば「シン(thin−client)」または「サーバベースのコンピュータ」システムとして言及される。これらのシステムにおいて、アプリケーションプログラムは、一つ以上のクライアントコンピュータデバイスのために、サーバコンピュータデバイスによって実行される。アプリケーションへのクライアント入力およびアプリケーション出力は、クライアントコンピュータデバイスとサーバコンピュータデバイスとの間にて送信される。これらのシステムは、一般に、アプリケーションがサーバコンピュータデバイスによってユーザのために実行され得る前に、ユーザ自身を認証するためにクライアントコンピュータデバイスのユーザを要求する。   Techniques for providing remote access to networked resources include various client / server software combinations. One of these techniques is often referred to as a “thin-client” or “server-based computer” system. In these systems, the application program is executed by the server computer device for one or more client computer devices. Client input and application output to the application are transmitted between the client computer device and the server computer device. These systems generally require a user of a client computer device to authenticate themselves before the application can be executed for the user by the server computer device.

クライアントコンピュータデバイスは、ユーザがデバイスを使用する前に、ローカルにログオンすることを要求し得る。クライアントコンピュータデバイスにローカルにログオンすることは、通常ユーザ名およびパスワードを要求するが、多数のクライントオペレーティングシステムは、例えば、ユーザが、トークンベースのスキーム、スマートカード、または指紋のようなバイオメトリックを用いてログオンすることを要求するように、ログオンメカニズムが置き換えられることを許す。   A client computing device may require a user to log on locally before using the device. Logging on locally to a client computing device usually requires a username and password, but many client operating systems use biometrics such as, for example, token-based schemes, smart cards, or fingerprints. Allows the logon mechanism to be replaced to require you to log on.

クライアントコンピュータデバイスに認証するにも関わらず、ユーザは、しばしば、サーバコンピュータデバイスに認証する必要もある。しかしながら、上述されたような置換ログオンメカニズムが使用される場合、サーバコンピュータデバイスがしばしばユーザ名およびパスワードのみを許可するため、ユーザは、サーバコンピュータデバイスに認証できな得ない。ユーザが、バイオメトリックまたはスマートカードのようなテクニックを用いて認証した場合、ユーザは、サーバコンピュータデバイスに認証するために有用な有効ユーザ名−パスワード組み合わせを知り得ない。一部の技術は、ユーザ供給されたユーザ名−パスワード組み合わせのクライアントコンピュータデバイスによる傍受(intercept)を許す。しかしながら、これらの技術は、標準の認証メカニズムが置き換えられた場合、作用しない。   Despite authenticating to the client computer device, the user often also needs to authenticate to the server computer device. However, if a replacement logon mechanism as described above is used, the user cannot be authenticated to the server computer device because the server computer device often only allows a username and password. If the user authenticates using a technique such as biometric or smart card, the user may not know a valid username-password combination useful for authenticating to the server computer device. Some techniques allow intercept by a client computing device of a user-supplied username-password combination. However, these techniques do not work if the standard authentication mechanism is replaced.

したがって、シンクライアントシステムのユーザをリモートに認証する改良された方法が望まれる。   Therefore, an improved method for remotely authenticating a user of a thin client system is desired.

一局面において、本発明は、クライアントコンピュータデバイスのユーザをリモートに認証するために、Ft.Lauderdale,Floridaに在るCitrix Systems,Inc.によって生産されるICAプロトコルまたはRedmond,Washingtonに在るMicrosoft Corporationによって生産されるRDPプロトコルのようなシンクライアントプロトコルと結合して、産業標準のGeneric Security Services Application Program Interface(GSSAPI)を使用する。   In one aspect, the present invention provides a method for remotely authenticating a user of a client computing device. Citrix Systems, Inc., Lauderdale, Florida. Use the industry standard Generic Security Services Application Interface (GSAPI) in conjunction with the thin client protocol such as the ICA protocol produced by Microsoft or the RDP protocol produced by Microsoft Corporation in Redmond, Washington.

他の局面においては、本発明は、ネットワークプロバイダにパススルー認証の代替方法を提供することによってセキュリティを強化する。クライアントコンピュータデバイスがサーバコンピュータデバイスにユーザ認証証明、例えば、パスワード、を送信する代わりに、認証仮想チャネルドライバは、シンクライアントプロトコル内にて仮想チャネルを通じて認証データを送信する。ユーザ認証データは、ユーザのアイデンティティを検証するために使用され得るが、ユーザの裏に隠された認証証明を明らかにはしない。送信されたユーザ認証データは、サーバコンピュータデバイスにユーザを認証するために使用される。クライアントは、したがって、ユーザ認証証明に一度もアクセスしない。管理者特権を要求し、認証証明をクライアントコンピュータデバイス上の任意のローカルな処理に利用可能にする、ネットワークプロバイダをインストールすることは要求されない。ユーザの認証証明は、どの形においても、ネットワークを通じて送信されない。リモート認証は、サーバコンピュータデバイスの裏に隠されたオペレーティングシステムによって実行される。   In another aspect, the present invention enhances security by providing network providers with an alternative method of pass-through authentication. Instead of the client computing device sending user authentication credentials, eg, passwords, to the server computing device, the authentication virtual channel driver sends authentication data over the virtual channel within the thin client protocol. User authentication data can be used to verify a user's identity, but does not reveal authentication credentials hidden behind the user. The transmitted user authentication data is used to authenticate the user to the server computer device. The client therefore never accesses the user authentication credentials. It is not required to install a network provider that requires administrator privileges and makes the authentication credentials available to any local processing on the client computing device. The user's authentication credentials are not transmitted over the network in any way. Remote authentication is performed by an operating system hidden behind the server computer device.

本発明の一局面においては、クライアントコンピュータデバイスは、ユーザ証明を受信し、受信された証明に基づいてユーザ認証データを生成する。クライアントコンピュータデバイスは、サーバコンピュータデバイスに、生成されたユーザ認証データを送信する。サーバコンピュータデバイスは、ユーザ認証データに応答してユーザを認証する。サーバは、受信されたユーザ認証データに基づいて、新しいユーザ認証データを生成する。サーバは、第2のサーバに、新しいユーザ認証データを送信する。第2のサーバは、受信されたユーザ認証データに応答して、ユーザを認証する。一実施形態において、ユーザは、第1のサーバと第2のサーバとの間の接続を通じて、利用可能なリソースにアクセスする。   In one aspect of the invention, the client computing device receives a user certificate and generates user authentication data based on the received certificate. The client computer device transmits the generated user authentication data to the server computer device. The server computing device authenticates the user in response to the user authentication data. The server generates new user authentication data based on the received user authentication data. The server sends new user authentication data to the second server. The second server authenticates the user in response to the received user authentication data. In one embodiment, the user accesses available resources through a connection between the first server and the second server.

他の局面においては、本発明は、ユーザのリモート認証に対して認証データを交換するために、ICAプロトコルまたはRDPプロトコル内にて仮想チャネルを使用する。仮想チャネルは、データをエンドポイント間にて送信する目的のために、二つ以上のエンドポイント間における任意の論理的結合である。   In another aspect, the present invention uses virtual channels within the ICA or RDP protocol to exchange authentication data for remote authentication of users. A virtual channel is any logical combination between two or more endpoints for the purpose of transmitting data between the endpoints.

他の局面においては、本発明は、認証のためにGSSAPIを使用する。したがって、本発明は、Kerberos認証方法のようなGSSAPI実施によってサポートされる任意の認証方法を用いて作用し、GSSAPIをサポートする任意のクライアントコンピュータプラットフォームまたはデバイスに使用され得る。   In other aspects, the present invention uses GSSAPI for authentication. Thus, the present invention works with any authentication method supported by a GSSAPI implementation, such as the Kerberos authentication method, and can be used with any client computer platform or device that supports GSSAPI.

本発明の他の局面においては、ユーザ認証証明(例、パスワード)は、クライアントまたはサーバのどちらもによって、あからさまに傍受(intercepted)または扱われない。ユーザ認証証明は、クライアントコンピュータデバイスとサーバコンピュータデバイスとの間において送信されない。   In other aspects of the present invention, user authentication credentials (e.g., passwords) are not explicitly intercepted or handled by either the client or the server. User authentication credentials are not transmitted between the client computer device and the server computer device.

本発明の他の局面においては、クライアントコンピュータデバイスは、サーバコンピュータデバイスを認証し、サーバコンピュータデバイスは、クライントコンピュータデバイスのユーザを認証する。   In another aspect of the invention, the client computer device authenticates the server computer device, and the server computer device authenticates the user of the client computer device.

本発明の他の局面においては、Microsoft Windows(登録商標)における委任(delegation)セキュリティポリシーが支持される。例えば、「アカウントは敏感であり、委任されるべきではない」を設定するユーザアカウントが可能になった場合、そのユーザは、他のサーバにログオンするために、このリモート認証テクニックを使用できない。   In another aspect of the invention, a delegation security policy in Microsoft Windows is supported. For example, if a user account is enabled that sets “Account is sensitive and should not be delegated,” that user cannot use this remote authentication technique to log on to other servers.

本発明のこれらおよび他の局面は、本発明を限定するのではなく、示すことを意味する、下記の詳細な説明および添付の図面から明らかになるであろう。   These and other aspects of the invention will become apparent from the following detailed description and the accompanying drawings, which are meant to illustrate rather than limit the invention.

本発明の例示的実施形態は、リモートユーザがコンテンツへのアクセスをリクエストする、分散されたネットワーク環境に適用可能である。本発明の特質を説明する前に、本発明の例示的実施形態が使用され得る一部のネットワーク環境を議論することが、役に立ち得る。   Exemplary embodiments of the present invention are applicable to distributed network environments where remote users request access to content. Before describing the features of the present invention, it may be helpful to discuss some network environments in which exemplary embodiments of the present invention may be used.

図1を参照すると、簡潔な概要において、本発明が使用され得るクライアントサーバシステムの一実施形態が示される。第1のコンピュータデバイス(クライントコンピュータデバイス)100は、通信ネットワーク180を通じて、第2のコンピュータデバイス(サーバコンピュータデバイス)140と通信する。一部の実施形態において、第2のコンピュータデバイスは、クライアントデバイス100でもある。クライントデバイス100がサーバデバイス140と通信するネットワーク180のトポロジは、バス、スター、またはリングトポロジになり得る。ネットワーク180は、構内情報通信網(LAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットのような広域情報通信網(WAN)になり得る。   Referring to FIG. 1, in a brief overview, one embodiment of a client server system in which the present invention may be used is shown. The first computer device (client computer device) 100 communicates with the second computer device (server computer device) 140 through the communication network 180. In some embodiments, the second computing device is also the client device 100. The topology of the network 180 in which the client device 100 communicates with the server device 140 can be a bus, star, or ring topology. The network 180 can be a local area network (LAN), a metropolitan area network (MAN), or a wide area information network (WAN) such as the Internet.

クライアントおよびサーバデバイス100,140は、標準電話線、LANまたはWANリンク(例、T1,T3,56 kb,X.25)、ブロードバンド接続(ISDN、フレームリレー、ATM)、および無線接続を含む様々な接続を介して、ネットワーク180に接続できる。接続は、様々な通信プロトコルを使用して確立され得る(例、TCP/IP,IPX,SPX,NetBIOS,NetBEUI,SMB,Ethernet(登録商標),ARCNET,Fiber Distributed Data Interface(FDDI),RS232,IEEE 802.11,IEEE 802.11a,IEE 802.11b,IEEE 802.11gおよび直接非同期接続)。他のクライアントデバイスおよびサーバデバイス(図示せず)は、ネットワーク180にも接続され得る。   Client and server devices 100, 140 may include a variety of standard telephone lines, LAN or WAN links (eg, T1, T3, 56 kb, X.25), broadband connections (ISDN, Frame Relay, ATM), and wireless connections. A connection can be made to the network 180 via the connection. Connections can be established using various communication protocols (eg, TCP / IP, IPX, SPX, NetBIOS, NetBEUI, SMB, Ethernet, ARCNET, Fiber Distributed Data Interface (FDDI), RS232, IEEE. 802.11, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g and direct asynchronous connection). Other client devices and server devices (not shown) may also be connected to the network 180.

クライアントデバイス100は、一つ以上のサーバコンピュータデバイス140によって、そのデバイスのために実行されるアプリケーションから出力を受信および表示することが可能であり、本明細書中に開示されるプロトコルに従って動作することが可能な任意のデバイスになり得る。クライアントコンピュータデバイス100は、パーソナルコンピュータ、ウィンドウズ(登録商標)ベースの端末、ネットワークコンピュータ、情報機器、Xデバイス、ワークステーション、ミニコンピュータ、携帯情報端末または携帯電話になり得る。   Client device 100 is capable of receiving and displaying output from one or more server computing devices 140 from applications executing for that device, and operates in accordance with the protocols disclosed herein. Can be any device capable of. The client computer device 100 can be a personal computer, a Windows-based terminal, a network computer, an information device, an X device, a workstation, a minicomputer, a personal digital assistant, or a mobile phone.

同様に、サーバコンピュータデバイス140は、実行するアプリケーションに対するクライアントコンピュータデバイス100ユーザ入力から受信すること、クライアントコンピュータデバイス100のためにアプリケーションプログラムを実行すること、および本明細書中に開示されるプロトコルを使用してクライアントコンピュータデバイスと相互作用することが可能である任意のコンピュータデバイスになり得る。サーバコンピュータデバイス140は、本明細書中にサーバファームとて言及される単一サーバシステムとして論理的に作用するサーバデバイスのグループとして供給され得る。一実施形態において、サーバコンピュータデバイス140は、複数の同時にアクティブなクライアント接続をサポートするマルチユーザサーバシステムである。   Similarly, server computer device 140 receives from client computer device 100 user input for an application to execute, executes an application program for client computer device 100, and uses the protocols disclosed herein. Any computer device capable of interacting with the client computing device. Server computer devices 140 may be provided as a group of server devices that logically act as a single server system referred to herein as a server farm. In one embodiment, the server computing device 140 is a multi-user server system that supports multiple simultaneously active client connections.

図2Aおよび図2Bは、クライアントコンピュータデバイス100およびサーバコンピュータデバイス140として有用な典型的なコンピュータ200のブロック図を示す。図2Aおよび図2Bに示されるように、各々のコンピュータ200は、中央演算処理装置202およびメインメモリユニット204を含む。各々のコンピュータ200は、一つ以上の入力/出力デバイス230a〜230bのような他の任意要素(一般に、参照番号230を使用して参照される)および中央演算処理装置202と通信するキャッシュメモリ240も含み得る。   2A and 2B show block diagrams of an exemplary computer 200 useful as the client computer device 100 and the server computer device 140. As shown in FIGS. 2A and 2B, each computer 200 includes a central processing unit 202 and a main memory unit 204. Each computer 200 communicates with other optional elements such as one or more input / output devices 230a-230b (generally referred to using reference number 230) and a central processing unit 202. May also be included.

中央演算処理装置202は、メインメモリユニット204からフェッチされる命令に応答およびそれを処理する任意の論理回路である。多数の実施形態において、中央演算処理装置は、その全てが、Mountain View, Californiaに在るIntel Corporationによって生産される、8088,80286,80386,80486,Pentium(登録商標),Pentium(登録商標) Pro,Pentium(登録商標) II,Celeron,またはXeonプロセッサ;その全てがSchaumburg,Illinoisに在るMotorola Corporationによって生産される、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プロセッサ;Santa Clara,Californiaに在るTransmeta Corporationによって生産される、Crusoe TM5800,Crusoe TM5600,Crusoe TM5500,Crusoe TM5400,Efficeon TM8600,Efficeon TM8300,Efficeon TM8620プロセッサ;その全てがWhite Plains,New Yorkに在るInternational Business Machinesによって生産される、RS/6000プロセッサ,RS64,RS 64 II,P2SC,POWER3,RS64 III,POWER3−II,RS 64 IV,POWER4,POWER4+,POWER5,またはPOWER6プロセッサ;またはSunnyvale, Californiaに在るAdvanced Micro Devicesによって生産される、AMD Opteron,AMD Athlon 64FX,AMD Athlon,またはAMD Duronプロセッサ、のようなマイクロプロセッサユニットによって提供される。   Central processing unit 202 is any logic circuit that responds to and processes instructions fetched from main memory unit 204. In many embodiments, the central processing unit is an 8088, 80286, 80386, 80486, Pentium (R), Pentium (R) Pro, all produced by Intel Corporation, located in Mountain View, California. , Pentium® II, Celeron, or Xeon processors; all produced by Motorola Corporation in Schaumburg, Illinois, 68000, 68010, 68020, 68030, 68040, PowerPC 601, PowerPC 604e, PowerPC 603e, M400. , MPC603ev, MPC603r, MPC 03p, MPC740, MPC745, MPC750, MPC755, MPC7400, MPC7410, MPC7441, MPC7445, MPC7447, MPC7450, MPC7451, MPC7455, MPC7457 processor; TM5500, Crusoe TM5400, Efficeon TM8600, Efficeon TM8300, Efficeon TM8620 processor; all by International Business Machines in White Plains, New York Produced RS / 6000 processor, RS64, RS64 II, P2SC, POWER3, RS64 III, POWER3-II, RS64 IV, POWER4, POWER4 +, POWER5, or POWER6 processors; or Advanced MicroD in Sunnyvale, California. Provided by a microprocessor unit such as an AMD Opteron, AMD Athlon 64FX, AMD Athlon, or AMD Duron processor.

メインメモリユニット204は、データを格納することが可能であり、Static random access memory(SRAM),Burst SRAMまたはSynchBurst SRAM(BSRAM),Dynamic random access memory(DRAM),Fast Page Mode DRAM(FPM DRAM),Enhanced DRAM(EDRAM),Extended Data Output RAM(EDO RAM),Extended Data Output DRAM(EDO DRAM),Burst Extended Data Output DRAM(BEDO DRAM),Enhanced DRAM(EDRAM),同期(synchronous)DRAM(SDRAM),JEDEC SRAM,PC100 SDRAM,Double Data Rate SDRAM(DDR SDRAM),Enhanced SDRAM(ESDRAM),SyncLink DRAM(SLDRAM),Direct Rambus DRAM(DRDRAM)またはFerroelectric RAM(FRAM)、のようなマイクロプロセッサ202によって直接アクセスされる任意のストレージ配置を許す、一つ以上のメモリチップになり得る。図2Aに示される実施形態において、プロセッサ202は、システムバス220を介してメインメモリ204と通信する(より詳細に下記される)。図2Bは、プロセッサがメモリポートを介してメインメモリ204と直接通信する、コンピュータシステム200の実施形態を示す。例えば、図2Bにおいては、メモリ204はDRDRAMになり得る。   The main memory unit 204 is capable of storing data, and includes a static random access memory (SRAM), a burst SRAM or a sync burst SRAM (BSRAM), a dynamic random access memory (DRAM), and a fast page mode DRAM (FPM). Enhanced DRAM (EDRAM), Extended Data Output RAM (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended Data Output DRAM (BED DRAM), Enhanced DRAM (Enhanced DRAM) DRAM), JEDEC SRAM, PC100 SDRAM, Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus DRAM (DRDRAM) or Ferroelectric RAM (FRAM) 202 There can be one or more memory chips that allow any storage arrangement to be directly accessed. In the embodiment shown in FIG. 2A, processor 202 communicates with main memory 204 via system bus 220 (described in more detail below). FIG. 2B illustrates an embodiment of a computer system 200 where the processor communicates directly with main memory 204 via a memory port. For example, in FIG. 2B, the memory 204 can be a DRDRAM.

図2Aおよび図2Bは、メインプロセッサ202が時々「バックサイド」バスと言及される第2のバスを介して、キャッシュメモリ240と直接通信する実施形態を示す。他の実施形態において、メインプロセッサ202は、システムバス220を使用してキャッシュメモリ240と通信する。キャッシュメモリ240は、一般に、メインメモリ204より早い応答時間を有し、一般に、SRAM,BSRAM,EDRAMによって提供される。   2A and 2B illustrate an embodiment where the main processor 202 communicates directly with the cache memory 240 via a second bus, sometimes referred to as the “backside” bus. In other embodiments, the main processor 202 communicates with the cache memory 240 using the system bus 220. Cache memory 240 generally has a faster response time than main memory 204 and is typically provided by SRAM, BSRAM, EDRAM.

図2Aに示される実施形態において、プロセッサ202は、ローカルなシステムバス220を介して、様々なI/Oデバイス230と通信する。様々なバスは、中央演算処理装置202を、VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture(MCA)バス、PCIバス、PCI−Xバス、PCI−ExpressバスまたはNuBusを含むI/Oデバイス230に接続するために使用され得る。I/Oデバイスが映像ディスプレイである実施形態においては、プロセッサ202は、ディスプレイと通信するためにAdvanced Graphics Port(AGP)を使用し得る。図2Bは、メインプロセッサ202がHyperTransport,Rapid I/O,またはInfiniBandを介してI/Oデバイス230bと直接通信する、コンピュータシステム200の実施形態を示す。図2Bは、ローカルなバスと直接通信がミックスされる実施形態も示す:プロセッサ202は、I/Oデバイス230bと直接通信する一方、ローカルな相互接続バスを使用してI/Oデバイス230aと通信する。   In the embodiment shown in FIG. 2A, processor 202 communicates with various I / O devices 230 via local system bus 220. Various buses include an I / O device 230 including a central processing unit 202, a VESA VL bus, an ISA bus, an EISA bus, a MicroChannel Architecture (MCA) bus, a PCI bus, a PCI-X bus, a PCI-Express bus, or NuBus. Can be used to connect to. In embodiments where the I / O device is a video display, the processor 202 may use an Advanced Graphics Port (AGP) to communicate with the display. FIG. 2B illustrates an embodiment of a computer system 200 in which the main processor 202 communicates directly with the I / O device 230b via HyperTransport, Rapid I / O, or InfiniBand. FIG. 2B also illustrates an embodiment where direct communication is mixed with a local bus: processor 202 communicates directly with I / O device 230b while using a local interconnect bus to communicate with I / O device 230a. To do.

I/Oデバイス230の広い多様性は、コンピュータシステム200に存在し得る。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロホン、およびドローイングタブレットを含む。出力デバイスは、映像ディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および色素昇華型プリンタを含む。I/Oデバイスは、コンピュータシステム200のためにハードディスクドライブのような大容量ストレージ、3.5インチ、5.25インチディスクまたはZIPディスクのようなフロッピー(登録商標)ディスクを受け取るためのフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、様々な形式のテープドライブ、およびLos Alamitos,Californiaに在るTwintech Industry,Inc.によって生産されるUSB Flash DriveラインのデバイスのようなUSBストレージデバイスも提供し得る。   A wide variety of I / O devices 230 may exist in computer system 200. Input devices include keyboards, mice, trackpads, trackballs, microphones, and drawing tablets. Output devices include video displays, speakers, ink jet printers, laser printers, and dye sublimation printers. The I / O device is a floppy (registered) for receiving a mass storage such as a hard disk drive, a floppy disk such as a 3.5 inch, 5.25 inch disk or a ZIP disk for the computer system 200. Trademark) disk drives, CD-ROM drives, CD-R / RW drives, DVD-ROM drives, various types of tape drives, and Twintech Industry, Inc., located in Los Alamitos, California. USB storage devices such as USB Flash Drive line devices produced by can also be provided.

更なる実施形態において、I/Oデバイス230は、システムバス220とUSBバス、Apple Desktopバス、RS−232シリアル接続、SCSIバス、FireWireバス、FireWire800バス、Ethernet(登録商標)バス、AppleTalkバス、Gigabit Ethernet(登録商標)バス、Asynchronous Transfer Modeバス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはSerial Attached小規模コンピュータシステムインターフェースバス、のような外部の通信バスとの間のブリッジになり得る。   In a further embodiment, the I / O device 230 includes a system bus 220 and a USB bus, an Apple Desktop bus, an RS-232 serial connection, a SCSI bus, a FireWire bus, a FireWire 800 bus, an Ethernet (registered trademark) bus, an AppleTalk bus, a Gigabit. External communication between an Ethernet (registered trademark) bus, an asynchronous transfer mode bus, a HIPPI bus, a Super HIPPI bus, a SerialPlus bus, an SCI / LAMP bus, a Fiber Channel bus, or a Serial Attached small computer system interface bus Can be a bridge.

図2Aおよび図2Bに示される一種の一般的(general−purpose)デスクトップコンピュータは、一般的に、タスクのスケジュリングおよびシステムリソースへのアクセスを制御するオペレーティングシステムの管理下において動作する。典型的なオペレーティングシステムは、Redmond,Washingtonに在るMicrosoft Corp.によって生産されるMICROSOFT WINDOWS(登録商標);Cupertino,Californiaに在るApple Computerによって生産されるMacOS;Armonk,New Yorkに在るInternational Business Machinesによって生産されるOS/2;Salt Lake City,Utahに在るCaldera Corp.によって分配される他人同士で自由に利用可能なオペレーティングシステムであるLinuxを含む。   The type of general-purpose desktop computer shown in FIGS. 2A and 2B generally operates under the control of an operating system that controls the scheduling of tasks and access to system resources. A typical operating system is Microsoft Corp., located in Redmond, Washington. MICROSOFT WINDOWS® produced by MacOS; MacOS produced by Apple Computer in Cupertino, California; OS / 2 produced by International Business Machines in Armonk, New York; Caldera Corp. Linux, which is an operating system that can be freely used among others distributed by.

他の実施形態においては、クライントコンピュータデバイス100は、デバイスと矛盾しない(consistent)、異なるプロセッサ、オペレーティングシステム、および入力デバイスを有し得る。例えば、一実施形態において、クライアントコンピュータデバイス100は、Palm,Inc.によって生産されるZire 71携帯情報端末である。この実施形態においては、Zire 71は、Dallas,Texasに在るTexas Instrumentsによって生産されるOMAP 310プロセッサを使用し、PalmOSオペレーティングシステムの管理下において動作し、液晶ディスプレイスクリーン、スタイラス入力デバイス、および5ウェイ(five−way)ナビゲータデバイスを含む。   In other embodiments, the client computing device 100 may have different processors, operating systems, and input devices that are consistent with the device. For example, in one embodiment, the client computing device 100 is connected to Palm, Inc. Zire 71 personal digital assistant produced by In this embodiment, Zire 71 uses an OMAP 310 processor produced by Texas Instruments in Dallas, Texas, operates under the control of the PalmOS operating system, and includes a liquid crystal display screen, stylus input device, and 5-way (Five-way) Includes a navigator device.

図3Aを参照すると、ブロック図が、本発明が実行され得るネットワーク40の実施形態を示す。サーバ30,32,および34は、同等のドメイン38に属し得る。ネットワーク40において、ドメインは、1つのセキュリティデータベースの管理下におけるアプリケーションサーバおよびクライアントノードのグループを含むサブグループである。ドメインは、一つ以上の「サーバファーム」を含み得る。(サーバファームは、集中型管理を提供するために、単一サーバシステムとして作用するように一緒にリンクされているサーバのグループである。)反対に、サーバファームは、一つ以上のドメインを含み得る。二つの異なるドメインのサーバが同等のサーバファームに属するためには、ドメイン間に信頼関係が存在する必要があり得る。信頼関係は、ユーザが1つだけのログオン認証を用いて各々のドメインに関連するリソースにアクセスすることを許す、異なるドメイン間における関係である。   With reference to FIG. 3A, a block diagram illustrates an embodiment of a network 40 in which the present invention may be implemented. Servers 30, 32, and 34 may belong to an equivalent domain 38. In the network 40, a domain is a subgroup including a group of application servers and client nodes under the management of one security database. A domain may include one or more “server farms”. (A server farm is a group of servers that are linked together to act as a single server system to provide centralized management.) Conversely, a server farm includes one or more domains. obtain. In order for servers in two different domains to belong to an equivalent server farm, a trust relationship may need to exist between the domains. A trust relationship is a relationship between different domains that allows a user to access resources associated with each domain using only one logon authentication.

一実施形態において、アプリケーションサーバ36は、ドメイン38とは異なるドメインにある。もう1つの実施形態においては、アプリケーションサーバ36は、サーバ30,32,および34と同等のドメインにある。どちらの実施形態に対しても、サーバ36が他のサーバファームに属する一方、アプリケーションサーバ30,32,および34は、1つのサーバファームに属し得、またはアプリケーションサーバ30,32,34,および36の全ては、同等のサーバファームに属し得る。新しいサーバがネットワーク40に接続される場合、新しいサーバは、既存のサーバファームに加わるまたは新しいサーバファームを始めるのどちらかを行う。   In one embodiment, application server 36 is in a different domain than domain 38. In another embodiment, application server 36 is in a domain equivalent to servers 30, 32, and 34. For either embodiment, server 36 may belong to another server farm, while application servers 30, 32, and 34 may belong to one server farm, or application servers 30, 32, 34, and 36 All can belong to an equivalent server farm. When a new server is connected to the network 40, the new server either joins an existing server farm or starts a new server farm.

クライアントノード10,20は、ドメインにあり得、またはどのドメインにも接続され得ない。一実施形態において、クライアントノード10は、ドメイン38にある。もう1つの実施形態においては、クライアントノード10は、アプリケーションサーバ30,32,34,または36のどれも含まない他のドメインにある。もう1つの実施形態においては、クライアントノード10は、どのドメインにもない。   Client nodes 10 and 20 can be in a domain or not connected to any domain. In one embodiment, client node 10 is in domain 38. In another embodiment, the client node 10 is in another domain that does not include any of the application servers 30, 32, 34, or 36. In another embodiment, client node 10 is not in any domain.

一実施形態において、クライアントノード10は、ドメイン38にあり、クライアントノードのユーザは、クライアントノード10にログオンするためにユーザ証明(credential)を提供する。ユーザ証明は、一般的に、クライアントノードのユーザ名、ユーザのパスワード、およびユーザが認識されるドメイン名を含む。ユーザ証明は、スマートカード、時間ベーストークン、社会保障番号、ユーザパスワード、個人識別(PIN)番号、シンメトリックキーまたは楕円曲線暗号に基づくデジタル証明書、ユーザのバイオメトリック特徴、またはクライアントノードのユーザの識別が、認証のために得られ得および提出され得る、任意の他の手段から得られ得る。   In one embodiment, the client node 10 is in the domain 38 and the user of the client node provides a user credential to log on to the client node 10. The user certificate typically includes the client node's username, the user's password, and the domain name by which the user is recognized. User certificates can be smart cards, time-based tokens, social security numbers, user passwords, personal identification (PIN) numbers, digital certificates based on symmetric keys or elliptic curve cryptography, user biometric features, or client node user The identification can be obtained from any other means that can be obtained and submitted for authentication.

クライアントノード10は、ユーザによって提供される証明からユーザ認証データを生成する。クライアントノード10は、このユーザ認証データをサーバ30に送信する。この実施形態において、クライアント証明は、ネットワークを通じて送信されず、結果として生じるユーザ認証データのみがクライアントノードによって送信される。   The client node 10 generates user authentication data from the certificate provided by the user. The client node 10 transmits this user authentication data to the server 30. In this embodiment, the client certificate is not sent over the network and only the resulting user authentication data is sent by the client node.

サーバ30は、ユーザ認証データおよびアプリケーション関連情報から、サーバ30を含むアプリケーションサーバファームによってホストされるどのアプリケーションプログラムが、クライアントノードのユーザによる使用のために利用可能なのかも決定できる。サーバ30は、利用可能なアプリケーションプログラムを表す情報を、クライアントノード10に送信する。この処理は、クライアントノードのユーザがアプリケーション接続をセットアップする必要性を除去する。更に、サーバファームの管理者は、様々なクライアントノードユーザ間でのアプリケーションへのアクセスを制御できる。   The server 30 can also determine from the user authentication data and application related information which application programs hosted by the application server farm that includes the server 30 are available for use by the user of the client node. The server 30 transmits information representing available application programs to the client node 10. This process eliminates the need for client node users to set up application connections. In addition, server farm administrators can control access to applications among various client node users.

下記のホストされるアプリケーションプログラムのようなアプリケーションが他のサーバに存在し得るにも関わらず、サーバ30によって実行されるユーザ認証は、クライアントノード10に示される各々のホストされるアプリケーションプログラムの使用を認証するのに十分である。したがって、この実施形態において、クライアントノードがホストアプリケーションの1つにランチ(launch)(すなわち、実行を開始する)した場合、ユーザによるユーザ証明の追加入力は、そのアプリケーションの使用を認証するために不必要になる。したがって、ユーザ証明の単一エントリは、利用可能なアプリケーションを決定し、クライアントユーザによる追加の、手動ログオン認証処理なしに、そのようなアプリケーションのランチを認証するために役立ち得る。   Although an application, such as the hosted application program described below, may exist on another server, the user authentication performed by the server 30 uses the use of each hosted application program shown in the client node 10. Enough to authenticate. Thus, in this embodiment, when a client node launches (ie begins execution) into one of the host applications, additional input of user credentials by the user is not allowed to authenticate use of that application. I need it. Thus, a single entry of user credentials can help determine available applications and authenticate such application launches without additional manual logon authentication processing by the client user.

図3Bは、クライアントノード10が利用可能なアプリケーションの実行を開始し、サーバがアプリケーションの結果をクライアントノード10に示すことによる、他の例示的処理を示す。クライアントノード10のユーザは、アプリケーション41のランチをリクエストする(例えば、アプリケーションを表すクライアントノード10に表示されるアイコンをクリックすることによって)。アプリケーションに対するリクエスト42は、本実施例においてはサーバ30である、第1のサーバノードに向けられる。アプリケーションが第1のサーバノード30にある場合、第1のサーバノード30は、アプリケーションを実行し得、結果をクライアントノード10に戻し得る。代替的に、第1のサーバノード30は、アプリケーション41が、本実施例においてはサーバ32である、他のサーバにおいて利用可能であることを、クライアントノード10に示し得る(矢印43)。クライアントノード10およびサーバ32は、クライアントノード10がアプリケーション41の実行をリクエストすることによって、接続(矢印45と46)を確立する。サーバ32は、アプリケーション41を実行し得、結果をクライアントノード10に転送し得る(すなわち、グラフィカルユーザインターフェース)。   FIG. 3B illustrates another exemplary process by the client node 10 starting to run an available application and the server presenting the result of the application to the client node 10. The user of client node 10 requests a lunch of application 41 (eg, by clicking on an icon displayed on client node 10 representing the application). The request 42 for the application is directed to the first server node, which is the server 30 in this embodiment. If the application is on the first server node 30, the first server node 30 may execute the application and return the result to the client node 10. Alternatively, the first server node 30 may indicate to the client node 10 that the application 41 is available on another server, which in this example is the server 32 (arrow 43). The client node 10 and the server 32 establish a connection (arrows 45 and 46) when the client node 10 requests execution of the application 41. Server 32 may execute application 41 and transfer the results to client node 10 (ie, a graphical user interface).

図3Cは、クライアントノード20が、本実施例においてはワールドワイドウェブを介して、利用可能なアプリケーションの実行を開始することによる、他の例示的処理を示す。クライアントノード20は、Redmond,Washingtonに在るMicrosoft Corporationによって生産されるMICROSOFT INTERNET EXPLORERのようなウェブブラウザアプリケーション80を実行する。クライアントノード20は、ウェブブラウザ80を介して、サーバ30によってダイナミックに生成されるHTMLページに対応するUniform Resource Locator(URL)アドレスにアクセスするためにリクエスト82を送信する。一部の実施形態において、サーバ30によってクライアントノード20に戻される第1の応答84は、クライアントノード20を識別することを要求する認証リクエストである。   FIG. 3C shows another exemplary process by the client node 20 initiating execution of an available application in this example via the World Wide Web. The client node 20 executes a web browser application 80 such as MICROSOFT INTERNET EXPLORER produced by Microsoft Corporation in Redmond, Washington. The client node 20 transmits a request 82 to access a Uniform Resource Locator (URL) address corresponding to an HTML page dynamically generated by the server 30 via the web browser 80. In some embodiments, the first response 84 returned by the server 30 to the client node 20 is an authentication request that requires the client node 20 to be identified.

ユーザは、クライアントノード20にユーザ証明を提供する。クライアントノード20は、提供されるユーザ証明に基づいて、ユーザ認証データを生成する。認証リクエストは、クライアントノード20が認証のために、サーバ30にウェブブラウザ80を介してユーザ認証データを送信することを許す。送信されたユーザ認証データは、サーバ30によって検証される。   The user provides a user certificate to the client node 20. The client node 20 generates user authentication data based on the provided user certificate. The authentication request allows the client node 20 to send user authentication data to the server 30 via the web browser 80 for authentication. The transmitted user authentication data is verified by the server 30.

サーバ30は、ユーザ認証データおよびアプリケーション関連情報から、アプリケーションサーバによってホストされるどのアプリケーションプログラムが、クライアントノード20のユーザによって使用可能であるかも決定できる。サーバ30は、利用可能なアプリケーションプログラムを表す情報を含むHTMLページを生成し、ウェブブラウザ80を介してこれをクライアントノード20に送信する。情報は、各々の利用可能なアプリケーションに対応する、個別のランチURLアドレスを含む。   The server 30 can also determine from the user authentication data and application related information which application programs hosted by the application server are available for use by the user of the client node 20. The server 30 generates an HTML page including information representing an available application program and transmits it to the client node 20 via the web browser 80. The information includes a separate lunch URL address corresponding to each available application.

本実施形態において、利用可能なアプリケーションは、ウェブブラウザ80を介してクライアントノード20に表示される。クライアントノードディスプレイは、利用可能なアプリケーションプログラムを表すグラフィックなアイコン57を現すウィンドウ58を有する。クライアントノード20のユーザは、マウスを用いてアイコン57をクリックすることによって、アプリケーションプログラムをランチできる。クライアントノード20は、サーバ30にあるアプリケーションランチサービスに対応するURLアドレスにアクセスするように、ウェブブラウザ80を介して、リクエスト86を送信する。サーバノード30は、アプリケーションの実行をし、その結果をクライアントノード20に転送するように、どのようにして接続が確立され得るかを示すランチ情報88を、ウェブブラウザ80を介して、クライアントノード20に送信する。   In the present embodiment, available applications are displayed on the client node 20 via the web browser 80. The client node display has a window 58 showing a graphical icon 57 representing the available application program. The user of the client node 20 can launch the application program by clicking the icon 57 using the mouse. The client node 20 transmits a request 86 via the web browser 80 so as to access the URL address corresponding to the application launch service in the server 30. The server node 30 executes, via the web browser 80, the client node 20 through launch information 88 indicating how a connection can be established to execute the application and transfer the result to the client node 20. Send to.

図3Dは、クライアントノード10、本実施例においてはサーバ30である第1のサーバノード、とサーバ32との間における通信の例示的処理を示す。クライアントノード10は、サーバ32とアクティブ接続72を有する。クライアントノード10およびサーバ32は、第1のアプリケーションプログラムの実行に関する情報を交換するために、アクティブ接続72を使用できる。受信されたユーザ証明から、クライアントノード10によって生成されるユーザ認証データは、クライアントノードに格納される。ユーザ認証データのそのようなストレージは、キャッシュメモリにある。   FIG. 3D illustrates an exemplary process of communication between the client node 10, a first server node, which in this example is a server 30, and the server 32. The client node 10 has a server 32 and an active connection 72. Client node 10 and server 32 may use active connection 72 to exchange information regarding the execution of the first application program. User authentication data generated by the client node 10 from the received user certificate is stored in the client node. Such storage of user authentication data is in cache memory.

本実施形態において、利用可能なアプリケーションは、クライアントノード10に表示される。クライアントノードディスプレイは、第2のアプリケーションプログラムを表すグラフィックなアイコン57を現すウィンドウ58を有する。クライアントノード10のユーザは、マウスを用いてアイコン57をダブルクリックすることによって、第2のアプリケーションプログラムをランチできる。リクエストは、接続59を介して、第1のサーバノード30にパスする。第1のサーバノード30は、求められているアプリケーションがサーバ32において利用可能であることを、接続59を介して、クライアントノード10に示す。クライアントノード10は、第2の接続70を確立するために、サーバ32に信号を送る。サーバ32は、第2のアプリケーションプログラムへのアクセスを認証するために、クライアントノード10からユーザ認証データをリクエストする。クライアントノード10は、格納されているユーザ認証データに基づいて、ユーザ認証データを生成する。クライアントノード10は、次いで、サーバ32にユーザ認証データを送信する。成功(successful)認証において、クライアントノード10およびサーバ32は、第2の接続70を確立し、第2のアプリケーションプログラムの実行に関する情報を交換する。したがって、クライアントノード10およびサーバ32は、複数の接続を通じて互いに通信する。   In the present embodiment, available applications are displayed on the client node 10. The client node display has a window 58 that shows a graphical icon 57 representing the second application program. The user of the client node 10 can launch the second application program by double-clicking the icon 57 using the mouse. The request passes to the first server node 30 via connection 59. The first server node 30 indicates to the client node 10 via connection 59 that the requested application is available on the server 32. The client node 10 signals the server 32 to establish the second connection 70. The server 32 requests user authentication data from the client node 10 in order to authenticate access to the second application program. The client node 10 generates user authentication data based on the stored user authentication data. The client node 10 then transmits user authentication data to the server 32. In successful authentication, the client node 10 and the server 32 establish a second connection 70 and exchange information regarding the execution of the second application program. Accordingly, the client node 10 and the server 32 communicate with each other through a plurality of connections.

図4は、サーバコンピュータデバイス140に、クライアントノード100のユーザをリモートに認証するためのシステムをより詳細に示す。図4に示されるように、クライアントコンピュータデバイス100は、シンクライアントプログラム320と通信している認証モジュール310を含む。認証モジュール310は、クライアントコンピュータデバイス100、サーバコンピュータデバイス140、またはその両方にユーザを認証する目的のために提供されるユーザ認証証明を受信する。受信される認証証明は、ユーザ名−パスワード組み合わせ、グラフィックなパスワードデータ、Massachusetts,Bedfordに在るRSA Security Inc.によって生産されるトークンのSecurlDラインのような時間ベーストークンから引き出されるデータ、チャレンジ応答データ、スマートカードからの情報、および指紋、声紋または顔面特徴のようなバイオメトリック情報を含み得る。認証モジュール310は、クライアントコンピュータデバイス100にユーザを認証するために、提供される認証証明を使用し得る。例えば、WINDOWS(登録商標)ベースの環境において、認証モジュール310は、MSGINAダイナミックにリンクされたライブラリによって提供され得る。他の実施形態においては、例えば、Unix(登録商標)ベースの環境において、認証モジュール310は、pam_krbモジュールを使用して、Unix(登録商標) Pluggable Authentication Managerによって提供され得る。更なる他の実施形態においては、認証モジュール310は、Unix(登録商標) kinitコマンドプログラムによって提供され得る。   FIG. 4 illustrates in more detail a system for remotely authenticating a user of client node 100 to server computer device 140. As shown in FIG. 4, the client computing device 100 includes an authentication module 310 that is in communication with a thin client program 320. The authentication module 310 receives user authentication credentials that are provided for the purpose of authenticating the user to the client computer device 100, the server computer device 140, or both. The received authentication credentials include: username-password combination, graphical password data, RSA Security Inc. at Massachusetts, Bedford. May include data derived from time-based tokens such as the SecurlD line of tokens produced by, challenge response data, information from smart cards, and biometric information such as fingerprints, voiceprints or facial features. The authentication module 310 may use the provided authentication credentials to authenticate the user to the client computing device 100. For example, in a WINDOWS®-based environment, the authentication module 310 can be provided by a MSGINA dynamically linked library. In other embodiments, for example, in a Unix-based environment, the authentication module 310 can be provided by the Unix® Pluggable Authentication Manager using the pam_krb module. In still other embodiments, the authentication module 310 may be provided by a Unix® quit command program.

図4に示される実施形態において、クライアントコンピュータデバイスは、セキュリティサービス312も含む。他の実施形態において、認証モジュール310およびセキュリティサービス312は、同等のダイナミックにリンクされたライブラリとして提供される。セキュリティサービス312は、クライアントコンピュータデバイスへの認証およびリモートホストまたはネットワークサービスへの認証のようなセキュリティサービスを、認証モジュール310およびシンクライアントアプリケーション320を含む、クライアントコンピュータデバイスにあるモジュールおよびアプリケーションに提供する。例えば、Internet Engineering Task Force(IETF)によって特定されるGSSAPIまたはRedmond,Washingtonに在るMicrosoft Corporationによって生産されるSSPIになり得るセキュリティサービス312は、クライアントコンピュータデバイスにあるモジュールまたはアプリケーションのリクエストにより、ユーザ認証証明の受信に応答してKerberosチケットを得り得、このチケットを、リモートホストまたはネットワークサービスへのユーザを認証するための追加のKerberosチケットを得るために使用する。セキュリティサービス312は、次いで、リモート認証のためにこれらのKerberosチケットを必要な場合使用し、ユーザ認証データを生成し得る。一実施形態において、セキュリティサービス312は、Kerberos環境におけるKey Distribution CenterまたはWindows(登録商標)ベースの環境におけるActive Directoryのような外部の認証サービスを使用して、ユーザ認証データを生成し得る。   In the embodiment shown in FIG. 4, the client computing device also includes a security service 312. In other embodiments, the authentication module 310 and the security service 312 are provided as an equivalent dynamically linked library. Security service 312 provides security services, such as authentication to client computer devices and authentication to remote host or network services, to modules and applications residing on client computer devices, including authentication module 310 and thin client application 320. For example, a security service 312 that can be a GS SAPI identified by the Internet Engineering Task Force (IETF) or an SSPI produced by Microsoft Corporation in Redmond, Washington, can be authenticated by a module or application request on a client computing device. A Kerberos ticket may be obtained in response to receipt of the certificate, and this ticket is used to obtain an additional Kerberos ticket for authenticating the user to the remote host or network service. The security service 312 may then use these Kerberos tickets as needed for remote authentication and generate user authentication data. In one embodiment, the security service 312 may generate user authentication data using an external authentication service such as a Key Distribution Center in a Kerberos environment or an Active Directory in a Windows-based environment.

セキュリティサービス312は、例えば、Kerberosチケットおよび関連するKerberos認証符号(authenticator)のような、生成されたユーサ認証データを、シンクライアントアプリケーション320に提供する。シンクライアントアプリケーション320は、ユーザのリモート認証のために、ユーザ認証データをサーバコンピュータデバイス140に送信する。したがって、サーバベースコンピューティングのための既存の単一サインオンメカニズムと違って、ユーザ提供される認証証明は、サーバコンピュータデバイス140にネットワーク180を通じて送信されない。セキュリティサービス312によって生成されるユーザ認証データは、クライアントコンピュータデバイス100に認証するためにユーザによって使用される方法に依存しない。したがって、例えば、クライアントコンピュータデバイス100に認証するために、ユーザがユーザ名−パスワード組み合わせまたはバイオメトリックを使用しようとなかろうと、クライアントコンピュータデバイス100のユーザのためのKerberosチケットは得られる。   The security service 312 provides the thin client application 320 with generated user authentication data, such as, for example, a Kerberos ticket and an associated Kerberos authentication code. The thin client application 320 sends user authentication data to the server computing device 140 for remote user authentication. Thus, unlike existing single sign-on mechanisms for server-based computing, user-provided authentication credentials are not transmitted over the network 180 to the server computing device 140. The user authentication data generated by the security service 312 is independent of the method used by the user to authenticate to the client computing device 100. Thus, for example, whether a user attempts to use a username-password combination or biometric to authenticate to the client computer device 100, a Kerberos ticket for the user of the client computer device 100 is obtained.

図4の示される実施形態において、シンクライアントアプリケーション320は、一つ以上の仮想チャネル335を有するシンクライアントプロトコルを介して、サーバコンピュータデバイス140と通信する。これらの実施形態において、シンクライアントアプリケーション320は、仮想チャネルドライバをロードし、それを、認証仮想チャネルにおいてメッセージを送信および受信するために使用する。一部の実施形態において、仮想チャネルドライバは、仮想チャネルを開口し、それを越えてデータを送信するための機能をさらす(expose)。   In the illustrated embodiment of FIG. 4, the thin client application 320 communicates with the server computing device 140 via a thin client protocol having one or more virtual channels 335. In these embodiments, the thin client application 320 loads a virtual channel driver and uses it to send and receive messages on the authentication virtual channel. In some embodiments, the virtual channel driver exposes a function to open the virtual channel and transmit data across it.

シンクライアントアプリケーション320は、シンクライアントプロトコル接続が確立された場合、認証仮想チャネルが利用可能であることを、サーバ側シンクライアントアプリケーション350に示し、サーバコンピュータデバイス140に仮想チャネル335のためのデータ構造をパスする。一実施形態において、認証仮想チャネルのための仮想チャネルデータ構造は、仮想チャネル情報およびクライアントコンピュータデバイス100が、仮想チャネル335を通じてサーバコンピュータデバイス140から受け取りまたは送信できる、最も大きなデータパケットのサイズの表示を含む。データパケットサイズは、最大のシンクライアントサイズおよびクライアントコンピュータデバイス100によって強制(impose)される任意の特定のメモリ制限によって抑制される。特定の一実施形態において、認証仮想チャネルのためのデータ構造は、以下のように定義される:   The thin client application 320 indicates to the server-side thin client application 350 that an authentication virtual channel is available when a thin client protocol connection is established, and provides the server computer device 140 with a data structure for the virtual channel 335. Pass. In one embodiment, the virtual channel data structure for the authentication virtual channel provides an indication of the virtual channel information and the largest data packet size that the client computer device 100 can receive or transmit from the server computer device 140 over the virtual channel 335. Including. The data packet size is constrained by the maximum thin client size and any specific memory limit imposed by the client computing device 100. In one particular embodiment, the data structure for the authentication virtual channel is defined as follows:

Figure 2007520791
サーバ側シンクライアントアプリケーション350は、仮想チャネルを開口し、チャネルにバインドリクエストメッセージを送信することによる、認証仮想チャネル335を使用して認証を実行する意図を、シンクライアントアプリケーション320に示す。仮想チャネルが一度開口されると、シンクライアントアプリケーション320にある仮想チャネルドライバは、一実施形態において、仮想チャネルからバインディングをリクエストするメッセージを読み取り、バインドリクエストに応答して仮想チャネルにメッセージを送信し、およびチャネルから「コミット」メッセージを読み取る。一実施形態において、バインディングをリクエストするメッセージは、サポートされているプロトコルバージョンを特定するデータを含む。他の実施形態において、プロトコルバージョンは、バインドリクエストおよびバインド応答メッセージを使用して、シンクライアントアプリケーション320とサーバ側シンクライアントアプリケーション350との間にてネゴシエートされ得る。
Figure 2007520791
The server-side thin client application 350 indicates to the thin client application 320 the intention to perform authentication using the authentication virtual channel 335 by opening a virtual channel and sending a bind request message to the channel. Once the virtual channel is opened, the virtual channel driver in the thin client application 320, in one embodiment, reads a message requesting binding from the virtual channel and sends a message to the virtual channel in response to the bind request; And read "commit" messages from the channel. In one embodiment, the message requesting the binding includes data identifying a supported protocol version. In other embodiments, the protocol version may be negotiated between the thin client application 320 and the server-side thin client application 350 using a bind request and bind response message.

バインドリクエスト、バインド応答、およびバインドコミット初期化メッセージは、サーバ側シンクライアントアプリケーション350およびシンクライアントアプリケーション320が、サーバ側シンクライアントアプリケーション350によって開始される3方向のハンドシェイクを導く(conduct)ことを許し、可能性(capability)をネゴシエートする。仮想チャネル可能性の現在のセットが、2方向ハンドシェイクのみを使用してネゴシエートされ得る場合、2方向ハンドシェイクは、サーバ側シンクライアントアプリケーション350によって開始され得るが、3方向ハンドシェイクは、新しい可能性または現在の可能性への将来的強化によって要求され得る、より多くの柔軟性を許すようにサポートされる。例えば、3方向ハンドシェイクにおいて、サーバ側シンクライアントアプリケーション350から可能性の「メニュー」を受信した後、シンクライアントアプリケーション320は、特定のプリファランスを示し得、またはその代わりに、特定の可能性に関連するオプションの全セットを認め、従って、サーバ側シンクライアントアプリケーション350が特定のオプションにおいて決定することを許す。シンクライアントアプリケーション320によって開始される2方向ハンドシェイクにおいて、シンクライアントアプリケーション320は、ホストによってサポートされ得ないため、特定のプレファレンスを示し得ない。   The bind request, bind response, and bind commit initialization message allow the server-side thin client application 350 and the thin client application 320 to conduct a three-way handshake initiated by the server-side thin client application 350. , Negotiate the capability. If the current set of virtual channel possibilities can be negotiated using only a two-way handshake, the two-way handshake can be initiated by the server-side thin client application 350, but the three-way handshake is a new possibility Supported to allow more flexibility that may be required by future enhancements to gender or current potential. For example, after receiving a “menu” of possibilities from the server-side thin client application 350 in a three-way handshake, the thin client application 320 may indicate a specific preference, or alternatively, to a specific possibility. Allows the full set of related options, thus allowing the server-side thin client application 350 to make decisions on specific options. In a two-way handshake initiated by the thin client application 320, the thin client application 320 cannot indicate a specific preference because it cannot be supported by the host.

チャネルセットアップに続いて、シンクライアントアプリケーション320およびサーバ側シンクライアントアプリケーション350の両方の仮想チャネルドライバは、「ストップ」メッセージまたは「エラー」メッセージが受信されるまで、ループにおいて以下のことをする:仮想チャネルを介して、他の団体によって送信される任意の認証データを入力として提供し、セキュリティサービス312,312’から認証データを引き出す;引き出された認証データ(ある場合)を、データメッセージにおいて仮想チャネルに送信する。セキュリティサービス312,312’からのデータの引き出しが「STOP」メッセージを返した場合、信号はストップし、認証仮想チャネルを閉じる。一部の実施形態において、仮想チャネルドライバは、「CONTINUE」信号においてそれ自体をリセットし得る。セキュリティサービス312,312’からのデータの引き出しが「続ける」メッセージを返した場合、続ける。セキュリティサービス312,312’からの認証データの引き出しが「ERROR」を返した場合、エラーが生じたことを信号で伝え、認証仮想チャネルを閉じる。   Following channel setup, the virtual channel drivers in both thin client application 320 and server side thin client application 350 do the following in a loop until a “stop” or “error” message is received: virtual channel To provide as input any authentication data sent by other parties and retrieve the authentication data from the security services 312, 312 '; the extracted authentication data (if any) is sent to the virtual channel in the data message Send. If the withdrawal of data from the security services 312, 312 'returns a "STOP" message, the signal stops and closes the authentication virtual channel. In some embodiments, the virtual channel driver may reset itself in a “CONTINUE” signal. If the data withdrawal from the security services 312, 312 'returns a "continue" message, continue. If the withdrawal of authentication data from the security services 312 and 312 'returns “ERROR”, a signal that an error has occurred is signaled, and the authentication virtual channel is closed.

「stop」または「error」の信号が送られない限りは、シンクライアントアプリケーション320およびサーバ側シンクライアントアプリケーション350の仮想チャネルドライバは、セキュリティサービス312,312’が送信されるデータバッファを生成することをストップするまで、データメッセージを自由に交換できる。一部の実施形態において、交換されるメッセージの数は、仮想チャネルドライバ、サーバ側シンクライアントアプリケーション350、または仮想チャネル335によって制限され得る。他の実施形態において、シンクライアントアプリケーション320およびサーバ側シンクライアントアプリケーション350の仮想チャネルドライバは、メッセージを連続的に交換し、すなわち、もう一方に送信される第1のメッセージへの返信なしに、二つのメッセージは、一つの方向に送信されない。どちらの実施形態においても、メッセージ交換は、メッセージがどちらかの方向に送信された後、ストップし得る。   Unless a “stop” or “error” signal is sent, the virtual channel driver of the thin client application 320 and the server-side thin client application 350 will generate a data buffer to which the security services 312, 312 ′ are transmitted. Data messages can be exchanged freely until stopped. In some embodiments, the number of messages exchanged may be limited by a virtual channel driver, server-side thin client application 350, or virtual channel 335. In other embodiments, the virtual channel drivers of the thin client application 320 and the server-side thin client application 350 exchange messages continuously, i.e., without replying to the first message sent to the other. One message is not sent in one direction. In either embodiment, the message exchange may stop after the message is sent in either direction.

一部の特定の実施形態において、データメッセージは、最初に、仮想チャネルLeast Significant Double Word(LSDW),Least Significant Word(LSW),Least Significant Byte(LSB)を通じて送信される。他の特定の実施形態において、データメッセージは、バイト境界において並べられ(aligned)、メモリに完全に詰め込まれる(packed)。これらの実施形態において、データフィールドは、仮想チャネルに書き込まれるまたは読み取られるように、メモリに並べられる。   In some specific embodiments, the data message is initially transmitted through a virtual channel, the Last Significant Double Word (LSDW), the Last Significant Word (LSW), and the Last Significant Byte (LSB). In other specific embodiments, data messages are aligned on byte boundaries and fully packed into memory. In these embodiments, the data fields are arranged in memory to be written to or read from the virtual channel.

認証仮想チャネルにおいて送信される一部のメッセージは、複数の仮想チャネルパケットに及ぶ(span)。これをサポートするために、あらゆるメッセージは、次に送信されるコマンドの長さを特定するメッセージに先行されるべきである。次のコマンドの長さを特定するために使用され得るメッセージの例は:   Some messages sent on the authentication virtual channel span multiple virtual channel packets. To support this, every message should be preceded by a message that specifies the length of the next command to be sent. Examples of messages that can be used to specify the length of the following commands are:

Figure 2007520791
である。
Figure 2007520791
It is.

これらの実施形態の一部において、PKT_CMDLENは、どの種類のメッセージが続くかを示すためにコマンド番号も含む:   In some of these embodiments, PKT_CMDLEN also includes a command number to indicate what type of message follows:

Figure 2007520791
Length=0を含むPKT_CMDLENパケットは、データはもう続かないことを示す(すなわち、論理チャネル閉路)。
Figure 2007520791
A PKT_CMDLEN packet containing Length = 0 indicates that the data no longer continues (ie, logical channel closure).

サーバ側シンクライアントアプリケーション350は、認証仮想チャネルを通じて受信する認証データを、そのセキュリティサービス312’にパスする。サーバ側セキュリティサービス312’がデータを検証できる場合、ユーザのためのログオンセッションを表すアクセストークンを生成し、ユーザが、認証証明を再提出せずにサーバコンピュータデバイス140に認証することを許す。アクセストークンは、他のものに加えて、ログオンセッションのためのlocally unique identifier(LUID)を含むデータ対象物である。サーバ側セキュリティサービス312’がデータを検証できない場合、ユーザは、認証証明を再提出するのを促される。   The server-side thin client application 350 passes authentication data received through the authentication virtual channel to the security service 312 '. If the server-side security service 312 'can verify the data, it generates an access token that represents a logon session for the user, allowing the user to authenticate to the server computing device 140 without resubmitting authentication credentials. An access token is a data object that contains a locally unique identifier (LUID) for a logon session, in addition to others. If the server-side security service 312 'cannot verify the data, the user is prompted to resubmit the authentication credentials.

一部の実施形態において、サーバ側セキュリティサービス312’がユーザを認証するまで、ユーザがサーバコンピュータデバイス140と通信し得る、唯一の仮想チャネルは、認証仮想チャネルである。これらの実施形態の一部において、認証後、新しい仮想チャネルは、通信のために開始される。他の実施形態においては、仮想チャネルは一つだけ存在し、ユーザが認証されるまで認証関連通信のためだけに使用され得、ユーザが認証された後、他の通信のために使用され得る。   In some embodiments, the only virtual channel that a user can communicate with the server computing device 140 until the server-side security service 312 'authenticates the user is an authentication virtual channel. In some of these embodiments, after authentication, a new virtual channel is initiated for communication. In other embodiments, only one virtual channel exists and can be used only for authentication-related communications until the user is authenticated, and can be used for other communications after the user is authenticated.

サーバ側コンピュータデバイス140が、MICROSOFT WINDOWS(登録商標)オペレーティングシステムの管理下において動作する実施形態に対しては、サーバ側セキュリティサービス312’によって生成されるアクセストークンは、ネットワークログオン権利だけを有する模倣(impersonation)トークンである。すなわち、生成されるアクセストークンは、WINDOWS(登録商標)サーバベースのコンピュータ環境において要求されるように、アプリケーションが対話式に走るように開始するために使用するのに適さない。アプリケーションが対話式に走ることを許すために、対話式ログオン権利を有するプライマリアクセストークンが必要である。一実施形態において、生成されるアクセストークンは、適切な権利を提供するために修正される。他の実施形態においては、新しいトークンが、ユーザのために生成される。   For embodiments in which the server-side computing device 140 operates under the control of the MICROSOFT WINDOWS® operating system, the access token generated by the server-side security service 312 ′ is an imitation with only network logon rights ( imperonation) token. That is, the generated access token is not suitable for use to initiate an application to run interactively as required in a WINDOWS server based computing environment. In order to allow the application to run interactively, a primary access token with interactive logon rights is required. In one embodiment, the generated access token is modified to provide the appropriate rights. In other embodiments, a new token is generated for the user.

サーバ側コンピュータデバイス140がUnix(登録商標)ベースのオペレーティングシステムの管理下において動作する実施形態に対しては、サーバ側セキュリティサービス312’が、認証仮想チャネルを通じて、サーバ側シンクライアントアプリケーション350から受信する認証データを検証した場合、サーバ側シンクライアントアプリケーション350は、リソースへのユーザアクセスを認可する。これらの実施形態において、サーバ側セキュリティサービス312’は、アクセストークンを生成しない。   For embodiments in which server-side computing device 140 operates under the management of a Unix-based operating system, server-side security service 312 ′ receives from server-side thin client application 350 over an authentication virtual channel. When the authentication data is verified, the server-side thin client application 350 authorizes user access to the resource. In these embodiments, the server-side security service 312 'does not generate an access token.

一部の実施形態において、サーバがユーザを認証した後、サーバは、ユーザに利用可能なリソースの列挙を示す。これらの実施形態において、サーバは、複数のサーバによってホストされ、クライアントコンピュータデバイスに利用可能な、リソースの表示を説明するページを生成し得る。サーバは、次いで、表示のためにクライアントコンピュータデバイスに生成されたページを送信し得、ホストされるリソースの1つをアクセスするためのリクエストを、クライアントコンピュータデバイスから受信し得る。   In some embodiments, after the server authenticates the user, the server shows an enumeration of resources available to the user. In these embodiments, the server may generate a page that is hosted by multiple servers and that describes the display of resources available to the client computing device. The server may then send the generated page to the client computing device for display and may receive a request from the client computing device to access one of the hosted resources.

これらの実施形態の一部において、複数のサーバの1つによってホストされる利用可能なリソースの選択された一つは、次いで、クライアントコンピュータデバイスからユーザ認証データの更なる受信を要求せずに実行される。これらの実施形態の一部においては、サーバは、ユーザによる成功認証に応答して、サーバからユーザに利用可能なリソースをホストしている第2のサーバへの接続を開始する。これらの実施形態において、利用可能なリソースは、接続を通じて実行される。一部の実施形態においては、接続は仮想チャネルである。   In some of these embodiments, a selected one of the available resources hosted by one of the plurality of servers is then executed without requiring further reception of user authentication data from the client computing device. Is done. In some of these embodiments, the server initiates a connection from the server to a second server hosting resources available to the user in response to a successful authentication by the user. In these embodiments, the available resources are executed through the connection. In some embodiments, the connection is a virtual channel.

他の実施形態においては、第1のサーバは、利用可能なリソースの選択された一つをホストしている。これらの実施形態の一部においては、サーバは、既存の接続を通じて、リソースをユーザに対して利用可能にする。これらの実施形態の他の部分においては、サーバは、新しい接続を通じて、リソースをユーザに対して利用可能にする。それらの実施形態の一部においては、新しい接続は仮想チャネルを含む。   In other embodiments, the first server hosts a selected one of the available resources. In some of these embodiments, the server makes resources available to the user through existing connections. In other parts of these embodiments, the server makes resources available to users through new connections. In some of those embodiments, the new connection includes a virtual channel.

本発明は、一つ以上の製造品にまたはその上に組み入れられた一つ以上のコンピュータ読取可能プログラムとして提供され得る。製造品は、フロッピー(登録商標)ディスク、ハードディスク、CD ROM、フラッシュメモリカード、PROM、RAM、ROM、または磁気テープになり得る。一般に、コンピュータ読取可能プログラムは、任意のプログラミング言語において実施され得る。使用され得る言語の一部の例は、C、C++、またはJAVA(登録商標)を含む。ソフトウェアプログラムは、一つ以上の製造品にオブジェクトコードとして格納され得る。   The present invention may be provided as one or more computer readable programs incorporated in or on one or more articles of manufacture. The article of manufacture can be a floppy disk, hard disk, CD ROM, flash memory card, PROM, RAM, ROM, or magnetic tape. In general, a computer readable program may be implemented in any programming language. Some examples of languages that can be used include C, C ++, or JAVA. The software program can be stored as object code in one or more manufactured products.

発明が、特定の好ましい実施形態に関して示されおよび説明される一方、上記の特許請求の範囲によって定義されるような本発明の精神および範囲から逸脱することなく、形および詳細における様々な変更がその中にされ得ることが当業者によって理解されるであろう。   While the invention has been illustrated and described with respect to certain preferred embodiments, various changes in form and detail may be made without departing from the spirit and scope of the invention as defined by the appended claims. It will be appreciated by those skilled in the art that

図1は、本発明の例示的実施形態を行うために適した環境のブロック図である。FIG. 1 is a block diagram of an environment suitable for carrying out an exemplary embodiment of the present invention. 図2Aは、本発明との関係に有用なコンピュータの実施形態を示すブロック図である。FIG. 2A is a block diagram illustrating an embodiment of a computer useful in connection with the present invention. 図2Bは、本発明との関係に有用なコンピュータの実施形態を示すブロック図である。FIG. 2B is a block diagram illustrating a computer embodiment useful in connection with the present invention. 図3Aは、本発明が実行され得るネットワーク40の実施形態を示すブロック図である。FIG. 3A is a block diagram illustrating an embodiment of a network 40 in which the present invention may be implemented. 図3Bは、クライアントノードが利用可能なアプリケーションの実行を開始し、サーバがクライアントノードにアプリケーションの結果を示す、処理の実施形態を示すブロック図である。FIG. 3B is a block diagram illustrating an embodiment of a process in which a client node starts executing an available application and the server presents the result of the application to the client node. 図3Cは、クライアントノードがワールドワイドウェブを介して、利用可能なアプリケーションの実行を開始する、処理の実施形態を示すブロック図である。FIG. 3C is a block diagram illustrating an embodiment of a process where a client node initiates execution of an available application via the World Wide Web. 図3Dは、クライントノードと2つのサーバノードとの間の通信に対する、処理の実施形態を示すブロック図である。FIG. 3D is a block diagram illustrating an embodiment of a process for communication between a client node and two server nodes. 図4は、サーバコンピュータデバイスに、クライアントノードのユーザをリモートに認証するためのシステムの実施形態のブロック図である。FIG. 4 is a block diagram of an embodiment of a system for remotely authenticating a user of a client node to a server computing device.

Claims (36)

ユーザを、サーバベースのコンピュータ環境におけるサーバにリモートに認証するための方法であって、該方法は、
(a)クライアントコンピュータデバイスにおいて、ユーザ証明を受信するステップと、
(b)該クライアントコンピュータデバイスにおいて、該受信された証明に基づいて、ユーザ認証データを生成するステップと、
(c)サーバコンピュータデバイスに、該生成されたユーザ認証データを送信するステップと、
(d)該サーバコンピュータデバイスにおいて、該送信されたユーザ認証データに応答して、該ユーザを認証するステップと
を包含する、方法。
(e)前記送信されたユーザ認証データに基づいて、第1のサーバによって、ユーザ認証データを生成するステップと、
(f)第2のサーバに、該第1のサーバによって、該ユーザ認証データを送信するステップと、
(g)該受信されたユーザ認証データに応答して、該第2のサーバによって、前記ユーザを認証するステップと、
A method for remotely authenticating a user to a server in a server-based computing environment, the method comprising:
(A) receiving a user certificate at a client computing device;
(B) generating user authentication data based on the received certificate at the client computing device;
(C) transmitting the generated user authentication data to a server computing device;
(D) authenticating the user in response to the transmitted user authentication data at the server computing device.
(E) generating user authentication data by a first server based on the transmitted user authentication data;
(F) transmitting the user authentication data to the second server by the first server;
(G) authenticating the user by the second server in response to the received user authentication data;
前記第1のサーバと前記第2のサーバとの間の前記接続を通じて、前記ユーザが、該ユーザに利用可能なリソースにアクセスすることを許すステップをさらに包含する、請求項1に記載の方法。   The method of claim 1, further comprising allowing the user to access resources available to the user through the connection between the first server and the second server. ステップ(a)が、クライアントコンピュータデバイスにおいて、バイオメトリックユーザ証明を受信することを包含する、請求項1に記載の方法。   The method of claim 1, wherein step (a) comprises receiving a biometric user certificate at a client computing device. ステップ(a)が、クライアントコンピュータデバイスにおいて、時間ベースのパスコードを受信することを包含する、請求項1に記載の方法。   The method of claim 1, wherein step (a) includes receiving a time-based passcode at a client computing device. ステップ(a)が、クライアントコンピュータデバイスにおいて、スマートカードからユーザ証明を受信することを包含する、請求項1に記載の方法。   The method of claim 1, wherein step (a) comprises receiving a user certificate from a smart card at a client computing device. ステップ(b)が、前記クライアントデバイスにおいて、前記受信されたユーザ証明を表す暗号化されたビットストリングを生成することを包含する、請求項1に記載の方法。   The method of claim 1, wherein step (b) comprises generating an encrypted bit string representing the received user credentials at the client device. ステップ(b)が、前記受信された証明に基づいて、ユーザ認証データを、前記クライアントデバイスにあるセキュリティプロバイダサブシステムによって生成することを包含する、請求項1に記載の方法。   The method of claim 1, wherein step (b) comprises generating user authentication data based on the received certificate by a security provider subsystem at the client device. 前記ユーザ認証データが、外部の認証サービスを使用して生成される、請求項7に記載の方法。   The method of claim 7, wherein the user authentication data is generated using an external authentication service. 前記ユーザ認証データが、Microsoft Windows(登録商標) Security Service Provider Interface(SSPI)によって生成される、請求項7に記載の方法。   The method of claim 7, wherein the user authentication data is generated by a Microsoft Windows® Security Service Provider Interface (SSPI). 前記ユーザ認証データが、Generic Security Service Application Program Interface(GSSAPI)によって生成される、請求項7に記載の方法。   The method according to claim 7, wherein the user authentication data is generated by a Generic Security Service Application Program Interface (GSSAPI). ステップ(c)が、サーバコンピュータデバイスに少なくとも1つの仮想チャネルメッセージを送信することを包含し、該少なくとも1つの仮想チャネルメッセージが、前記生成されたユーザ認証データの少なくとも一部を含む、請求項1に記載の方法。   The step (c) includes transmitting at least one virtual channel message to a server computing device, the at least one virtual channel message including at least a portion of the generated user authentication data. The method described in 1. ステップ(d)が、
(d−a)前記サーバコンピュータデバイスにおいて、前記送信されたユーザ認証データを受信することと、
(d−b)該受信されたユーザ認証データをローカルに実行するセキュリティサブシステムに提供することと、
(d−c)該ローカルに実行するセキュリティサブシステムによって、該ユーザ認証データに応答して、前記ユーザを認証することと
を包含する、請求項1に記載の方法。
Step (d) is
(Da) receiving at the server computer device the transmitted user authentication data;
(Db) providing the received user authentication data to a security subsystem executing locally;
The method of claim 1, comprising: (dc) authenticating the user in response to the user authentication data by the locally executing security subsystem.
(e)複数のサーバによってホストされ、前記クライアントコンピュータデバイスに利用可能なリソースの表示を示すページを、前記サーバによって、生成するステップと、
(f)表示のために該クライアントコンピュータデバイスに、該生成されたページを、該サーバによって、送信するステップと、
(g)該ホストされるリソースの1つにアクセスするリクエストを、該クライアントコンピュータデバイスから受信するステップと、
(h)該クライアントコンピュータデバイスからユーザ認証データの更なる受信を要求せずに、該複数のサーバの1つによってホストされる該利用可能なリソースの選択された1つを実行するステップと
をさらに包含する、請求項1に記載の方法。
(E) generating a page hosted by a plurality of servers and indicating a display of resources available to the client computing device by the server;
(F) sending the generated page by the server to the client computing device for display;
(G) receiving a request from the client computing device to access one of the hosted resources;
(H) executing a selected one of the available resources hosted by one of the plurality of servers without requesting further reception of user authentication data from the client computing device; The method of claim 1 comprising.
前記ユーザによる成功認証に応答して、前記クライアントコンピュータデバイスから該ユーザに利用可能なリソースをホストしているサーバへの接続を開始するステップをさらに包含する、請求項1に記載の方法。   The method of claim 1, further comprising initiating a connection from the client computing device to a server hosting resources available to the user in response to a successful authentication by the user. 前記接続が、仮想チャネルを含む、請求項14に記載の方法。   The method of claim 14, wherein the connection comprises a virtual channel. サーバベースのコンピュータ環境におけるサーバに、ユーザをリモートに認証するためのシステムであって、該システムは、
クライアント側認証モジュール、クライアント側セキュリティプロバイダサブシステム、およびクライアント側仮想チャネルドライバを含むクライアントコンピュータデバイスであって、該クライアント側認証モジュールは、ユーザ認証証明を受信し、該クライアント側セキュリティプロバイダサブシステムに該証明を送信し、該クライアント側セキュリティプロバイダサブシステムは、送信のために、該ユーザ認証証明に基づいて、ユーザ認証データを生成し、該クライアント側仮想チャネルドライバに該ユーザ認証データを送信する、クライアントコンピュータデバイスと、
サーバ側仮想チャネルドライバ、サーバ側セキュリティプロバイダサブシステム、およびサーバ側認証モジュールを含むサーバコンピュータデバイスであって、該サーバ側仮想チャネルドライバは、該送信されたユーザ認証データを受信し、該サーバ側認証モジュールに該受信された認証データを提供し、該サーバ側認証モジュールは、該サーバ側セキュリティプロバイダサブシステムに該ユーザ認証データを送信し、該セキュリティプロバイダサブシステムは、認証表示を用いて該ユーザ認証データに応答し、受信されたユーザ認証データに基づいて新しいユーザ認証データを生成する、サーバコンピュータデバイスと、
第1のサーバコンピュータデバイスによって生成される、該新しいユーザ認証データを受信し、該受信された新しいユーザ認証データに基づいて、ユーザを認証する、第2のサーバコンピュータデバイスと
を備える、システム。
A system for remotely authenticating a user to a server in a server-based computing environment, the system comprising:
A client computing device including a client-side authentication module, a client-side security provider subsystem, and a client-side virtual channel driver, wherein the client-side authentication module receives user authentication credentials and sends the client-side security provider subsystem A client that sends a certificate, and the client-side security provider subsystem generates user authentication data based on the user authentication certificate for transmission and sends the user authentication data to the client-side virtual channel driver. A computer device;
A server computer device including a server-side virtual channel driver, a server-side security provider subsystem, and a server-side authentication module, wherein the server-side virtual channel driver receives the transmitted user authentication data and receives the server-side authentication Providing the received authentication data to a module, wherein the server-side authentication module sends the user authentication data to the server-side security provider subsystem, the security provider subsystem using the authentication indication A server computing device that is responsive to the data and generates new user authentication data based on the received user authentication data;
A second server computer device that receives the new user authentication data generated by the first server computer device and authenticates the user based on the received new user authentication data.
前記クライアントコンピュータデバイスが、パーソナルコンピュータを備える、請求項16に記載のシステム。   The system of claim 16, wherein the client computing device comprises a personal computer. 前記クライアントコンピュータデバイスが、携帯情報端末を備える、請求項16に記載のシステム。   The system of claim 16, wherein the client computing device comprises a personal digital assistant. 前記クライアントコンピュータデバイスが、携帯電話を備える、請求項16に記載のシステム。   The system of claim 16, wherein the client computing device comprises a mobile phone. 前記クライアント側認証モジュールが、Microsoft Windows(登録商標)グラフィカル識別および認証モジュールを備える、請求項16に記載のシステム。   The system of claim 16, wherein the client-side authentication module comprises a Microsoft Windows® graphical identification and authentication module. 前記クライアント側認証モジュールが、pam_krbモジュールを使用する、Unix(登録商標) Pluggable Authentication Managerを備える、請求項16に記載のシステム。   The system of claim 16, wherein the client-side authentication module comprises a Unix® Pluggable Authentication Manager that uses a pam_krb module. 前記クライアント側認証モジュールが、Unix(登録商標) kinitコマンドプログラムを備える、請求項16に記載のシステム。   The system of claim 16, wherein the client-side authentication module comprises a Unix® quit command program. 前記クライアント側セキュリティプロバイダサブシステムが、Microsoft Windows(登録商標) Security Service Provider Interface(SSPI)を備える、請求項16に記載のシステム。   The system of claim 16, wherein the client-side security provider subsystem comprises a Microsoft Windows® Security Service Provider Interface (SSPI). 前記クライアント側セキュリティプロバイダサブシステムが、Generic Security Service Application Program Interface(GSSAPI)を備える、請求項16に記載のシステム。   The system of claim 16, wherein the client-side security provider subsystem comprises a Generic Security Service Application Program Interface (GSSAPI). 前記クライアント側仮想チャネルドライバが、前記ユーザ認証データの少なくとも一部を含む、少なくとも1つの仮想チャネルメッセージを送信する、請求項16に記載のシステム。   The system of claim 16, wherein the client-side virtual channel driver sends at least one virtual channel message that includes at least a portion of the user authentication data. 前記サーバ側認証モジュールが、Microsoft Windows(登録商標)グラフィカル識別および認証モジュールを備える、請求項16に記載のシステム。   The system of claim 16, wherein the server-side authentication module comprises a Microsoft Windows® graphical identification and authentication module. 前記サーバ側セキュリティプロバイダサブシステムが、Microsoft Windows(登録商標) Security Service Provider Interface(SSPI)を備える、請求項16に記載のシステム。   The system of claim 16, wherein the server-side security provider subsystem comprises a Microsoft Windows® Security Service Provider Interface (SSPI). 前記サーバ側セキュリティプロバイダサブシステムが、Generic Security Service Application Program Interface(GSSAPI)を備える、請求項16のシステム。   The system of claim 16, wherein the server-side security provider subsystem comprises a Generic Security Service Application Program Interface (GSSAPI). 前記サーバ側セキュリティプロバイダサブシステムが、前記ユーザ認証データに応答して、ログオンセッションおよび対応するアクセストークンを生成する、請求項16に記載のシステム。   The system of claim 16, wherein the server-side security provider subsystem generates a logon session and a corresponding access token in response to the user authentication data. サーバベースのコンピュータ環境におけるサーバに、ユーザをリモートに認証するための、コンピュータ読取可能プログラム手段が組み入れられている製造品であって、該製造品は、
ユーザ証明を受信するためのコンピュータ読取可能プログラム手段と、
該受信された証明に基づいて、ユーザ認証データを生成するためのコンピュータ読取可能プログラム手段と、
該生成されたユーザ認証データをサーバコンピュータデバイスに送信するためのコンピュータ読取可能プログラム手段と、
該送信されたユーザ認証データに応答して、該ユーザを認証するためのコンピュータ読取可能プログラム手段と、
該送信されたユーザ認証データに基づいて、新しいユーザ認証データを生成するためのコンピュータ読取可能プログラム手段と、
第2のサーバコンピュータデバイスに、該サーバコンピュータデバイスによって、該新しいユーザ認証データを送信するためのコンピュータ読取可能プログラム手段と、
該第2のサーバコンピュータデバイスによって、該送信されたユーザ認証データに応答して、該ユーザを認証するためのコンピュータ読取可能プログラム手段と
を備える、製造品。
An article of manufacture incorporating computer readable program means for remotely authenticating a user to a server in a server-based computing environment, the article comprising:
Computer readable program means for receiving a user certificate;
Computer readable program means for generating user authentication data based on the received certificate;
Computer readable program means for transmitting the generated user authentication data to a server computing device;
Computer readable program means for authenticating the user in response to the transmitted user authentication data;
Computer readable program means for generating new user authentication data based on the transmitted user authentication data;
Computer readable program means for transmitting the new user authentication data to a second server computer device by the server computer device;
An article of manufacture comprising: computer readable program means for authenticating the user in response to the transmitted user authentication data by the second server computing device.
受信するための前記コンピュータ読取可能プログラム手段が、バイオメトリックユーザ証明を受信するためのコンピュータ読取可能プログラム手段を備える、請求項30に記載の製造品。   32. The article of manufacture of claim 30, wherein the computer readable program means for receiving comprises computer readable program means for receiving a biometric user certificate. 受信するための前記コンピュータ読取可能プログラム手段が、スマートカードからユーザ証明を受信するためのコンピュータ読取可能プログラム手段を備える、請求項30に記載の製造品。   32. The article of manufacture of claim 30, wherein the computer readable program means for receiving comprises computer readable program means for receiving a user certificate from a smart card. 生成するための前記コンピュータ読取可能プログラム手段が、前記受信されたユーザ証明を表す暗号化されたビットストリングを生成するためのコンピュータ読取可能プログラム手段を備える、請求項30に記載の製造品。   31. The article of manufacture of claim 30, wherein the computer readable program means for generating comprises computer readable program means for generating an encrypted bit string representative of the received user credentials. 生成するための前記コンピュータ読取可能プログラム手段が、前記受信されたユーザ証明に基づいて、ユーザ認証データを生成するためのコンピュータ読取可能プログラム手段を備える、請求項30に記載の製造品。   32. The article of manufacture of claim 30, wherein the computer readable program means for generating comprises computer readable program means for generating user authentication data based on the received user credentials. 送信するための前記コンピュータ読取可能プログラム手段が、サーバコンピュータデバイスに少なくとも1つの仮想チャネルメッセージを送信するためのコンピュータ読取可能プログラム手段を備え、該少なくとも1つの仮想チャネルメッセージが、前記生成されたユーザ認証データの少なくとも一部を含む、請求項30に記載の製造品。   The computer readable program means for transmitting comprises computer readable program means for transmitting at least one virtual channel message to a server computer device, wherein the at least one virtual channel message is generated by the generated user authentication. 32. The article of manufacture of claim 30, comprising at least a portion of the data. 前記ユーザによる成功認証に応答して、前記クライアントコンピュータデバイスから該ユーザに利用可能なリソースをホストしているサーバへの接続を開始するためのコンピュータ読取可能プログラム手段をさらに備える、請求項30に記載の製造品。   The computer-readable program means for initiating a connection from the client computing device to a server hosting resources available to the user in response to a successful authentication by the user. Manufactured goods.
JP2006541682A 2003-11-26 2004-11-23 Method and apparatus for remote authentication in a server-based computer system Withdrawn JP2007520791A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US48170803P 2003-11-26 2003-11-26
PCT/US2004/039442 WO2005055025A1 (en) 2003-11-26 2004-11-23 Methods and apparatus for remote authentication in a server-based

Publications (1)

Publication Number Publication Date
JP2007520791A true JP2007520791A (en) 2007-07-26

Family

ID=34652233

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006541510A Withdrawn JP2007520789A (en) 2003-11-26 2004-11-23 Method and apparatus for remote authentication in a server-based computer system
JP2006541682A Withdrawn JP2007520791A (en) 2003-11-26 2004-11-23 Method and apparatus for remote authentication in a server-based computer system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006541510A Withdrawn JP2007520789A (en) 2003-11-26 2004-11-23 Method and apparatus for remote authentication in a server-based computer system

Country Status (7)

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

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759813B1 (en) 2005-12-12 2007-09-20 한국전자통신연구원 Method for authenticating user using biometrics information
US8997193B2 (en) * 2012-05-14 2015-03-31 Sap Se Single sign-on for disparate servers
KR102447501B1 (en) 2015-12-24 2022-09-27 삼성전자주식회사 Electronic device for processing biometric information and method for controlling thereof
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives
JP6860796B2 (en) * 2019-08-08 2021-04-21 富士通クライアントコンピューティング株式会社 Information processing systems, information processing equipment and programs

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

Also Published As

Publication number Publication date
IL175841A0 (en) 2006-10-05
EP1687693A1 (en) 2006-08-09
KR20060118510A (en) 2006-11-23
CA2547407A1 (en) 2005-06-16
JP2007520789A (en) 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
KR20060120148A (en) 2006-11-24
EP1695180A1 (en) 2006-08-30

Similar Documents

Publication Publication Date Title
US8112789B2 (en) Systems and methods for facilitating distributed authentication
EP1839224B1 (en) Method and system for secure binding register name identifier profile
US8418234B2 (en) Authentication of a principal in a federation
US7246230B2 (en) Single sign-on over the internet using public-key cryptography
US7877492B2 (en) System and method for delegating a user authentication process for a networked application to an authentication agent
US6629246B1 (en) Single sign-on for a network system that includes multiple separately-controlled restricted access resources
CN112995219B (en) Single sign-on method, device, equipment and storage medium
US20050177730A1 (en) System and method for authentication via a single sign-on server
US8042165B2 (en) Method and system for requesting and granting membership in a server farm
US20030005117A1 (en) Pluggable authentication and access control for a messaging system
US20060236385A1 (en) A method and system for authenticating servers in a server farm
JP2007520791A (en) Method and apparatus for remote authentication in a server-based computer system
Lopez et al. A standards-based approach to Federated Identity

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080205