1

我將通過OAuth2和XACML(使用AuthZForce,Balana,AT & T XACML或類似的軟件)來保護我的Spring Cloud應用程序。Spring Cloud的XACML

我想使用Spring-Cloud(-Netflix)的微服務。爲了使XACML可我想,我需要這樣的:

  1. PEP爲每個現有的API服務
  2. PDP的新服務,由PEP的使用。因爲Spring-Cloud(-Netflix)具有負載均衡功能(Eureka),所以我需要在Eureka上註冊此服務並實現REST-API。
  3. 因爲所有PDP的應該使用相同的策略,他們需要集中(政策提供商)

哪種框架是最適合這種方式存儲。

更新1 應該(根據特徵描述)與AuthZForce是可能的,但我真的不知道如何(有沒有詳細的文檔或者教程)。

回答

1

我不太瞭解所有的框架,所以我不能給出客觀答案哪個框架最適合。但我可以給AuthzForce一個答案。

對於PDP部分,您可以使用AuthzForce Core作爲Java庫。 wiki提供了有關策略提供程序的信息,以及如何在必要時將自己添加到框架。那裏有一個從MongoDB數據庫獲取策略的例子。請注意,如果您希望PDP使用相同的策略,則中央存儲是一種解決方案,但另一種方法是使用複製/同步。例如,如果您使用支持在本地文件系統上獲取策略的策略提供程序,則像csync2這樣的分散式集羣同步工具可以在沒有單點故障的情況下完成這項工作。

此外,您可能對AuthzForce Server感興趣,它提供符合XACML REST profile(PDP部分)的multi-tenant REST API for both PDP and PAP(策略管理)。如果你只需要PDP,可能是矯枉過正,但如果你的需求朝着這個方向發展,可能值得一看。對於PEP部分,您可以重用Maven Central(groupId = org.ow2.authzforce,artifactId = authzforce-ce-xacml-model)上提供的authzforce-ce-xacml-model(和依賴關係)來操縱與您交換的XACML請求/響應PDP的REST API。這主要包含從XACML模式派生的所有JAXB註釋類,以及標準XACML標識符的枚舉:類別,屬性,數據類型等。

+0

感謝您的答案,並且您已將Wiki添加到Core-Repo。我會給AuthZForce另一個機會,並會接受這個答案,如果我得到它的工作。 – benkuly

+0

好的。 AuthZForce Core不提供OASIS XACML JSON Profile v1.0,所以很遺憾不適合我。對不起:(如果Core至少得到了對REST配置文件的支持,它可能會改變我的想法,但實際上我錯過了這個功能 – benkuly

+0

如果你需要JSON支持和REST配置文件 – cdan