Heidi, I have the set of test VMs I used when first implementing this feature. They are the ones I used when I wrote: http://tomcat.apache.org/tomcat-9.0-doc/windows-auth-howto.html
I'll fire them up, install 9.0.24, test and report back. I have done a quick diff of the key classes between 9.0.x and 8.5.x and I don't see any changes that should cause problems. Experience tells me I am going to spend more time getting the VMs updated with the latest patches (I don't turn them on that often) than I am going to spend testing. Don't be surprised if it takes until tomorrow for me to report back. Mark On 03/09/2019 17:38, Heidi Leerink - Duverger wrote: > Hello Alex, > > This is the result of the nslookup: > > C:\Users\hduverge>nslookup nlsl-decadetest > Server: nlsl-dccrp01p.corp.u4agr.com > Address: 10.100.2.2 > > *** nlsl-dccrp01p.corp.u4agr.com can't find nlsl-decadetest: Non-existent > domain > > C:\Users\hduverge> > C:\Users\hduverge>nslookup nlsl-decadetest.u4agr.com > Server: nlsl-dccrp01p.corp.u4agr.com > Address: 10.100.2.2 > > *** nlsl-dccrp01p.corp.u4agr.com can't find nlsl-decadetest.u4agr.com: > Non-existent domain > >> Q3: Is the PC where you are using the browser to test, also the same one >> where Tomcat is installed ? >> (I am not sure that this type of authentication should work, if the same >> machine is at the same time the client and the server) In any case, it may >> >be a good idea if you tested the same access, with a browser on another PC >> workstation. > I test the SSO URL on my own desktop in Google chrome and IE11, but if I test > de URL in IE11 on de nls-decadetest it asks for a window login and then gives > the same error as I get on my desktop. > > I think that it would be better to move this test to a real server , but ATM > we have everything in the cloud (azure) and it is so nearly impossible to get > a setup (AD user principal and tomcat.keytab) from support, but I will check > if I can further test at our customers site.... > > Thank you for your help with this, it must be that Tomcat 9 SPNEGO is more > strict than the Tomcat 8 implementation was... > > Met vriendelijke groeten van > Heidi Leerink - Duverger > Technisch Consultant > > > In business for people. > Unit4 Business Software Netherlands B.V. > Papendorpseweg 100, 3710 BJ Utrecht, Netherlands > T +31 88 247 1444 > E heidi.duver...@unit4.com > This message and any attachment(s) are intended only for the use of the named > recipient and may contain information that is privileged, confidential or > otherwise exempt from disclosure under applicable law. If you are not the > intended recipient, please notify the sender by return e-mail and delete this > message from your system. Do not disclose the contents of this document to > any other persons. Violation of this notice may be unlawful. Please note that > internet communications are not secure and e-mails are susceptible to change. > Thank you for your cooperation. > > -----Original Message----- > From: André Warnier (tomcat) [mailto:a...@ice-sa.com] > Sent: dinsdag 3 september 2019 14:27 > To: users@tomcat.apache.org > Subject: Re: SSO fails on Tomcat 9 > > Hi. > See below. > > On 03.09.2019 11:56, Heidi Leerink - Duverger wrote: >> Hello Alex, >> >> Thank you for the extensive answer. >> >> Q1: Are you sure that it is *exactly* the same ? >> Yes the installation is done on the same PC with the same user principal for >> the Tomcat service to log in . >> The Tomcat 8 service is stopped during the Tomcat 9 test. >> We had the exact same problem when installing in a test environment at one >> of our Customer sites. Most of our customers that are using SSO with our >> application are still using Tomcat 8 with no problems and all with the same >> spnego config. >> My colleague initially set up this Tomcat 9 installation using a few tomcat >> 9 versions ( .8 .20 and .24). I myself, reinstalled and configured Tomcat >> 9.024 from scratch, with no success and always the same results. >> > > Q3: Is the PC where you are using the browser to test, also the same one > where Tomcat is installed ? > (I am not sure that this type of authentication should work, if the same > machine is at the same time the client and the server) In any case, it may be > a good idea if you tested the same access, with a browser on another PC > workstation. > >> Q2: when "it does not work", does the browser popup a login dialog ? >> Yes I have seen that one be not with the recent config. >> Browser response : >> >> Google Chrome >> This site can't be reachedThe webpage at http://nlsl-decadetst:8787/apex42a/ >> might be temporarily down or it may have moved permanently to a new web >> address. >> ERR_INVALID_RESPONSE >> >> Internet Explorer 11: >> Can't reach this page >> .Make sure the web address http://nlsl-decadetst:8787 is correct >> .Search for this site on Bing .Refresh the page More information More >> information The connection to the website was reset. >> Error Code: INET_E_DOWNLOAD_FAILURE >> > > Both of the errors above indicate more a DNS or TCP issue, than a tomcat or > authentication issue. > (As shown, they indicate that the browser can either not find the server > "nlsl-decadetst", or cannot make a TCP connection to "nlsl-decadetst:8787") > > On the same workstation PC where you are doing these tests, can you > a) open a command window > b) enter : nslookup nlsl-decadetst > c) tell us what the response is ? > d) enter : nslookup nlsl-decadetst.u4agr.com > e) tell us what the response is ? > >> (attachements the most recent stderr and stdout) >> > > Unfortunately, I am no Kerberos specialist and cannot tell you what the > messages in the log really mean. > But the following (from the stderr) should probably be investigated further : > >>>KRBError: > sTime is Tue Sep 03 11:47:29 CEST 2019 1567504049000 > suSec is 329207 > error code is 25 > error Message is Additional pre-authentication required > sname is krbtgt/u4agr....@u4agr.com > eData provided. > msgType is 30 > > That seems to indicate that something is not working as expected, at the > Kerberos level. > > > Note : why it would work with tomcat8 and not with tomcat9 is still not clear > to me, unless there have been some changes between the tomcat8 SPNEGO Valve > and the tomcat9 SPNGEGO Valve, or else maybe in terms of the tomcat hostname > considerations. > >> >> I know off Fiddler2 but never used it before, I will try to set that up... >> >> >> Met vriendelijke groeten van >> Heidi Leerink - Duverger >> Technisch Consultant >> >> >> In business for people. >> Unit4 Business Software Netherlands B.V. >> Papendorpseweg 100, 3710 BJ Utrecht, Netherlands >> T +31 88 247 1444 >> E heidi.duver...@unit4.com >> This message and any attachment(s) are intended only for the use of the >> named recipient and may contain information that is privileged, confidential >> or otherwise exempt from disclosure under applicable law. If you are not the >> intended recipient, please notify the sender by return e-mail and delete >> this message from your system. Do not disclose the contents of this document >> to any other persons. Violation of this notice may be unlawful. Please note >> that internet communications are not secure and e-mails are susceptible to >> change. Thank you for your cooperation. >> >> -----Original Message----- >> From: André Warnier (tomcat) [mailto:a...@ice-sa.com] >> Sent: dinsdag 3 september 2019 10:39 >> To: users@tomcat.apache.org >> Subject: Re: SSO fails on Tomcat 9 >> >> Hello Heidi. >> >> Thank you for the complete information provided in your post below. >> >> I do not have any experience with the Tomcat SPNEGO Valve per se, but quite >> a bit of experience with Windows Integrated Authentication. >> To me, the symptoms that you describe below, do not really look like a >> problem at the Tomcat level, but more like a problem between the browser and >> the Windows authentication in general. >> >> See notes and questions in the text below. >> >> On 02.09.2019 12:35, Heidi Leerink - Duverger wrote: >>> We have the following problem with connecting from the tomcat >>> environment 9.024 with the Active Directory of Windows, Kerberos >>> database. (win2008 DC's) >>> >>> In Tomcat's log files, with Tomcat8, which gives no problems, it is >>> connected to the Active directory. >>> >>> It indicates that a login attempt is made 3 times whether the person >>> can log in with the Active directory account. >>> >>> After that the login is accepted and qualified as successful. >>> >>> In tomcat 9, different versions tried, also version 9.024, the control >>> of 1 attempt becomes visible, >>> >>> which is successful. But then the check is stopped (not 3 times as >>> Tomcat8) and the connection is marked as unsuccessful. >>> >>> The environment for Tomcat9 is the same as from Tomcat8. >> >> Q1: Are you sure that it is *exactly* the same ? >> For example, do the tomcat8 installation, and the tomcat9 installation, run >> on the same server, and is the server *domain* the same in both cases ? >> >> Q2: when "it does not work", does the browser popup a login dialog ? >> >> Reason for the questions : >> Typically, a succesful Windows authentication consists of indeed 3 exchanges >> (what you say happens with tomcat8). >> The first of these exchanges consists of the browser requesting the original >> URL. >> The server then responds with a 401 response ("need authentication"), in >> which it indicates that it wants an authentication, of the SPNEGO type. >> The browser then normally responds with a 2d request for the same URL, >> containing a partial "Authorization:" header containing some encrypted token. >> If the browser does NOT send this 2d request, it indicates that *the browser >> refuses* to do an SPNEGO authentication in this case. >> And that happens when the browser does not think that the server "can be >> trusted" for doing SPNEGO authentication. >> The browser will not trust the server, if it thinks that the server is not >> in the same domain as itself (unless you have manually added this server in >> the "trusted servers", at the browser level). >> >> Q2: Usually, when the browser refuses to do a WIA authentication, it tries a >> Basic authentication instead, and this login dialog pops up. With Windows >> authentication, that is usually the first sign that something is not correct >> in the browser/server setup. >> >> Note: I'm not saying that this IS your problem. But it is the first thing to >> verify, with WIA authentication. >> >> To see this more clearly, you could try to install on the workstation, some >> software that allows you to trace the HTTP exchanges between the browser and >> the server (example : >> Fiddler2), and compare what happens with tomcat8 and tomcat9 (look at the >> HTTP headers for request/response). >> >>> >>> Windows 10 PRO >>> >>> Oracle database rdbms 11.203 >>> >>> Apex 4.2.3.008 >>> >>> Ords2019 - Oracle listener >>> >>> ojdbc6.jar >>> >>> Tried both java versions: >>> >>> E:\java\jre64b\bin>java -version >>> >>> java version "1.8.0_202" >>> >>> Java(TM) SE Runtime Environment (build 1.8.0_202-b08) >>> >>> Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode) >>> >>> And >>> >>> E:\java\openjdk\bin>java -version >>> >>> openjdk version "11.0.1" 2018-10-16 >>> >>> OpenJDK Runtime Environment 18.9 (build 11.0.1+13) >>> >>> OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) >>> >>> Tomcat 9.024 directory structure. >>> >>> ( log files in the attachments ) >>> >>> e:\Tomcat9\ >>> >>> \Cataline\localhost\apex42a.xml >>> >>> +++...+++ >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> >>> <Context> >>> >>> <Valve className="org.apache.catalina.authenticator.SpnegoAuthenticator" >>> >>> loginConfigName="APEX42A" >>> >>> /> >>> >>> <Realm className="org.apache.catalina.realm.JAASRealm" >>> >>> allRolesMode="authOnly" >>> >>> appName="APEX42A" >>> >>> /> >>> >>> </Context> >>> >>> +++...+++ >>> >>> \conf\jaas.conf >>> >>> +++...+++ >>> >>> APEX42A { >>> >>> com.sun.security.auth.module.Krb5LoginModule required >>> >>> doNotPrompt=true >>> >>> principal="HTTP/nlsl-decadetst.u4agr....@u4agr.com" >>> >>> useKeyTab=true >>> >>> keyTab="E:/Decade_appl/Tomcat9/conf/tomcat.keytab" >>> >>> storeKey=true; >>> >>> }; >>> >>> +++...+++ >>> >>> \conf\krb5.ini >>> >>> +++...+++ >>> >>> [libdefaults] >>> >>> default_realm = U4AGR.COM >>> >>> default_tkt_enctypes = rc4-hmac aes256-cts-hmac-sha1-96 >>> aes128-cts-hmac-sha1-96 >>> >>> default_tgs_enctypes = rc4-hmac aes256-cts-hmac-sha1-96 >>> aes128-cts-hmac-sha1-96 >>> >>> permitted_enctypes = rc4-hmac aes256-cts-hmac-sha1-96 >>> aes128-cts-hmac-sha1-96 >>> >>> dns_lookup_kdc = true >>> >>> dns_lookup_relam = false >>> >>> [realms] >>> >>> U4AGR.COM = { >>> >>> kdc = u4agr.com >>> >>> default_domain = U4AGR.COM >>> >>> } >>> >>> [domain_realm] >>> >>> .u4agr.com= U4AGR.COM >>> >>> u4agr.com= U4AGR.COM >>> >>> +++...+++ >>> >>> \conf\tomcat.keytab >>> >>> Creation statement for tomcat.keytab: >>> >>> ktpass /out c:\Temp\tomcat.keytab /mapuser DECADE_SSO_TC.U4AGR.COM /princ >>> HTTP/nlsl-decadetst.u4agr....@u4agr.com /pass "D3cad3401" /kvno 0 -ptype >>> KRB5_NT_PRINCIPAL >>> >>> ktpass /out c:\temp\1c-tomcat.keytab /mapuser DECADE_SSO_TC.U4AGR.COM /princ >>> HTTP/nlsl-decadetst.u4agr....@u4agr.com /pass "D3cad3401" -crypto All /kvno >>> 0 -ptype >>> KRB5_NT_PRINCIPAL >>> >>> \webapps\apex42a\WEB-INF\web.xml >>> >>> +++...+++ >>> >>> <servlet-mapping> >>> >>> <servlet-name>Forbidden</servlet-name> >>> >>> <url-pattern>/oracle/dbtools/jarcl</url-pattern> >>> >>> </servlet-mapping> >>> >>> <security-constraint> >>> >>> <web-resource-collection> >>> >>> >>> <web-resource-name>APEX42A</web-resource-name> >>> >>> <url-pattern>/*</url-pattern> >>> >>> </web-resource-collection> >>> >>> <auth-constraint> >>> >>> <role-name>*</role-name> >>> >>> </auth-constraint> >>> >>> </security-constraint> >>> >>> <login-config> >>> >>> <auth-method>SPNEGO</auth-method> >>> >>> </login-config> >>> >>> <welcome-file-list> >>> >>> <welcome-file>index.html</welcome-file> >>> >>> <welcome-file>index.htm</welcome-file> >>> >>> +++...+++ >>> >>> *Met vriendelijke groeten van*** >>> >>> *Heidi Leerink - Duverger* >>> *Technisch Consultant* >>> >>> Unit4 >>> In business for people. >>> >>> *Unit4 Business Software Netherlands B.V.* >>> Papendorpseweg 100, 3710 BJ Utrecht, Netherlands >>> >>> *T *+31 88 247 1444 >>> *E *heidi.duver...@unit4.com >>> >>> This message and any attachment(s) are intended only for the use of the >>> named recipient >>> and may contain information that is privileged, confidential or otherwise >>> exempt from >>> disclosure under applicable law. If you are not the intended recipient, >>> please notify the >>> sender by return e-mail and delete this message from your system. Do not >>> disclose the >>> contents of this document to any other persons. Violation of this notice >>> may be unlawful. >>> Please note that internet communications are not secure and e-mails are >>> susceptible to >>> change. Thank you for your cooperation. >>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>> For additional commands, e-mail: users-h...@tomcat.apache.org >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org