This application claims the benefit of and priority to Japanese Application Number 2006-78568, filed Mar. 22, 2006, the contents of which are incorporated by reference herein in its entirety.
1. Field
The present disclosure relates to creating authentication settings for a service that requires confidentiality in a service-oriented architecture.
2. General Background
With the wide use of the Internet, the number of systems handling electronic commerce or the like by using the Web has been increasing. These systems handle information, such as personal information, passwords and information on money, the confidentiality of which must be secured.
In addition, with the spread of the concept of a service-oriented architecture, services scattered around a network have been combined with one another, and thereby the services thus combined have been increasingly used as more advanced services.
Web Service Security (WS-Security) implemented with WebSphere Application Server (WebSphere is a registered trademark of International Business Machines Corporation in the United States, other countries, or both.) is available as a technology for these systems providing services handling electronic commerce and the like by using the Web. In WS-Security, definitions are given to methods such as adding a signature to a message, encrypting a message, and adding information used for authentication in order to protect Simple Object Access Protocol (SOAP) messages exchanged in the Web services. Moreover, Unified Modeling Language (UML) is often used for the purpose of developing these services.
However, in a case where an advanced service is developed by combining services scattered around the network, it is generally difficult to set securities, since the services often operate on different security platforms.
Furthermore, one cannot appropriately specify authentication settings, unless he/she sufficiently understands the difference in authentication mechanisms and security domains. In particular, service developers often have to set securities due to restrictions of the developing period, the budget and the like in actual projects, even though the security setting requires highly advanced technical knowledge, as is described above.
In addition, security policies required for a service need to be defined in order to set an authentication function in a service to be developed.
In the case of WS-Security, a high-level skill is required to correctly define security policies. In addition, appropriate policies cannot be created without correctly understanding functions provided by machine nodes which operate for a service to be developed. Although a service developer can define what kind of authentication functions are needed for the service, it is very difficult for the service developer to make detailed settings for securities depending on the machine nodes.
An information processing apparatus, a software development method and a computer program therefore, which allow a service developer, who develops a service requiring confidentiality in a service-oriented architecture, to easily create authentication settings for the service model is disclosed.
In one aspect, an information processing apparatus for developing a service requiring confidentiality in a service-oriented architecture is provided. The information processing apparatus includes: an input unit configured to receive as an input, an annotation for a service. A storage unit is configured to store an Authentication Infrastructure Model of a machine node on which the service is executed; and an Authentication Policy generation unit for generating an Authentication Policy by using the annotation and the Authentication Infrastructure Model.
In another aspect, a software development method and a computer program thereof is provided. The software development method is for developing a service requiring confidentiality in a service-oriented architecture, and includes inputting an annotation for a service; reading a stored Authentication Infrastructure Model of a machine node on which the service is executed; and generating an Authentication Policy by using the annotation and the Authentication Infrastructure Model.
The above-mentioned features and objects of the present disclosure will become more apparent with reference to the following description taken in conjunction with the accompanying drawings wherein like reference numerals denote like elements and in which:
Hereinafter, the present disclosure will be described by using embodiments of the present disclosure, but the present disclosure of the scope of claims is not limited to the following embodiments, and all combinations of features descried in the embodiments are not necessarily required for solving means of the present disclosure.
The idea and the structure of the present disclosure will be described by referring to
As shown in
The AIM 20 is based on an authentication infrastructure provided in an execution environment 50 where the service is executed, and is obtained by extracting a model from the execution environment as shown in
By using an AIM 30, the present disclosure enables the generation of an Authentication Policy 40 corresponding to complicated authentication infrastructure with simple annotation expressions on a service model.
The Authentication element in the first line is a top level element used for embedding authentication information in the Authentication Policy. The CallerToken element in the second line is a top level element used for entering specific information on an authentication. ${TOKEN ASSERTION} in the third line and the subsequent lines indicates a token in which information on ID is encoded. There are various kinds of tokens, and the kinds of tokens are described in this part. The descriptions defined in WS-SecurityPolicy standard { } are used for the actual contents of the tokens. In a case of a UsernameToken token, <UsernameToken> is just described.
SecurityDomain is used for a concept for discriminating between tokens. This is because only the description of a token kind, as described above, is not sufficient to discriminate the token. A domainName attribute is an element of SecurityDomain, and in the domainName attribute, the name of security domain is described.
In a case where a token does not contain information for authentication in ${TOKEN ASSERTION}, another method of establishing a trust relationship is needed. TrustMethod is an element of specifying a kind of method by using a method attribute. For example, an authentication is performed by using a digital signature in a case of Signature, or by using ID/password in a case of Basic.
An authentication is generally used to establish a trust relationship. In this case, a token is required. In order to identify the kind of a token, the token is linked to the TokenAssertion. However, it should be noted that the TokenAssertion directly held by the CallerToken is different from the TokenAssertion indicated by the TrustMethod.
SenderTrust (a sender trust method) 220 is an element for describing a method of establishing the foregoing trust relationship. This element is necessary only when the Subject attribute of the TokenStatement element 230 is true. Here, an authentication method is described in a method attribute, and Signature and Basic are examples of specific values of the method attribute to be entered. The value, Signature, indicates a method in which a sender is authenticated by using a digital signature. The value, Basic, indicates an authentication method using ID/Password. Although the SenderTrust element 220 has a TrustStatement element, this element is used for establishing a trust relationship (a secondary token). For this reason, a Subject attribute of the SenderTrust element 220 must be false.
MachineNode (a machine node) 210 is an element indicating a machine node in which an architecture is implemented. Since tokens that each node can receive and send are determined in advance, the node is linked to the TokenStatement element 230. In the same manner, a method of establishing a trust relationship is also information peculiar to the MachineNode element 210, the MachineNode element 210 is linked to the SenderTrust element 220. Although not sufficiently expressed in the drawing, the link between the MachineNode element 210 and any of the TokenStatement element 230 and the SenderTrust element 220 is set in a manner discriminating two kinds, that is, one for receiving and the other for sending, from each other.
TokenProcessing 260 (token processing) abstractly indicates information related to the implementation of token processing. In
In this way, an Authentication Policy corresponding to complicated Authentication Infrastructures can be generated from simple annotation expression on a service model.
The structure and the Authentication Policy of the present disclosure have been described hereinabove. For the sake of better understanding of the present disclosure, a specific example will be described below along with operations of the present disclosure.
Once the travel agency 720 receives an ID/Password, a customer is authenticated on the basis of the ID/Password. Information for authenticating customer IDs are registered, and IDs and Passwords of customers are stored in a user registry 810.
Subsequently, the travel agency 720 needs to make an inquiry to an airline company 730. At the same time, a customer's mileage number 735 also needs to be sent to the airline company. Since the mileage number is required to correspond to the authenticated customer's ID, a correspondence process is referred to as ID mapping. IBM Tivoli Federated Identity Manager (a registered trademark) can be used for performing the ID mapping.
In the example shown here, information on mapping is stored in a database on customer information 820, and by using the database, ID mapping is performed. The travel agency sends a mileage number 735 in the following format (as indicated by UsernameToken 840) to an airline company 730.
In a case where a password is not included in the information sent from the travel agency, the airline company cannot authenticate the customer by using only this information. For this reason, the travel agency sends its own ID/Password 845 together with the mileage number 735. By using the ID/Password of the travel agency, the airline company authenticates the travel agency. Thereafter, the airline company 730 trusts the received information, because the mileage number is sent from the authenticated travel agency 720. Note that the airline company 730 confirms the mileage number 735 and the ID/Password 845 of the travel agency, which have been sent, respectively by using corresponding user registries 850 and 855. Here, the user registry indicates a file in which user's data is registered.
As shown in
As for each of the detected machine nodes, information on an inbound TokenStatement element (a token assertion) is obtained from the AIM stored in a storage unit (S230). Here, inbound indicates a token assertion that comes into a machine node. In a case of the example of
Then, a common Mapping between these is obtained (S240). Here, Mapping indicates an element that defines a correspondence relationship between security domains. The Mapping element 1330 gives a definition of a relationship associating a plurality of TokenStatement elements with one another, whereby the security domains of the TokenStatement elements are associated with one another. In the example of the travel agency of
Subsequently, a subjectType value of the Mapping element 1330 is obtained (S242). In the example of the travel agency, a common Mapping element 1330 of the inbound TokenStatement element 1310 (the token assertion) and the outbound TokenStatement element 1320 has a value, traveler, as shown in
Once obtained, it is verified whether the callerType attribute value of the service and the SubjectType attribute value of the Mapping element 1330 are identical (S250). In a case where they are identical, the content of the AIM stored in the storage unit is embedded in an Authentication Policy (A). In a case where they are not identical, the content is not embedded, and the process is terminated (B).
In a case where they are identical, the information of the inbound TokenStatement 1310 is embedded in a portion of the TokenAssertion of the inner data structure of the Authentication Policy, and the securityDomain attribute is embedded in the SecurityDomain element of the Authentication Policy (S260).
In the same way, the information of the outbound TokenStatement element 1320 is embedded in a portion of the TokenAssertion of an inner data structure of the Authentication Policy, and the securityDomain attribute is embedded in the SecurityDomain element of the Authentication Policy (S262).
Next, it is investigated whether a SenderTrust element is included in the contents of the AIM stored in the storage unit (S270). In a case where the SenderTrust element is included, its contents are incorporated into the Authentication Policy. In a case where the SenderTrust element is not included, the processing is terminated.
In the case where the SenderTrust element is included, a TrustMethod element is added to the Authentication Policy, and a value of the Method attribute of the SenderTrust element is copied to a Method attribute of the TrustMethod element (S272).
In addition, on the basis of the information of the TokenStatement element indicated by the SenderTrust element, a securityDomain element is added to the Authentication Policy. At this time, a value of the securityDomain attribute of the TokenStatement element is copied to the domainName attribute of the securityDomain element (S274).
Furthermore, on the basis of the information of the TokenStatement element indicated by the SenderTrust element, a TokenAssertion element is added to the Authentication Policy right below the TrustMethod element (S276).
In this way, an Authentication Policy can be generated. Examples of the Authentication Policy thus generated are shown in
The generated Authentication Policy 400 is stored in the second storage unit 420. If necessary, a service developer can check the contents stored in the second storage unit 420 by displaying the contents on a display device 1022 to be described later, although he/she in general does not need to view the contents.
An amplifier circuit 1032 and a speaker 1034 are connected to the audio processor 1030. In addition, a display device 1022 is connected to the graphic controller 1020.
The BIOS 1060 stores a boot program that the CPU executes at the time of starting the information processing apparatus 100, a program being dependent on the hardware of the information processing apparatus 100, and the like. The flexible disk drive 1072 reads a program or data from a flexible disk 1071, and provides the read-out program or data to the main memory 1050 or the hard disk 1074 through the I/O controller 1070.
As the optical disk drive 1076, for example, a DVD-ROM drive, a CD-ROM drive, a DVD-RAM drive and a CD-RAM drive can be used. When using the optical disk drive 1076, an optical disk 1077 corresponding to each of the drives needs to be used. A program or data is read from the optical disk 1077 with the optical disk drive 1076, so that the program or data can be provided to the main memory 1050 or the hard disk 1074 through the I/O controller 1070.
A computer program provided to the information processing apparatus 100 is stored in advance in a recording medium such as the flexible disk 1071, the optical disk 1077, a memory card or the like, and is provided by a user. The computer program is read from the recording medium through the I/O controller 1070 or is downloaded through the communication I/F 1040, whereby the computer program is installed in the information processing apparatus 100, thereby being executed. Operations, which the computer program causes an information processing apparatus to execute, are the same as those in the information processing apparatus 100 described in
The computer program describe above may also be stored in an external storage medium. As the external storage medium, a magneto-optical recording medium such as a MD, or a tape medium can be used other than the flexible disk 1071, the optical disk 1077, or a memory card. Moreover, it is also possible to use, as a recording medium, a storage device such as a hard disk or an optical desk library provided to a server system, which is connected to a dedicated communication line or the Internet, and thereby to provide the computer program to the information processing apparatus 100 through the communication line.
Although the foregoing descriptions have been given mainly of the examples of the information processing apparatus, the same functions as those of the above-described information processing apparatus can be achieved in the following manner.
A program having the functions described using the information processing apparatus is installed in a computer, and then causes the computer to operate as the information processing apparatus. Accordingly, the information processing apparatus described as one embodiment of the present disclosure can be achieved by using a software development method and a developed computer program.
Although the present disclosure has been described by using the embodiment and the examples hereinabove, the present disclosure is not limited to the descriptions of the above embodiment. Various changes or modifications can be made in the above-described embodiment. In addition, it is clear from the scope of claims that such changes or modifications are also included in the technical scope of the present disclosure.
Although the preferred embodiment of the present disclosure has been described in detail, it should be understood that various changes, substitutions and alternations can be made therein without departing from spirit of the disclosures as defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2006-078568 | Mar 2006 | JP | national |