我正在尝试使用OpenAM + J2EE tomcat代理保护Java servlet。我通过使用OpenAM的嵌入式OpenDJ来完成这部分工作。
现在我正在尝试对LDAP服务器进行身份验证,因此我为OpenAM添加了一个LDAP模块实例,但是当我尝试使用该LDAP中的用户的uid /密码时,我得到“此组织中的用户没有配置文件”存储。
我查看了OpenAM管理指南,其描述相当简短。我想知道是否可以在不使用为OpenAM配置的数据存储的情况下执行此操作?
答案 0 :(得分:2)
OpenAM中的登录过程分为两个阶段:
通过配置LDAP身份验证模块,您可以处理身份验证部分,但是配置文件查找失败,因为您尚未配置用户数据存储(请参阅数据存储选项卡)。拥有已配置的数据存储允许您潜在地在部署中公开其他用户详细信息(例如,在SAML断言中包含用户属性或将其映射到具有代理的HTTP标头),因此在大多数情况下配置数据存储是必要的。 / p>
如果您仍然不想配置数据存储,则可以通过访问控制 - >阻止用户配置文件查找失败。 <境界> - >身份验证 - >所有核心设置 - >用户配置文件模式并将其设置为忽略。
答案 1 :(得分:0)
这与身份验证无关,但它与授权有关...您必须配置适当的策略...请参阅OpenAM文档。
代理将强制执行授权,OpenAM确定用户是否具有访问受保护资源的权限。
答案 2 :(得分:0)
正如Bernhard所说,身份验证只是授予用户访问权限的一部分。他指的是使用策略来控制访问。
另一种方法是以编程方式检查经过身份验证的用户是否是所需组的成员。当您希望对OpenAM不了解的资源(例如特定数据)进行访问控制时,这非常有用。
例如,假设您希望不同的组可以访问数据库中表中的不同行。您可以检索与用户关联的组信息,并将其添加到数据库查询中,从而限制返回的数据。
我确信您可以使用OpenAM以及使用自定义模块来执行此操作,以允许策略将数据库中的信息用作资源,但我发现在您的数据库中执行此细粒度访问控制要简单得多代码,并且很可能明显更快。