DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=34643>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=34643 ------- Additional Comments From [EMAIL PROTECTED] 2005-12-31 17:08 ------- Ralf said that <role-name>*</role-name> should be add into the <auth- constraint> element. The inserted element authorizes all the right to access the resource to the roles defined in this web application. He is right, but I think that he is not absolutely right. It is obvious that we should not be forced to authorize the right to all the roles. I put some information here, I hope that I can help some people to understand the stuff. Let's look at the bigger picture: when the requested resource is constrained with different roles, we need a map between the user & the role to access the resource. Even when the resource is constrained with transfering, since the specification starts there is no access if no role is defined. In such a case, as Ralf said, we use "*" to indicate there is no role constraint. We know that only the right persons are allowed to access the constrained resource. In a web application, we use two maps to define the right persons: One map (1) is in application descriptor, in the security constraint. the map is between the resource & the roles to access it. Another map (2) is in tomcat- users.xml, between persons identified by usernames & the roles. When we use Basic, Digest, & Form, the user inputs his/her username & password for a specific resource. If the input password is same as the one stored with us, which is stored in tomcat-users.xml, too. we regard the user who is requiring the resource is the person defined in tomcat-users.xml. Furthermore, we can know his/her roles according to map 2, and we can know whether the user has the right to access the resource. In these cases, actually there is one more map (3) which is between the username & its password. For whatever reasons, When we use "client-authentication", the relationship is not so clear. The most possible reason is the complication of this authentication. However, authentication is just a method to verify the user is the person he/she claimed to be. In those above cases, as long as the input password is same as the one stored with us, we regard the user as the person defined in tomcat-users.xml. Whether the person has the right to access the required resource, we will have to check the first two maps mentioned (map 1 & map 2). In the case of "client-auth", as long as the certificate is verified, we believe that the user is the person. Now we can see, this authentication eliminate the neccessity for map 3. However, we still need map 2, the map between persons & roles. At present, map 2 is undefined. In other methods, we use a username to identify a person. When using a certificate, it is not a simple thing to indentify a person (in certificate, they use the term "subject", in Java & tomcat, we use the term "principal"), since the certificate system has to cover all human beings. And it seems that the certificate system also introduce a map (4) between persons/subjects & certificates. So here, we need map 2 (between persons & roles) & map 4 (between persons & certificates). However, since certificates include usage information. So, it is reasonable to map certificates to roles. If we go with this direction, we might lose some flexibility, but more security control. Let's name this map as map 5. For tomcat, I believe that finally, both of them will be supported. When the system has only a few users, then there is no problem no matter where we put all the certificates. When the system has many users, then we have to plan where to put these certificates, and how to verify them in order to have a better performance. We have at least the following 5 options: 1. put in the keystore where we put our server authentication certificate. 2. put into a serie of xml file. 3. put into a local Database on the same machine or different machine. 4. put into LDAP on the same machine or different machine. 5. leave them on the internet 6. combination of these, for example ca certificate on local, others on the internet. The team has developed many realms for us, and here are some extra information. http://issues.apache.org/bugzilla/attachment.cgi?id=6666 implemented a class com.ops.webcontrol.tomcat.JNDIRealmCertAD http://issues.apache.org/bugzilla/show_bug.cgi?id=7831 JDBCRealm http://issues.apache.org/bugzilla/show_bug.cgi?id=34643 http://issues.apache.org/bugzilla/attachment.cgi?id=1499 org.apache.catalina.realm.JNDIRealm http://issues.apache.org/bugzilla/attachment.cgi?id=14994 About how complicated it is to identify a subject, please refer to http://www.ietf.org/rfc/rfc2459.txt for more information. For example, in a X509 certificate, (I am not sure whether there is any other kind of certificate system), The "subject" field is unique for that the CA issuing the certificate, but it might be empty. The "subjectUniqueID" field might be also only unique for this specific CA. For his item C in comment #4, I guess the "clear SSL states" button which is besides the "certificates" button might help. -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]