问题标签 [spring-security-ldap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6640 浏览

spring-boot - 在 Spring Boot OAuth2 授权服务器中使用 Active Directory 身份验证

我正在尝试使用 Spring Boot 和 OAuth2 设置概念证明。我已经建立了一些与此处概述的项目非常相似的项目:

https://spring.io/guides/tutorials/spring-boot-oauth2/

在这里:https ://spring.io/guides/tutorials/spring-security-and-angular-js/

与我的主要区别是我遗漏了所有 AngularJS 的东西。

我有以下服务:

  • 授权服务器
  • 资源服务器(作为受保护的 OAuth2 客户端)
  • UI 服务器(作为受保护的 OAuth2 客户端)

我想要发生的只是:

  1. 访问 UI 服务器
  2. 重定向到身份验证服务器并提示输入凭据
  3. 然后 UI 服务器将从资源服务器获取一些文本并显示它们

我可以通过身份验证服务器上的基本身份验证使这一切正常工作。但是,我希望能够将基本身份验证替换为 Active Directory 中的身份验证。

我有几个其他的 Spring Boot 项目可以进行 AD 身份验证,并且可以正常工作,但是每当我尝试将其放入其中时,都会出错。我认为这与身份验证服务器端点周围的安全性有关,但我不确定是什么。

另外,我不清楚在生产环境中哪些端点应该通过什么协议(OAuth2 v. Basic)来保护?文档建议应使用 Basic 保护某些端点。所有“OAuth2 客户端”都应该以某种方式在他们的请求中包含这些凭据吗?

这是我的身份验证服务器应用程序(添加了 Active Directory 位):

}

基本上然后发生的事情是当我点击 UI 服务器时我得到了这个:

如果我对授权服务器执行此操作:

看起来登录端点现在需要一个不记名令牌?我不知道现在如何进行...

任何帮助/建议将不胜感激...

0 投票
1 回答
5262 浏览

java - 如何在 Spring Security 中启用内容安全策略以选择性地 http 模式

我的弹簧安全配置如下所示:

现在,对于上面带有 security="none" 的 http 模式,我想为此启用内容安全策略 (CSP)。只要我保持 security="none",我认为我不能将 CSP 应用于它。

在 Spring Security 中启用 CSP 的标头如下:

现在,我只想将此标头应用于我现在有 security="none" 的前两个 http 模式,而不是我在下一个 http 块中添加的其余 URL。我只是找不到办法。可能吗?有人可以建议吗?

我不需要为前两种模式定义 entry-point-ref。但是,删除 security="none" 会迫使我为它定义一个。请注意,我想要的只是能够为那些选定的模式启用 CSP,仅此而已。请帮忙!

更新:

0 投票
2 回答
9251 浏览

java - 没有全名的 Spring Security Active Directory LDAP 身份验证

使用 Spring Security 3.2 我已经配置了 ActiveDirectoryLdapAuthenticationProvider。我可以使用全名示例 sharon@mydomain.com 进行身份验证,但是当我尝试仅使用用户名“sharon”进行身份验证时,出现以下错误

根据弹簧安全文件:

例如,名为“Sharon”的用户将能够通过输入用户名 sharon 或完整的 Active Directory userPrincipalName(即 sharon@mydomain.com)进行身份验证

我的配置

我的配置有什么错误。

0 投票
1 回答
401 浏览

grails - grails-spring-security-ldap 插件配置 LDAP 连接超时

我正在尝试使用 grails-spring-security-ldap 插件(版本 2)配置 LDAP 连接超时,但找不到正确的配置。

例如,使用此配置:
grails.plugin.springsecurity.ldap.context.server = "ldaps://host1 ldaps://host2"

我一直在测试 host1 不可用的场景,期望连接超时是我配置的。症状有两件事:
1. 服务器需要大约额外的 3 分钟才能启动。即它在 LDAP 配置步骤中等待几分钟,然后故障转移到 host2。
2. 登录尝试似乎有大约 10 秒的故障转移超时。
所以我假设我的配置尝试没有被应用。

