Access control system and method

Abstract: When a server (102) receives a service request from a client (105,106,103), identifiers of a terminal (S201) and of a user (S202) are acquired from the service request and authority with respect to the service request is uniquely decided (S203) from the terminal and user identifiers acquired. It is then determined (S304), using the authority decided, whether or not to accept the service request.

Description: This invention relates to an access control system and method, particular access control of a distributed system in which the resources of remote sites are shared using a computer network, by way of example. Access control in a distributed system generally is achieved by combining an authentication mechanism in the distributed system with a resource protection mechanism at each site. For example, a distributed file system, which is a means of sharing files via a network, is used in a comparatively small-scale network environment such as a local area network (LAN). In such case user authentication means at the site level is appropriated in the network environment as well by unifying modes of user management, and resource protection is achieved based upon the authority granted to authenticated users. The file access control means for implementing this generally is provided by the operating system (OS). In a comparatively large-scale network such as a wide-area network (WAN), on the other hand, use is made of authentication by an authentication system because unifying modes of user management is difficult. In a large-scale network environment, opportunities to share resources per se are fewer than in a small-scale network. However, in terms of providing the mechanism eventually used as the resource protection mechanism, the situation is the same as in the case of the small-scale network environment. However, the following problems arise in the art described above: The first problem is that satisfactory reliability cannot be assured merely by applying the site-level user authentication mechanism to a distributed system. Even if modes of user management are unified between sites, no legal force is involved and a certain site is capable of individually altering some of the management information. In cases such as these, it is possible for a site administrator to impersonate a user and it is difficult for the resource provider to detect this. The second problem is that in a scenario in which the resource protection mechanism provided by the operating system (OS) is applied to distributed resources, ordinarily this is effective only at the site at which the resource protection mechanism is operating. Consequently, if there is an externally applied request for operation of a resource, the request must be dealt with based upon the rightful authority given to the site. However, as long as users once authenticated possess the same authority, it is not possible to cope with a situation in which reliability or level of authorization differ depending upon the site, even for the same user. Accordingly, a concern of the present invention is to provide an access control system and method in which, when shared resources in a distributed system are accessed, the shared resources can be protected safely and flexibly. United States Patent Specification No US-A-4672572 discloses an access control method for controlling access to a distributed system in which resources of remote sites are shared using a computer network. United States Patent Specification No US-A-5261070 discloses the concept of generating new identification data at each cycle. An article by Tanenbaum et al, entitled "The amoeba distributed operating system - A status report computer communications, NL, Elsevier science publishers BV, Amsterdam, vol. 14 no.6, page 324-335 discloses an access control method similar to the first mentioned US Patent. According to one aspect of the present invention there is provided an access method as set out in claim 1 and an access control system as set out in claim 7. In accordance with the present invention having the configuration described above, it is possible to provide an access control system and method in which, when shared resources in a distributed system are accessed, the shared resources can be protected safely and flexibly. Embodiments of the present invention will now be described with reference to the accompanying drawings, in which : Fig. 1 is a diagram illustrating an example of the configuration of a network environment according to an embodiment of the present invention; Fig. 2 is a flowchart showing an example of a procedure through which a server processes a service request from a client; Fig. 3 is a flowchart showing an example of a procedure through which a server processes a connection request from a client; Fig. 4 is a flowchart showing an example of a procedure through which a relay server processes a service request from a client; Fig. 5 is a flowchart showing an example of a procedure through which a relay server processes a connection request from a client; Fig. 6 is a diagram showing a first example of a storage medium storing program codes according to the present invention; and Fig. 7 is a diagram showing a second example of a storage medium storing program codes according to the present invention. An access control system according to embodiments of the present invention will be described in detail with reference to the drawings. The embodiments described below relate to a distributed system having a plurality of users, particularly a distributed system in which the authorities of individual users are managed uniformly even in a distributed environment in which the modes of user management differ from one site to another. [First Embodiment] Fig. 1 is a diagram illustrating an example of the configuration of a network environment according to an embodiment of the present invention. As shown in Fig. 1, a group of terminals, described later, are connected to a network terminal 101 to construct a computer network. The computer network described here includes an Ethernet, a LAN using an FDDI, a WAN constructed by interconnecting networks by a public telephone line or leased line, etc. A server terminal 102 is a computer system such as a work station or personal computer run by an application provided in a distributed system. Client terminals 103, 105, 106 are computer systems, which are similar to the server terminal 102, run by applications utilizing resources in the distributed system. An authentication server terminal 104 is a computer system, which is similar to the server terminal 102, run by an authentication server which provides an authentication mechanism in the network environment. The authentication server terminal 104 is provided by a Kerberos system, by way of example. These computer systems are assigned their own identifiers, which are acquired by communication between any of the terminals. Further, the above-mentioned server application, client applications and authentication server are items of software stored on an external storage medium such as a floppy disk, a hard disk, a magneto-optic drive (MO), a CD-ROM, a CD-R or a magnetic tape, or in any non-volatile semiconductor memory device such as a ROM or flash memory. When necessary the particular software is read in the memory possessed by the terminal and is then executed by a CPU with which the same terminal is provided. It is unnecessary to assign a dedicated terminal to the application software executed, and servers, clients, etc. may operate a certain terminal simultaneously. Further, the term "server" or "client" is a generic term that relates to the role of the application concerning a prescribed service and does not necessarily have a fixed meaning in terms of an application. In actuality, a certain application may be a server with regard to a certain service or a client with regard to a different service. Fig. 2 is a flowchart showing an example of a procedure through which a server processes a request from a client. The flowchart has a first step S201, at which a terminal identifier is acquired from a service request sent from a client. The user identifier is then acquired from the service request at step S202. Here the processing for acquiring the user identifier employs authentication means supplied by the authentication server. However, an arrangement may be adopted in which the identifier is acquired using means supplied in dependence upon the network environment, e.g. identity inquiry means in conformity with RFC1413 in the TCP/IP (Transmission Control/Internet Protocol) network environment. Next, at step S203, the corresponding authority of the server terminal is decided based upon the terminal identifier and user identifier acquired. If the requested service is to gain access to resources (e.g. files, devices, etc.) protected by the OS, the authority of the server terminal is an authority defined by the OS. If the requested service is a resource (e.g. shared data in a database management system) protected by the server, then the authority of the server terminal is an authority defined independently by the server. This is followed by step S204, at which it is determined whether the authority regarding the service request is valid (whether the service request is within the limits of authority). If the authority is valid, then the service request is processed at step S205. Of course, if the authority regarding the service request is invalid (the service request is outside the limits of authority), then the service request is not processed. The details of processing at steps S203 and S204 will now be described. If a subset of a quotient lattice decided by a certain equivalence relation is taken in a direct_product lattice of a set lattice corresponding to respective ones of the terminal identifiers and user identifiers, an ordered relation in the quotient lattice will hold in this subset. A set M comprising all maximal elements is decided in relation to the ordered relation. On the other hand, take an element r of quotient lattices corresponding to the terminal identifier and user identifier obtained at steps S201 and S202. When there is one for which m r holds, where m is the element of M, the authority with regard to the request is taken as being valid. In other words, it is assumed that the above-mentioned equivalence relation, the set of maximal elements and a unique corresponding relationship from the maximal elements to the authority of the server terminal have been obtained in advance with regard to each service. Then, at step S203, a equivalence class with regard to the terminal identifier and user identifier is decided. It is then determined at step S204 whether there is an ordered relation between this equivalence class and a series of maximal elements. Since all sets in the foregoing are equivalence sets, they are expressed by well-known means, such as a bit string. The equivalence relation, on the other hand, is means for converting the bit string to another, shorter bit string in accordance with rules given by declaration or procedurally. Abnormalities due to a variety of faults can occur at steps S201 and S202. In such case the element of the quotient lattice corresponding to the least upper bound of the direct product lattice relating to the terminal identifier is substituted as the equivalence class at step S203 in response to an abnormality at step S201. The element of the quotient lattice corresponding to the least upper bound of the direct product lattice relating to the user identifier is substituted in response to an abnormality at step S202. The least upper bound of the quotient lattice is substituted in response to abnormalities at both steps S201 and S202. By way of example, in a case where a service provided to a user group composed of prescribed users is restricted at a terminal connected to a prescribed network, the following is given as an equivalence relation: "whether or not the terminal is included in a sublattice of a direct product lattice decided by a set of identifiers of terminals connected to a specified network and a set of identifiers of users belonging to a specified user group". In other words, the pair "whether or not the terminal is connected to a specified network" and "whether or not the terminal belongs to a specified user group" is given as the equivalence relation. As a result, the set of terminal identifiers and the set of user identifiers are each split into two sublattices that do not overlap each other, whereupon there is obtained a quotient lattice of a direct product set comprising 16 elements. This quotient lattice clearly is isomorphic to the direct product lattice of the quotient lattice relating to respective ones of the terminal identifier and user identifier. Accordingly, only one equivalence class corresponding to all pairs of terminal identifiers and user identifiers which will accept a service request is decided in the above-mentioned quotient lattice. This equivalence class is made to correspond to the authority over a service by deciding a set of maximal elements in which this equivalence class is adopted as one element. By virtue of the foregoing operation, the equivalence relation and the set of maximal elements regarding a service, as well as the corresponding relationship to the authority, are specified. In this setting, the pair of terminal identifiers and user identifiers obtained from the service request of the client corresponds to some equivalence class of the quotient lattice. However, acceptance of the request is limited to a case corresponding to an equivalence class employed as a maximal element. More specifically, in accordance with this embodiment, since an equivalence relation in a set naturally corresponds to an equivalence relation in a set lattice, performing grouping with regard to terminals or users is nothing more than shrinking a large set lattice of elements to a small quotient lattice. As a result, a quotient lattice possessing universality with respect to all quotient lattices used by a server exists, and any quotient lattice becomes a quotient lattice obtained by deciding a separate equivalence relation with respect to the quotient lattice possessing universality. The maximal elements decided by the above-mentioned example in which there is a limitation upon services provided to a specified user group at a terminal connected to a specified network correspond to a sublattice of the universal quotient lattice. Accordingly, this is equivalent to effects obtained in a case where, instead of making the setting in the above-mentioned example, use is made of an equivalence relation which determines a quotient lattice having universality and a set of maximal elements comprising the least upper bounds of the sublattice of the quotient lattice. Thus, in accordance with this embodiment, objects which determine whether authority is given or not can be aggregated in arbitrary units. This makes it possible to establish access control in highly flexible fashion. Furthermore, in accordance with embodiments described below, it will be illustrated that the present invention is effective also in regard to supporting a distributed environment in which user management modes are different. More specifically, if all pairs of terminal identifiers and user identifiers regarding one and the same user are regarded as being one equivalent, and if this is performed with respect to all users, then one equivalence relation will be obtained. The element of the quotient lattice obtained by this equivalence relation is decided, with regard to individual users, without relation to differences in the user management modes. Accordingly, the set of maximal elements may be decided regarding the quotient lattice as being a universal quotient lattice, and a simpler quotient lattice may be decided using a separate equivalence relation. Further, in order to inhibit illegitimate access from a terminal having poor security, it is also possible to adopt an arrangement in which the equivalence class regarding one and the same user is divided into two parts in conformity with the level of security, and weak authority is given to the equivalence class having the lower level. [Second Embodiment] An access control system according to a second embodiment of the present invention will now be described. In the second embodiment, elements substantially the same as those of the first embodiment are designated by like reference characters and need not be described again. The procedure shown in Fig. 2 makes it possible, even for one and the same user, to arbitrarily set the level of authority in dependence upon the terminal utilized by this user. However, the above-mentioned procedure is such that authentication processing regarding a user is executed with regard to all service requests, and problems in terms of efficiency arise in a case where a service request is issued repeatedly. Accordingly, in the second embodiment, from the standpoint that it will suffice to assure security below a so-called transport level, authentication processing is executed when the connection of a transport level is set. Fig. 3 is a flowchart showing an example of a processing procedure executed when establishing the connection of a transport level. At steps S301 through S303, a terminal identifier and a user identifier are acquired from a connection request and the corresponding authority in terms of the server terminal is decided. This is similar to the processing of steps S201 and S203 shown in Fig. 2. It is determined at step S304 whether the decided authority is valid at the server. If the authority is valid, then the connection request is accepted at step S305. Of course, if the authority that has been decided is not valid at the server, then the connection request is not accepted. The processing procedure for a service request in a case where a connection request is processed in accordance with the procedure shown in Fig. 3 is modified to exclude the steps from S201 to S203 from the procedure of Fig. 2 and, in their place, retrieve the authority decided at step S303 from the service request. This modification of the procedure is easy to perform. Specifically, it will suffice to record a pair consisting of a connection identifier and the authority and retrieve the authority from the connection identifier at step S305 when the service request is processed. It should be noted that the pair consisting of the connection identifier and the authority is destroyed autonomously at the server when the connection is broken. The processing of steps S303 and S304 is similar to the processing of steps S203 and S204 shown in Fig. 2. However, rather than using settings relating to services, use is made of settings relating to a connection, namely an equivalence relation, a set of maximal elements and a unique corresponding relationship from the maximal elements to the authority of the server terminal. As for the settings relating to a connection and the settings relating to a series of services, usually whatever satisfies the criteria in the former is selected so as to satisfy the criteria in the latter, although in general the two may be independent of each other. [Third Embodiment] An access control system according to a third embodiment of the present invention will now be described. In the third embodiment, elements substantially the same as those of the first embodiment are designated by like reference characters and need not be described again. In a distributed system of a certain type, a certain type of server (referred to below as a "relay server") is provided. Specifically, service requests issued by a plurality of clients simultaneously at client stations are sent to a server collectively by the relay server and messages sent from a server are distributed to the clients by the relay server. Such a configuration is very effective in a case where replicas of shared resources are held at the client terminals and in a case where messages from the server are sent to a series of clients in the manner of a broadcast. In a configuration of this kind, it is possible to simplify the procedure shown in Fig. 2 or Fig. 3, as will be described below. First, processing for confirming authority is performed between a server and a relay server in accordance with the procedure shown in Fig. 2 or Fig. 3. The reason for this is that a service which a server provides directly to a relay server differs from that provided to a client; the relay server provides a mechanism for intercepting a request from the client. Accordingly, steps S203 and S204 shown in Fig. 2 are executed based upon setting relating to the service. Step S205, rather than being a step for processing a service request, is a step for processing a service intercept request. It should be noted that the service intercept request processing per se is executed in accordance with the procedure from step S203 onward in the first embodiment using a user identifier and terminal identifier of the relay server obtained through the procedure described below. Fig. 4 is a flowchart illustrating an example of a procedure, which corresponds to Fig. 2, which a relay server executes with respect to each client in a distributed system of the kind set forth above. The flowchart has a first step S401, at which a user identifier is acquired from a service request. Since a relay server and a client are operating one and the same terminal, the processing for acquiring the user identifier is capable of being executed securely and efficiently without using an authentication server or the like. Next, in a case where various settings relating to a series of services have been provided by a server, authority is decided at step S402 and the validity thereof with respect to the service request is discriminated at step S403. Steps S402 and S403 are for suppressing needless relaying of service requests. Though it is preferred that this actually be carried out, it is possible for this to be omitted. Finally, service-request intercept processing is executed at step S404. This processing involves transferring, to the server, a message obtained by adding the user identifier acquired at step S401 onto the request message of the client. The user identifier added on is nothing more than a user identifier necessary in service-request intercept processing at the relay server. Fig. 5 is a flowchart illustrating an example of a procedure, which corresponds to Fig. 3, which a relay server executes with respect to each client. Step S501 in Fig. 5 is for acquiring a user identifier from a connection request in the same manner as at step S401 in Fig. 4. Next, in a case where various settings relating to a connection request have been provided by a server, authority is decided at step S502 and the validity of the decided authority is discriminated at step S503. Steps S502 and S503 are for suppressing needless relaying of connection requests. Though it is preferred that this actually be carried out, it is possible for this to be omitted. Finally, at step S504, the connection request is accepted and the pair consisting of the connection identifier and user identifier received is recorded. Thereafter, the relay server subjects the accepted connection to processing for intercepting a service request from a client. This intercept processing involves transferring, to the server, a message obtained by adding the user identifier recorded at step S504 onto the request message of the client. It should be noted that the pair consisting of the recorded connection identifier and user identifier is destroyed autonomously at the relay server when the connection is broken. [Fourth Embodiment] An access control system according to a fourth embodiment of the present invention will now be described. In the fourth embodiment, elements substantially the same as those of the first embodiment are designated by like reference characters and need not be described again. In the third embodiment, authentication of the relay server by a third party such as an authentication server may be omitted in a case where the security of the terminal being operated by the relay server is assured and the relay server is a privileged process in the OS at this terminal. For example, in a TCP/IP network environment, privilege is necessary in an address setting based upon a port number of No. 1023 or less, depending upon the OS of the terminal. In accordance with this embodiment, the relay server performs the address setting based upon a privileged port number, and the server verifies whether this address is one that has been set by the relay server, thereby making possible identity inquiry of the relay server without relying upon third-party authentication means. Here simple verification means will suffice, such as means for performing regression transfer of any bit pattern selected randomly by communication using the above-mentioned privileged port. The reason for this is that as long as the security of the terminal is assured, an unlawful privileged process which sends back the bit pattern cannot exist. Of course, such means are hazardous in a WAN environment because the reliability of intervening signal paths cannot in general be assured but they are practical in many LAN environments used in offices or the like. [Other Embodiments] The present invention can be applied to a system constituted by a plurality of devices (e.g., a host computer, interface, reader, printer, etc.) or to an apparatus comprising a single device (e.g., a copier or facsimile machine, etc.). Further, it goes without saying that the object of the present invention can also be achieved by providing a storage medium storing program codes for performing the aforesaid functions of the foregoing embodiments to a system or an apparatus, reading the program codes with a computer (e.g., a CPU or MPU) of the system or apparatus from the storage medium, and then executing the program. In this case, the program codes read from the storage medium implement the functions according to the embodiments, and the storage medium storing the program codes constitutes the invention. Further, the storage medium, such as a floppy disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, non-volatile type memory card or ROM can be used to provide the program codes. Furthermore, besides the case where the aforesaid functions according to the embodiments are implemented by executing the program codes read by a computer, it goes without saying that the present invention covers a case where an operating system (OS) or the like working on the computer performs a part of or the entire process in accordance with the designation of program codes and implements the functions according to the embodiment. Furthermore, it goes without saying that the present invention further covers a case where, after the program codes read from the storage medium are written to a function extension board inserted into the computer or to a memory provided in a function extension unit connected to the computer, a CPU or the like contained in the function extension board or function extension unit performs a part of or the entire process in accordance with the designation of program codes and implements the function of the above embodiments. In a case where the present invention is applied to the above-mentioned storage medium, program codes corresponding to the flowchart described earlier are stored on this storage medium. More specifically, modules illustrated in the example of the memory map of Fig. 6 or Fig. 7 are stored on the storage medium. Specifically, it will suffice to store program codes of at least modules of "identifier acquisition", "authority decision" and "validity judgment" on the storage medium or to store program codes of least modules of "identifier acquisition A", "identifier add-on" and "transmission" for relay means and program codes of at least "reception", "identifier acquisition B", "authority decision" and "validity judgment" for service providing means. As many apparently widely different embodiments of the present invention can be made without departing from the scope thereof, it is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims.

