gpt4 book ai didi

active-directory - jboss-negotiation-toolkit“安全”测试不起作用(SPNEGO身份验证失败)

转载 作者:行者123 更新时间:2023-12-01 13:16:20 26 4
gpt4 key购买 nike

我几天前已经在JBoss PicketBox论坛上发布了相同的问题,但尚未收到任何回复(https://community.jboss.org/thread/220959)。所以我想也许我会尝试StackOverflow来吸引更多的读者。

我一直在尝试让jboss-negotiation-toolkit工作几周了,我想我已经尝试了其他人遇到的所有问题。我现在陷入无法使用servlet的“安全”版本的问题。 “安全域测试”和“基本协商”测试都可以正常工作,但是JBoss在尝试打开安全链接时仍会抛出“LoginException”。我非常确定这与AD / Kerberos设置有关,但是我无法取得更多进展。

11:49:43,514 ERROR [org.jboss.security.authentication.JBossCachedAuthenticationManager] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Login failure: javax.security.auth.login.LoginException: Continuation Required.
at org.jboss.security.negotiation.spnego.SPNEGOLoginModule.login(SPNEGOLoginModule.java:174) [jboss-negotiation-spnego-2.2.0.SP1.jar:2.2.0.SP1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_33]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_33]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_33]
at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_33]
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) [rt.jar:1.6.0_33]
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) [rt.jar:1.6.0_33]
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) [rt.jar:1.6.0_33]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.6.0_33]
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) [rt.jar:1.6.0_33]
at javax.security.auth.login.LoginContext.login(LoginContext.java:579) [rt.jar:1.6.0_33]
at org.jboss.security.authentication.JBossCachedAuthenticationManager.defaultLogin(JBossCachedAuthenticationManager.java:449) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
...

是否有人遇到过同一问题,或者有人对问题可能出在哪里有任何建议? 对不起,我的帖子很大,但是下面是设置的所有详细信息,以及到目前为止我是如何配置事物的,试图提供尽可能多的细节。