我已经尝试了这两种方法都没有成功:
1. Config.groovy 值:grails.plugin.springsecurity.ldap.context.baseEnvironmentProperties = ['com.sun.jndi.ldap.connect.timeout': '2000']
2. 启动 env 属性:-Dcom.sun.jndi.ldap.connect.timeout=2000

关于我做错了什么的想法?

0 投票
0 回答
292 浏览

spring - Spring LDAP 搜索查询 - 并过滤返回重复响应

尝试在目录中按姓氏搜索用户。使用以下查询

AndFilter andFilter = new AndFilter(); andFilter.append(new EqualsFilter(LDAPAttributeConstants.LAST_NAME, userInformation.getLastName())); List searchList = ldapTemplate.search(appContainer, andFilter.encode(), controls, new UserDetailsMapper());

获取同一用户的多个重复值作为响应。检查目录,只有一个这样的用户存在。如何停止返回的重复值?并且根本不显示具有相同姓氏的其他用户...查询有问题...?...请帮助

例如响应得到: 0: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid": "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }- 1: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid": "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }- 2: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid" : "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }- 3: { "userId": "TestA123" "firstName": "abc" "lastName": "def" "emailId": "abcdef@gmail.com" "guid": "b%25252525252525252525252525252525252525252525252525252525252FrkUA1%25252525252525252525252525252525252525252525252525252525252xQABAeKAziw%25252525252525252525252525252525252525252525252525252525253D%25252525252525252525252525252525252525252525252525252525253D" }

0 投票
0 回答
403 浏览

spring - 如何在spring oauth授权服务中为每个clientId配置身份验证提供程序

我正在尝试确定是否可以在同一个 spring oauth2 授权服务中为每个客户端 ID 使用不同的身份验证提供程序。

特别是,我想允许外部用户登录我们公司网站的资源所有者密码令牌授予,以及对公司用户的隐式授予。企业用户存储在我们的企业 Active Directory 服务器中,而外部用户存储在单独的 LDAP 服务器中。

是否可以以某种方式将 AuthenticationManager 绑定到 clientId?

0 投票
0 回答
1509 浏览

java - Spring Security LDAP:错误代码 49 - 无法绑定 principalDn

我正在使用 Spring security ldap 3.2.6 并且能够成功地为某些用户进行身份验证,但对于某些用户来说却失败了,并出现以下错误

安全 Java 配置

我传递了像 2000791@mydomain.net 这样的全名,它适用于某些用户而不适用于其他用户。LDAP 管理员表示该帐户稳定、活跃且未锁定。那么可能是什么问题。

0 投票
2 回答
330 浏览

tomcat - Grails 3 和 Spring Security LDAP 未加密流量

我在 Tomcat 8 上运行 Grails 3 应用程序。我开发的应用程序通过 HTTPS,并使用 grails spring security LDAP 插件进行身份验证。(插件提供的默认登录页面,没有自定义) Tomcat 被启用以仅使用 HTTPS 而 HTTP 被禁用。

我的 application.groovy 文件还包含以下弹簧安全代码:

(其他细节只是查询内容的配置参数等)

这是我的测试场景:

我有一台 Windows 机器运行应用程序,托管在 Ubuntu 机器上。ubuntu 机器向 AD(Active Directory)机器发出 LDAP 请求。供参考,以下是IP:

在监控来自 .1(Windows 机器)的 TCP 流量后,一切都是乱码,无法读取。当嗅探从 .10 到 .4(Tomcat 到 AD)的数据包时,LDAP 数据包是明文形式的。当然,我认为这不应该是这样的。我需要在 tomcat 中做一些额外的步骤来确保 ldap 流量被加密吗?

问题图片

0 投票
0 回答
357 浏览

grails - 将 Grails 从 2.1.4 升级到 2.4.0 并将 JDK 从 1.7 升级到 1.8 时出现问题

