Authentication 春季云的XACML

Authentication 春季云的XACML,authentication,spring-cloud,spring-cloud-netflix,xacml,authzforce,Authentication,Spring Cloud,Spring Cloud Netflix,Xacml,Authzforce,我将使用AuthZForce、Balana、AT&T XACML或类似的工具,用OAuth2和XACML保护我的Spring云应用程序 我想使用SpringCloudNetflix的微服务。要使XACML可用,我认为我需要: 每个现有API服务的PEP PDP作为PEP使用的新服务。由于SpringCloudNetflix具有负载平衡功能Eureka,我需要在Eureka上注册此服务并实现REST-API。 因为所有PDP都应该使用相同的策略,所以它们需要集中存储在策略提供程序中 哪种框架最适合

我将使用AuthZForce、Balana、AT&T XACML或类似的工具,用OAuth2和XACML保护我的Spring云应用程序

我想使用SpringCloudNetflix的微服务。要使XACML可用,我认为我需要:

每个现有API服务的PEP PDP作为PEP使用的新服务。由于SpringCloudNetflix具有负载平衡功能Eureka,我需要在Eureka上注册此服务并实现REST-API。 因为所有PDP都应该使用相同的策略,所以它们需要集中存储在策略提供程序中 哪种框架最适合这种方法

更新1
根据功能描述,使用AuthZForce应该是可能的,但我不确定为什么没有详细的文档或教程。

我不太了解所有的框架,因此我无法客观地回答哪个框架最适合。但我可以为AuthzForce提供答案

对于PDP部分,可以使用as Java库。提供了有关策略提供程序的信息,以及如何在必要时将自己的策略添加到框架中。这里提到的一个从MongoDB数据库获取策略。请注意,如果希望PDP使用相同的策略,则中央存储是一种解决方案,但另一种解决方案是使用复制/同步。例如,如果您使用支持在本地文件系统上获取策略的策略提供程序,那么像这样的分散集群同步工具可以在没有单点故障的情况下完成这项工作

此外,您可能感兴趣的是,为PDP部分提供符合的策略管理。如果您只需要PDP,这可能有些过分,但如果您的需求朝着这个方向发展,这可能值得一看


对于PEP部分,您可以重用Maven Central groupId=org.ow2.authzforce、artifactId=authzforce ce xacml模型上提供的xacml请求和依赖项,以操纵与PDP的REST API交换的xacml请求/响应。这主要包含从XACML模式派生的所有JAXB注释类,以及标准XACML标识符的枚举:类别、属性、数据类型等。

谢谢您的回答,并且您向核心Repo添加了一个wiki。我会再给AuthZForce一次机会,如果我能成功的话,我会接受这个答案。AuthZForce Core不提供OASIS XACML JSON配置文件v1.0,因此很遗憾,它不适合我。抱歉:如果Core至少获得了对REST配置文件的支持,这可能会改变我的想法,但实际上我错过了这个功能。如果你需要JSON支持和REST配置文件…,AuthzForce Core确实不够,但AuthzForce Server是。在RESTAPI上支持XML/JSON和FI。它不支持XACML JSON配置文件指定的JSON,但使用更通用的“映射”约定,因为它适用于任何现有的XML模型,并且本机由web服务框架支持,因此不需要XACML特定的JSON配置文件实现。AuthzForce Core和Server现在都支持XACML的JSON配置文件。AuthzForce还提供了一个基于核心的最小版本,可以打包为Spring引导应用程序,也可以简单地打包为JAX-RS实现,以便在任何JAX-RS框架中重用。