Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Wildfly 8、Java 1.8.0_45和Active Directory的Java SSO_Java_Single Sign On_Wildfly - Fatal编程技术网

带有Wildfly 8、Java 1.8.0_45和Active Directory的Java SSO

带有Wildfly 8、Java 1.8.0_45和Active Directory的Java SSO,java,single-sign-on,wildfly,Java,Single Sign On,Wildfly,关于这个话题我搜索了很多,但找不到解决方案 要求的简要说明: Wildfly 8.2下WebApp上的SSO 将Windows用户身份验证到Active Directory 当SSO失败时,返回到登录表单 在Wildfly的域配置中运行 环境: Microsoft AD Windows Server 2012 R2(1.计算机) 使用Wildfly 8.2的Microsoft Server 2012 R2(2.0机器) 2.机器yas加入了域 到目前为止,我尝试的是通过ktpass,ki

关于这个话题我搜索了很多,但找不到解决方案

要求的简要说明:

  • Wildfly 8.2下WebApp上的SSO
  • 将Windows用户身份验证到Active Directory
  • 当SSO失败时,返回到登录表单
  • 在Wildfly的域配置中运行
环境:

  • Microsoft AD Windows Server 2012 R2(1.计算机)
  • 使用Wildfly 8.2的Microsoft Server 2012 R2(2.0机器)
  • 2.机器yas加入了域
到目前为止,我尝试的是通过ktpass,kinit。。。它起作用了

  • 尝试了以下内容:
    github.com/dstraub/spnego-wildfly
    事实上,Java版本1.8.045没有回退(基于表单)和问题 sourceforge.net/p/spnego/discussion/1003769/thread/700b6941/#cb84

  • 下一步:
    github.com/kwart/spnego演示
    同样不工作的是,Wildfly 8.2似乎有不同的行为

  • 华夫格图书馆: 无法在Wildfly下实现这一点,这是对Tomcat的良好支持,但仅此而已


  • 是否有人对此配置有经验,并有解决方案?

    以下是说明:

  • 我创建了一个包含以下库的webapp:

    • 番石榴-18.0.jar
    • jna-4.1.0.jar
    • jna-platform-4.1.0.jar
    • slf4j-api-1.7.12.jar
    • waffle-jna-1.7.4.jar
  • 我在web.xml中声明了Webfilter:

  • 
    安全过滤器
    waffle.servlet.NegotiateSecurityFilter
    安全过滤器
    /*
    
  • 之后,您可以从HttpServletRequest读取用户
  • 公共字符串getUserName(){
    枚举headerNames=servletRequest.getHeaderNames();
    while(headerNames.hasMoreElements()){
    字符串headerName=headerName.nextElement();
    字符串headerValue=servletRequest.getHeader(headerName);
    System.out.println(“标题名称:“+headerName+”“+headerValue”);
    }       
    返回servletRequest.getUserPrincipal().getName();
    }
    
  • 为单一登录配置浏览器:

  • 我将解释这些技术。Arkin谈到NTLM…,SPNEGO dstraub是一种面向SPNEGO的kerberos。如果阅读源代码,则它不支持NTLM

    但是如果您使用JSF并且有一个PhaseListener,那么在进入筛选之前,您将直接在登录表单上重定向。使用AS JBOSS,您可以使用valve在jbossweb…中进行身份验证,但不能使用wildfly

    因为不能在web.xml中使用2 auth form方法,所以如果需要kerberos(如过滤器中的链),必须使用基于SPNEGO的新机制进行身份验证,如果需要NTLM,则必须使用基于waffle的新机制

    在华夫饼干网站上要小心。据记载,阀门适用于wildfly,但这是一个错误。现在wildlfy使用undertow Web服务器,不再需要tomcat阀门。此外,wildlfy 9和我认为8也删除了所有身份验证机制,只存在表单、基本、外部和证书摘要。Wildlfy 10添加了kerberos身份验证


    现在,NTLM even版本2已被弃用,并且在几年内未得到保护。使用kerberos验证(在active directory上只有很少的配置)更安全。

    我最终使用了华夫格验证。如何使用?请分享这些信息!