我们有一个由 grails 2.1.4 和 JDK 1.7 实现的应用程序,我们需要将其迁移到 grails 2.4.0 和 JDK 1.8。

在更新到 grails 2.4.0 时,以下是我们完成的更改。

  1. 更新了 BuildConfig.groovy 和 application.properties 文件中的所有插件。
  2. 许多类已弃用,因此我使用了 grails.util.Holders 类而不是以下已弃用的类。

    org.codehaus.groovy.grails.commons.ApplicationHolder org.codehaus.groovy.grails.commons.ConfigurationHolder org.codehaus.groovy.grails.plugins.PluginManagerHolder

  3. 对于少数类,我已根据 grails 2.4.0 更改了导入包

  4. 最新的richUI 插件不可用,所以我在richUI 插件groovy 类中更新了Holders 类而不是ConfigurationHolder。

成功构建战争并在tomcat中部署战争。

问题是无法将链接从 urlmappings.groovy 重定向到主控制器和适当的 gsp。

  1. 试图重定向到 project(index.gsp) 中的另一个 gsp,但它不能。
  2. 创建了新的 gsp(hello.gsp) 并从 urlmappings.groovy 重定向到 hello.gsp,但它不起作用。

尝试加载应用程序 URL http://localhost:8080/abc时,它将重定向到http://localhost:8080/abc/login/auth显示页面无法显示

在调试时,控制从 urlmappings.groovy 转到 bootstrap.groovy,而且它不会在任何地方导航。

任何帮助表示赞赏。提前致谢

添加 Urlmappings.groovy

static mappings = {
"/$controller/$action?/$id?"{ constraints {
// 在这里应用约束
} }

// Home
"/"(controller:"home",action:"index")

// 报告服务urls
"/services/report"(controller: "BirtReport"){
action=[GET:"list"]
}

"500"(view:'/error')
}

在运行应用程序时,我在 stacktrace.log 中收到以下错误

错误 context.GrailsContextLoaderListener - 初始化应用程序时出错:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义名称为“pluginManager”的 bean 创建错误:调用 init 方法失败;嵌套异常是 java.lang.RuntimeException:无法使用类 org.codehaus.groovy.grails.commons.DefaultGrailsS​​erviceClass 类 org.springframework.beans.factory.BeanCreationException 的类参数找到构造函数:创建 ServletContext 中定义的名称为“pluginManager”的 bean 时出错资源[/WEB-INF/applicationContext.xml]:init方法调用失败;嵌套异常是 java.lang.RuntimeException: Unable to locate constructor with Class parameter for class org.codehaus.groovy.grails.commons.DefaultGrailsS​​erviceClass
在 java.util.concurrent.FutureTask.run(FutureTask.java:266)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :617)
在 java.lang.Thread.run(Thread.java:745)
引起:java.lang.RuntimeException: 无法使用类 org.codehaus.groovy.grails.commons.DefaultGrailsS​​erviceClass 的类参数找到构造函数
... 4 更多
原因:java.lang.reflect.InvocationTargetException
... 4 更多
原因:java.lang.NoClassDefFoundError: org/pentaho/di/core/logging/LogLevel
at java.lang.Class.privateGetDeclaredMethods(Class.java:第2693章
在 java.lang.Class.getDeclaredMethods(Class.java:1967)
... 4 更多
原因:java.lang.ClassNotFoundException: org.pentaho.di.core.logging.LogLevel
at java.net.URLClassLoader$1.run( URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java: 424)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 还有 6 个

0 投票
1 回答
404 浏览

spring-security - 从 ldap + shibboleth idp 获取 spring sp 中的用户属性

我能够将基本的 spring 应用程序https://github.com/UniconLabs/shibboleth-sample-java-sp与 shibboleth idp 和 ldap 集成。登录和注销功能运行良好。但我没有在我的 sp(spring app) 中找到任何与检索用户属性(如名字、姓氏、常用名等)相关的文档

请帮帮我。