Claims: A method of controlling access via a computer network to a server terminal having resources from a client terminal at which a plurality of client applications can be performed, characterised by comprising: a first acquisition step (S201, S301, S401, S501) of intercepting a service request from a user by relay means in the client terminal and acquiring a user identifier from the intercepted service request; a step of adding the user identifier to the service request; a transmission step (S201, S301, S401, S501) of transmitting to the server a request message onto which the acquired user identifier has been added by the relay means; a receiving step (S202, S302) of receiving at the server terminal the service request message transmitted from the client terminal, a second acquisition step of acquiring at the server terminal the user identifier which has been added to the received service request message and the terminal identifier of the relay means that transmitted the request message; a decision step (S203, S303, S402, S502) of uniquely deciding the authority of the service request based upon the terminal identifier and user identifier that have been acquired by the server terminal, and a judging step (S204, S304, S403, S503) of judging, using the authority that has been decided, whether or not to accept the service request. A method according to claim 1, wherein said first acquisition step acquires the user identifier for every user service request intercepted by the relay means. A method according to claim 1 or claim 2, wherein said first acquisition step acquires the user identifier when a connection is requested. A method according to claim 1, wherein said second acquisition step acquires the terminal identifier of said relay means for every service-intercept request received from said relay means. A method according to any preceding claim, wherein said second acquisition step acquires the terminal identifier of said relay means when a connection is requested by said relay means. A method according to any preceding claim, wherein when a service-intercept request is made using privileged resources at a client terminal at which said intercept means operates, said service providing means accepts this service-intercept request. An access control system for controlling access via a computer network to a server terminal (102) having resources from a client terminal (103,105 and 106) at which a plurality of client applications can be performed, characterised in that : the client terminal (103,105 and 106) comprises: relay means adapted to intercept a service request from each client application; to acquire a user identifier in response to each intercepted request and to transmit from the client terminal to the server terminal a service request message to which the acquired user identifier has been added, and means for distributing to the client a message received from the server terminal; and the server terminal (102) includes: service providing means for acquiring the user identifier added onto the service request message and the terminal identifier of the relay means that transmitted the service request message, uniquely deciding the authority of the service request based upon the terminal identifier and user identifier that have been acquired, and judging, using the authority that has been decided, whether or not to accept the service request and providing the requested service to the client terminal from which the service was requested on the basis of the decided authority. A storage medium storing processor executable instructions for controlling an electronic processor to carry out all of the steps of the method of any one of claims 1 to 6.

Inventors: YOSHIMOTO MASAHIKO, YOSHIMOTO, MASAHIKO
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1997
Main classification: H04L29
IPC codes: G06F13, G06F21, G06F12, H04L29