#python #django #docker #oauth #keycloak
#python #django #docker #oauth #скрытый ключ
Вопрос:
Я хочу проверить токены на предъявителя в API, которые передаются из приложения браузера. API проверит токены на соответствие Keycloak, вызвав конечную точку ../userinfo, и ответит требуемым содержимым, если проверка пройдет нормально. Проблема в том, что если я передаю токен-носитель из браузера или любого другого приложения, если на то пошло (например, postman), в API и пытаюсь его проверить — я получаю «ошибка проверки токена 401».
Следующие работы:
- Извлеките токен из Keycloak через Postman, используя имя пользователя и пароль.
- Извлеките userinfo из Keycloak через Postman, используя полученный токен на предъявителя.
или
- Извлеките токен из Keycloak непосредственно из API, используя имя пользователя и пароль.
- Извлеките userinfo из Keycloak из API, используя полученный токен-носитель.
Следующее НЕ работает:
- Извлеките токен из Keycloak через Postman, используя имя пользователя и пароль.
- Отправьте запрос в API, работающий в контейнере docker, содержащем токен-носитель.
- API пытается получить userinfo, используя токен = «Ошибка проверки токена 401»
Использование одного и того же client_id и client_secret во всех сценариях.
Это что-то вроде docker networking? Или какая-то конфигурация Keycloak необходима для того, чтобы API мог проверять токен «от имени» клиента? Совершенно новый для потоков авторизации.
Ответ №1:
Понял это: я вызывал Keycloak по разным URL-адресам, localhost: 8080 от postman и host.docker.internal:8080 из API, запущенного в Docker. Оказывается, вам нужно вызывать Keycloak по одному и тому же URL-адресу с обоих концов. Я переключился на использование IP-адресов своих машин в обоих случаях, и вуаля!
Комментарии:
1. как вы сделали этого человека?