При подключении к приложению с токеном доступа возвращается 401 - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь подключить меня к серверу Keycloak, который развертываю, чтобы загрузить файл с другим подключенным развернутым веб-приложением.

export access_token=$(curl -X POST \
    -H 'Content-Type: application/x-www-form-urlencoded' \
    -d 'client_secret=fd8187db-f7c3-4f93-a58c-a10e3865dfe5&username=afvg&password=afvg&client_id=login-app&grant_type=password' \
    -v --noproxy localhost, http://localhost:8080/auth/realms/FocusocKeycloak/protocol/openid-connect/token | jq --raw-output '.access_token') 

curl -v -X POST \
  -F file="README.md" \
  --noproxy localhost, http://localhost:38080/api/upload \
  -H "Authorization: Bearer "$access_token

Где в первой части я беру токен доступаиспользовать его после в доступе к приложению, но второй локон возвращает меня Ошибка 401,

< HTTP/1.1 401
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: 0
< X-Frame-Options: DENY
< Content-Length: 0
< Date: Wed, 23 Oct 2019 12:01:49 GMT
<
* Curl_http_done: called premature == 0
* Connection #0 to host localhost left intact

Что-то не хватает?

Редактировать:

Теперь ответ:

< HTTP/1.1 100
< HTTP/1.1 401
< WWW-Authenticate: Bearer realm="FocusocKeycloak", error="invalid_token", error_description="No audience in the token"
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: 0
< X-Frame-Options: DENY
< WWW-Authenticate: Bearer realm="FocusocKeycloak", error="invalid_token", error_description="No audience in the token"
< Content-Length: 0
< Date: Thu, 24 Oct 2019 07:45:54 GMT
< Connection: close

1 Ответ

0 голосов
/ 23 октября 2019

Вот мой файл .sh, который я использую, чтобы сделать что-то похожее на то, что вы пытаетесь

KC_REALM=$1
KC_CLIENT=$2
KC_USERNAME=$3
KC_PASSWORD=$4
KC_URL="https://<server_domain>/auth"

# Request Tokens for credentials
KC_RESPONSE=$( curl -X POST --data "grant_type=password&client_id=$KC_CLIENT&username=$KC_USERNAME&password=$KC_PASSWORD"  $KC_URL/realms/$KC_REALM/protocol/openid-connect/token  | jq . )

echo $KC_RESPONSE

KC_ACCESS_TOKEN=$(echo $KC_RESPONSE| jq -r .access_token)
KC_ID_TOKEN=$(echo $KC_RESPONSE| jq -r .id_token)
KC_REFRESH_TOKEN=$(echo $KC_RESPONSE| jq -r .refresh_token)

echo Keycloak Access Token:
echo $KC_ACCESS_TOKEN

curl -X $5 -H "Authorization: Bearer $KC_ACCESS_TOKEN" -H "Accept: application/json" -i $6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...