Проблемы с созданием домена в Fiware AuthZforce Authorization Server

Я разрабатываю схему аутентификации / авторизации на основе Oauth 2.0 с использованием Fiware Enablers: Keyrock IdM, Wilma Proxy и сервера авторизации AuthZforce.

Я установил и настроил Keyrock и Wilma, и они отлично работают вместе.

На этой же машине я установил AuthZForce. Java OpenJDK 1.7.0_91 и Tomcat 7 установлены в Ubuntu 14.04 на этом компьютере.

Я следовал руководству по установке и установил AuthZforce с помощью gdebi, но на самом деле я не могу создать домен с помощью команды curl, найденной в руководстве:

curl --verbose --trace-ascii - --request POST \ --header "Content-Type: application / xml; charset = UTF-8" --data ' MyDomain Это мой домен. ' --header "Accept: application/xml" http://${MYSERVERHOST}:${MYPORT}/authzforce-ce/domains.

Я получил следующую ошибку:

Недопустимые параметры: cvc-complex-type.2.4.a: недопустимое содержимое, начинающееся с "name". Обнаружен недопустимый контент, начиная с элемента "name". Ожидается элемент "{description, rootPolicyRef}".

Кажется, это ошибка проверки XML. Я пытался получить доступ к AuthZforce API, но ссылка в руководстве программиста выдает ошибку 404.

Кто-нибудь может подсказать, как исправить эту проблему?

Заранее спасибо. ~

1 ответ

Я понял, что мой первоначальный ответ был отклонен, поэтому я постараюсь дать лучший. Тем временем вышли новые версии 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 с портом сервера при необходимости. Ответ должен содержать ссылку на новый ресурс домена с новым идентификатором домена:

...
< 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 

Больше информации в руководстве пользователя.

Другие вопросы по тегам