Как проверить REST API администрирования Keycloak - PullRequest
0 голосов
/ 06 февраля 2020

как я могу протестировать нативные сервисы Keycloak

В документации представлено несколько сервисов, таких как: управление пользователями, клиентами, группами и сессиями. Я пытался тестировать эти сервисы разными способами, но безуспешно. Возможно, из-за неправильной конфигурации

я видел пример на Stackoverflow, который показал правильный путь для служб

Например. http: // {address-and -port} / auth / admin / realms / {Realm} / users

И некоторые настройки для проверки на почтальоне, но мне не удалось вызвать

. Есть пример или может помочь мне, как активировать / использовать эти службы.

Спасибо!

Службы для потребления: (Keycloak Admin REST API ) https://www.keycloak.org/docs-api/8.0/rest-api/index.html]

1 Ответ

1 голос
/ 06 февраля 2020

Я экспортировал вам коллекцию почтальонов: https://pastebin.com/Aaf3BUah вы можете импортировать ее в почтальон.

Но я хочу указать, как использовать API:

В моем примере используется работающий экземпляр keycloak (8.0.2) на http://localhost: 80 с пользователем admin и паролем Pa55w0rd

In состоит из 2 запросов:

Логин:

Войдите в систему с помощью моего администратора и получите токен доступа, использованный в запросе 2.

POST http://localhost:80/auth/realms/master/protocol/openid-connect/token
Content-Type:x-www-form-urlencoded

со следующими параметрами (изменить имя пользователя / пароль)

username:admin
password:Pa55w0rd
grant_type:password
client_id:admin-cli

В результате я получу некоторые данные, но важен носитель access_Token:

{
    "access_token": "eyJhbGc...JDjfg", //i reduced the string
...
}

Имейте в виду, этот токен необходим для выполнения Request2. Но он действителен только в течение 60 секунд, поэтому будьте быстры при тестировании: -)

Получить всех пользователей:

GET http://localhost:80/auth/admin/realms/master/users
Header  Authorization: Bearer eyJhbGc...JDjfg

Ответ:

[
    {
        "id": "9fec4b6c-3648-425b-a90f-f6dd78f421ab",
        "createdTimestamp": 1581017581626,
        "username": "admin",
        "enabled": true,
        "totp": false,
        "emailVerified": false,
        "disableableCredentialTypes": [],
        "requiredActions": [],
        "notBefore": 0,
        "access": {
            "manageGroupMembership": true,
            "view": true,
            "mapRoles": true,
            "impersonate": true,
            "manage": true
        }
    }
]

В этом примере , вы должны иметь доступ к различным конечным точкам REST API. Но убедитесь, что вы включаете действительный access_token в каждый отправляемый вами запрос - в противном случае вы просто получите Not Authorized ответ

...