这是我们的设置:
  • Windows 2008 AD(QAAD)
  • DNS名称:qaad.dev.company.com
  • 域:QUALITY(QUALITY.COMPANY.COM)
  • 运行JBoss AS 7.1.1.Final(BARDEV1)的
  • CentOS 6.2
  • 部署:jboss-negotiation-toolkit-2.2.2.Final
  • DNS名称:bardev1.dev.company.com
  • 测试客户端是WinXP和Win7,已加入QUALITY域

  • BARDEV1当前已加入质量域( 是必需的,还是应该在不加入域的情况下起作用?)。

    JBoss SPNEGO配置是:
    <security-domain name="qaad_kerberos" cache-type="default">
    <authentication>
    <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
    <module-option name="storeKey" value="true"/>
    <module-option name="useKeyTab" value="true"/>
    <module-option name="principal" value="HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM"/>
    <module-option name="keyTab" value="/opt/jboss-as-7.1.1.final/standalone/configuration/bardev1_qaad_rc4.keytab"/>
    <module-option name="doNotPrompt" value="true"/>
    <module-option name="debug" value="true"/>
    <module-option name="refreshKrb5Config" value="false"/>
    </login-module>
    </authentication>
    </security-domain>
    <security-domain name="SPNEGO" cache-type="default">
    <authentication>
    <login-module code="org.jboss.security.negotiation.spnego.SPNEGOLoginModule" flag="required">
    <module-option name="password-stacking" value="useFirstPass"/>
    <module-option name="serverSecurityDomain" value="qaad_kerberos"/>
    </login-module>
    </authentication>
    </security-domain>

    /etc/krb5.conf 设置为:
    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log

    [libdefaults]
    default_realm = QUALITY.COMPANY.COM
    dns_lookup_realm = false
    dns_lookup_kdc = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true
    default_tgs_enctypes = rc4-hmac
    default_tkt_enctypes = rc4-hmac
    permitted_enctypes = rc4-hmac

    [realms]
    QUALITY.COMPANY.COM = {
    kdc = qaad.dev.company.com
    admin_server = qaad.dev.company.com
    default_domain = quality.company.com
    }

    [domain_realm]
    .quality.company.com = QUALITY.COMPANY.COM
    quality.company.com = QUALITY.COMPANY.COM

    QAAD框具有“bardev1”的“计算机”帐户。此帐户的委派设置为“信任此计算机以分发到任何服务(仅Kerberos)”。
    keytab是在QAAD框上生成的,并且使用以下命令设置了SPN:
  • setspn -S HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM bardev1
  • ktpass / out bardev1_qaad_rc4.keytab / princ HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM / mapuser quality \ administrator -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL / pass * / kvno 0
  • (注:必须设置/ kvno 0,因为否则我会得到:KrbException:密钥的指定版本不可用(44))
  • setspn -L bardev1
  • 输出:
    CN = bardev1,CN = Computers,DC = quality,DC = company,DC = com的已注册ServicePrincipalName:
    HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM
    主机/bardev1.dev.company.com
    HOST / BARDEV1
  • setspn -L管理员
  • 输出:
    CN =管理员,CN =用户,DC =质量,DC =公司,DC = com的已注册ServicePrincipalName:
    HTTP / bardev1.dev.company.com

  • 使用“管理员”帐户进行初始测试,因此我不必处理新的用户帐户。该帐户的委派设置为 “信任此计算机以分发给任何服务(仅Kerberos)” ,并且未设置其他帐户选项,如“使用kerberos DES加密...”,“该帐户支持AES 128/256 ...” ”或“不需要kerberos预认证”。 是否需要其中任何一个?

    在客户端计算机上,为了使浏览器使用登录的用户凭据,我必须将URL设置为:
  • http:// bardev1:8080 / jboss-negotiation-toolkit-2.2.2.Final

  • 如果我这样说:
  • http:// bardev1.dev.company.com:8080/jboss-negotiation-toolkit-2.2.2.Final

  • 然后我弹出用户名和密码。

    我确实尝试使用'HTTP/bardev1@QUALITY.COMPANY.COM'运行setspn和ktpass,但结果相同,即基本测试和域测试均无法保证安全。

    来自“SecurityDomainTest”的输出:

    JBoss日志:
          12:01:33,229 INFO  [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Debug is  true storeKey true useTicketCache false useKeyTab true doNotPrompt true ticketCache is null isInitiator true KeyTab is /opt/jboss-as-7.1.1.final/standalone/configuration/bardev1_qaad_rc4_domain.keytab refreshKrb5Config is false principal is HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM tryFirstPass is false useFirstPass is false storePass is false clearPass is false
    12:01:33,238 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) principal's key obtained from the keytab
    12:01:33,241 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Acquire TGT using AS Exchange
    12:01:33,259 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) principal is HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM
    12:01:33,269 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) EncryptionKey: keyType=23 keyBytes (hex dump)=0000: 30 89 05 17 EB 07 89 AE 06 E2 B1 5D 58 B6 6E A4 0..........]X.n.
    12:01:33,273 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:01:33,276 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Added server's keyKerberos Principal HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COMKey Version 0key EncryptionKey: keyType=23 keyBytes (hex dump)=
    12:01:33,283 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) 0000: 30 89 05 17 EB 07 89 AE 06 E2 B1 5D 58 B6 6E A4 0..........]X.n.
    12:01:33,285 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:01:33,285 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:01:33,286 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule] added Krb5Principal HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM to Subject
    12:01:33,288 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Commit Succeeded
    12:01:33,290 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:01:33,295 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule]: Entering logout
    12:01:33,296 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule]: logged out Subject

    浏览器:
          Negotiation Toolkit
    Security Domain Test
    Testing security-domain 'qaad_kerberos'

    Authenticated
    Subject:
    Principal: HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM
    Private Credential: Ticket (hex) =
    0000: 61 82 04 A6 30 82 04 A2 A0 03 02 01 05 A1 16 1B a...0...........
    0010: 14 51 55 41 4C 49 54 59 2E 53 59 4D 50 48 4F 4E .QUALITY.COMPANY
    0020: 4F 2E 43 4F 4D A2 29 30 27 A0 03 02 01 02 A1 20 O.COM.)0'......
    0030: 30 1E 1B 06 6B 72 62 74 67 74 1B 14 51 55 41 4C 0...krbtgt..QUAL
    ...
    04A0: 1C 85 74 1A 9B EF B9 EE D2 A8 ..t.......

    Client Principal = HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM
    Server Principal = krbtgt/QUALITY.COMPANY.COM@QUALITY.COMPANY.COM
    Session Key = EncryptionKey: keyType=23 keyBytes (hex dump)=
    0000: 67 2B 5A 9B FE 97 00 2B 68 0B D2 0F 35 FA D1 CB g+Z....+h...5...

    Forwardable Ticket true
    Forwarded Ticket false
    Proxiable Ticket false
    Proxy Ticket false
    Postdated Ticket false
    Renewable Ticket false
    Initial Ticket false
    Auth Time = Tue Feb 05 12:01:33 CST 2013
    Start Time = Tue Feb 05 12:01:33 CST 2013
    End Time = Tue Feb 05 22:01:33 CST 2013
    Renew Till = null
    Client Addresses Null
    Private Credential: Kerberos Principal HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COMKey Version 0key EncryptionKey: keyType=23 keyBytes (hex dump)=
    0000: 30 89 05 17 EB 07 89 AE 06 E2 B1 5D 58 B6 6E A4 0..........]X.n.

    来自“基本协商”的输出:

    JBoss日志:
          12:48:01,226 INFO  [org.jboss.security.negotiation.toolkit.BasicNegotiationServlet] (http-bardev1.dev.company.com-10.10.5.232-8080-1) No Authorization Header, sending 401
    12:48:01,243 INFO [org.jboss.security.negotiation.toolkit.BasicNegotiationServlet] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Authorization header received - decoding token.

    浏览器:
          Negotiation Toolkit
    Basic Negotiation
    WWW-Authenticate - Negotiate YIILwgYGKwYBBQUCoIILtjCCC7KgJDAiBgkqhkiC9xIBAgIGCSq ... i4=

    NegTokenInit
    Message Oid - SPNEGO
    Mech Types - {Kerberos V5 Legacy} {Kerberos V5} {NTLM}
    Req Flags -
    Mech Token -YIILgAYJKoZIhvcSAQICAQBuggtvMIILa6A ... Gi4=
    Mech List Mic -

    来自“安全”的输出:

    JBoss日志:
          12:51:52,877 INFO  [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Debug is  true storeKey true useTicketCache false useKeyTab true doNotPrompt true ticketCache is null isInitiator true KeyTab is /opt/jboss-as-7.1.1.final/standalone/configuration/bardev1_qaad_rc4_domain.keytab refreshKrb5Config is false principal is HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM tryFirstPass is false useFirstPass is false storePass is false clearPass is false
    12:51:52,894 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) principal's key obtained from the keytab
    12:51:52,895 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Acquire TGT using AS Exchange
    12:51:52,929 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) principal is HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM
    12:51:52,933 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) EncryptionKey: keyType=23 keyBytes (hex dump)=0000: 30 89 05 17 EB 07 89 AE 06 E2 B1 5D 58 B6 6E A4 0..........]X.n.
    12:51:52,937 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:52,939 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Added server's keyKerberos Principal HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COMKey Version 0key EncryptionKey: keyType=23 keyBytes (hex dump)=
    12:51:52,944 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) 0000: 30 89 05 17 EB 07 89 AE 06 E2 B1 5D 58 B6 6E A4 0..........]X.n.
    12:51:52,945 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:52,946 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:52,947 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule] added Krb5Principal HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM to Subject
    12:51:52,949 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Commit Succeeded
    12:51:52,950 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:52,950 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule]: Entering logout
    12:51:52,952 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule]: logged out Subject
    12:51:52,953 ERROR [org.jboss.security.authentication.JBossCachedAuthenticationManager] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Login failure: javax.security.auth.login.LoginException: Continuation Required.
    at org.jboss.security.negotiation.spnego.SPNEGOLoginModule.login(SPNEGOLoginModule.java:174) [jboss-negotiation-spnego-2.2.0.SP1.jar:2.2.0.SP1]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_33]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_33]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_33]
    at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_33]
    at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) [rt.jar:1.6.0_33]
    at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) [rt.jar:1.6.0_33]
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) [rt.jar:1.6.0_33]
    at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.6.0_33]
    at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) [rt.jar:1.6.0_33]
    at javax.security.auth.login.LoginContext.login(LoginContext.java:579) [rt.jar:1.6.0_33]
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.defaultLogin(JBossCachedAuthenticationManager.java:449) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.proceedWithJaasLogin(JBossCachedAuthenticationManager.java:383) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.authenticate(JBossCachedAuthenticationManager.java:371) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
    at org.jboss.security.authentication.JBossCachedAuthenticationManager.isValid(JBossCachedAuthenticationManager.java:160) [picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
    at org.jboss.as.web.security.JBossWebRealm.authenticate(JBossWebRealm.java:214) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.security.negotiation.NegotiationAuthenticator.authenticate(NegotiationAuthenticator.java:187) [jboss-negotiation-common-2.2.0.SP1.jar:2.2.0.SP1]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:455) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_33]


    12:51:52,985 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Debug is true storeKey true useTicketCache false useKeyTab true doNotPrompt true ticketCache is null isInitiator true KeyTab is /opt/jboss-as-7.1.1.final/standalone/configuration/bardev1_qaad_rc4_domain.keytab refreshKrb5Config is false principal is HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM tryFirstPass is false useFirstPass is false storePass is false clearPass is false
    12:51:52,989 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) principal's key obtained from the keytab
    12:51:52,990 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Acquire TGT using AS Exchange
    12:51:53,015 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) principal is HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM
    12:51:53,058 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) EncryptionKey: keyType=23 keyBytes (hex dump)=0000: 30 89 05 17 EB 07 89 AE 06 E2 B1 5D 58 B6 6E A4 0..........]X.n.
    12:51:53,060 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:53,061 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Added server's keyKerberos Principal HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COMKey Version 0key EncryptionKey: keyType=23 keyBytes (hex dump)=
    12:51:53,063 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) 0000: 30 89 05 17 EB 07 89 AE 06 E2 B1 5D 58 B6 6E A4 0..........]X.n.
    12:51:53,065 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:53,065 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:53,066 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule] added Krb5Principal HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM to Subject
    12:51:53,068 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) Commit Succeeded
    12:51:53,068 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1)
    12:51:53,081 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule]: Entering logout
    12:51:53,082 INFO [stdout] (http-bardev1.dev.company.com-10.10.5.232-8080-1) [Krb5LoginModule]: logged out Subject

    浏览器:
          HTTP Status 403 - Access to the requested resource has been denied

    进行了其他测试/设置

    我还尝试在QAAD Windows服务器本身上运行jboss实例,更新了setspn和ktpass命令,但结果相同,“安全”测试因LoginException而失败。

    我也尝试过使用其他AD服务器(COLLAB,在Windows 2003 AD服务器上运行),但结果仍然相同。

    因此,我很确定这是一些设置/配置/环境问题,但我似乎无法深入了解它。

    最佳答案

    我知道已经很晚了。

    我遇到了同样的问题,并发现我们需要稍微修改jboss-negotiation-toolkit的web.xml。

    修改web.xml的安全性约束和login-config,如下所示:

    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Restricted</web-resource-name>
    <url-pattern>/Secured/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <role-name>*</role-name>
    </auth-constraint>
    <user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    <login-config>
    <auth-method>SPNEGO</auth-method>
    <realm-name>SPNEGO</realm-name>
    <form-login-config>
    <form-login-page>/login.html</form-login-page>
    <form-error-page>/error.html</form-error-page>
    </form-login-config>
    </login-config>
    <security-role>
    <role-name>*</role-name>
    </security-role>

    然后修改standalone.xml中的jboss spnego配置,如下所示
    <security-domain name="qaad_kerberos" cache-type="default">
    <authentication>
    <login-module code="com.sun.security.auth.module.Krb5LoginModule" flag="required">
    <module-option name="storeKey" value="true"/>
    <module-option name="useKeyTab" value="true"/>
    <module-option name="principal" value="HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM"/>
    <module-option name="keyTab" value="/opt/jboss-as-7.1.1.final/standalone/configuration/bardev1_qaad_rc4.keytab"/>
    <module-option name="doNotPrompt" value="true"/>
    <module-option name="debug" value="true"/>
    <module-option name="refreshKrb5Config" value="false"/>
    </login-module>
    </authentication>
    </security-domain>
    <security-domain name="SPNEGO" cache-type="default">
    <authentication>
    <login-module code="org.jboss.security.negotiation.spnego.SPNEGOLoginModule" flag="required">
    <module-option name="password-stacking" value="useFirstPass"/>
    <module-option name="serverSecurityDomain" value="qaad_kerberos"/>
    </login-module>
    <login-module code="org.jboss.security.negotiation.AdvancedLdapLoginModule" flag="requisite">
    <module-option name="bindAuthentication" value="GSSAPI"/>
    <module-option name="jaasSecurityDomain" value="qaad_kerberos"/>
    <module-option name="java.naming.provider.url" value="ldap://your kdc's hostname:389"/>
    <module-option name="baseCtxDN" value="DC=MYDOMAIN,DC=COM"/>
    <module-option name="baseFilter" value="(userPrincipalName={0})"/>
    <module-option name="roleAttributeID" value="memberOf"/>
    <module-option name="roleAttributeIsDN" value="true"/>
    <module-option name="roleNameAttributeID" value="cn"/>
    <module-option name="recurseRoles" value="true"/>
    <module-option name="password-stacking" value="useFirstPass"/>
    <module-option name="allowEmptyPassword" value="false"/>
    <module-option name="debug" value="true"/>
    </login-module>
    </authentication>
    </security-domain>

    关于active-directory - jboss-negotiation-toolkit“安全”测试不起作用(SPNEGO身份验证失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14782508/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com