0

我正在开发基于 Oauth 2.0 的身份验证/授权方案,使用 Fiware Enablers:Keyrock IdM、Wilma Proxy 和 AuthZforce 授权服务器。

我安装并配置了 Keyrock 和 Wilma,它们一起工作得很好。

在同一台机器上我安装了 AuthZForce。Java OpenJDK 1.7.0_91 和 Tomcat 7 安装在这台机器上的 Ubuntu 14.04 上。

我按照安装指南并使用 gdebi 安装了 AuthZforce,但我实际上无法使用指南中的 curl 命令创建域:

curl --verbose --trace-ascii - --request POST \ --header "Content-Type: application/xml;charset=UTF-8" --data '<?xml version="1.0" encoding="UTF- 8"?><taz:domainProperties xmlns:taz="http://authzforce.github.io/rest-api-model/xmlns/authz/4"> <name>MyDomain</name><description>这是我的域。</description></taz:domainProperties>' --header "Accept: application/xml" http://${MYSERVERHOST}:${MYPORT}/authzforce-ce/domains

我收到以下错误:

<?xml version="1.0" encoding="UTF-8" Standalone="yes"?><ns2:error xmlns:ns2="http://authzforce.github.io/rest-api-model/xmlns/authz /4" xmlns:ns3="http://www.w3.org/2005/Atom" xmlns:ns4="http://authzforce.github.io/core/xmlns/pdp/3.6" xmlns:ns5=" http://authzforce.github.io/pap-dao-file/xmlns/properties/3.6"><message>无效参数:cvc-complex-type.2.4.a:以“名称”开头的无效内容。发现以元素“名称”开头的无效内容。需要一个元素“{description, rootPolicyRef}”。</message></ns2:error>

这似乎是一个 xml 验证错误。我试图访问 AuthZforce API,但程序员指南中的链接给出了 404 错误。

谁能建议如何解决这个问题?

提前致谢。~

4

1 回答 1

0

我意识到我最初的答案被拒绝了,所以我会尝试提供一个更好的答案。与此同时,新的 AuthzForce 版本已经发布,所以我在这里给你一个最新的 AuthzForce v5.4.1 的工作示例。(如有必要,请升级。)为简单起见,让我们将 XML 有效负载写入文件domainProperties.xml并在 curl 命令中重用它:

$ cat domainProperties.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<domainProperties xmlns="http://authzforce.github.io/rest-api-model/xmlns/authz/5" externalId="myOwnId">
   <description>This is my domain</description>
</domainProperties>

externalId 是可选的,您可以将其设置为要用于新域的任何别名。

curl 命令如下:

$ curl --verbose --request "POST" --header "Content-Type: application/xml;charset=UTF-8" --data @domainProperties.xml --header "Accept: application/xml" http://localhost:8080/authzforce-ce/domains

如果需要,请替换localhost您的主机名和8080服务器端口。响应应该提供指向具有新域 ID 的新域资源的链接:

...
< HTTP/1.1 200 OK
< Server: Authorization System
< Date: Mon, 04 Aug 2016 13:00:12 GMT
< Content-Type: application/xml
< Transfer-Encoding: chunked
<
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<link xmlns="http://www.w3.org/2005/Atom" rel="item" href="h_D23LsDEeWFwqVFFMDLTQ" title="h_D23LsDEeWFwqVFFMDLTQ"/>

安装指南中的更多信息。

您还可以使用 externalId 来获取域信息:

$ curl --verbose --request "GET" --header "Accept: application/xml" http://localhost:8080/authzforce-ce/domains?externalId=myOwnId 

用户指南中的更多信息。

于 2016-11-14T11:18:03.670 回答