У меня есть мобильное приложение (собственное реагирование), служба ресурсов (весенняя загрузка) и служба аутентификации Keycloak (Auth-Service).
Клиент выполняет аутентификацию напрямую через Auth-Service и получает токен доступа. Когда я делаю запрос к службе ресурсов, служба ресурсов проверяет токен доступа, запрашивая службу аутентификации. Но токен, полученный клиентским приложением и полем iss, равен http://10.0.2.2:8060/auth/realms/sau и моя служба ресурсов по адресу http://localhost:8110.
Keycloak говорит: error="invalid_token", error_description="Invalid token issuer. Expected 'http://localhost:8060/auth/realms/sau', but was 'http://10.0.2.2:8060/auth/realms/sau'"
У меня вопрос: как выполнить аутентификацию в службе ресурсов от имени моего клиента?
Мобильное приложение:
export const prepareRequestBody = credentials => {
const params = new URLSearchParams();
params.append('username', credentials.username);
params.append('password', credentials.password);
params.append('client_id', "nasilim-mobile-app");
params.append('grant_type', "password");
return params;
};
export const login = credentials => {
const params = prepareRequestBody(credentials);
return axios.post(LOGIN, params);
};
Ресурс-Сервис:
application.yml
keycloak:
realm: sau
resource: photo-service
bearer-only: false
auth-server-url: http://localhost:8060/auth
credentials:
secret: 69a3e80c-8360-42df-bcec-b6575a6949dc
Примечание. Я проверил этот вопрос и попытался установите "X-Forwarded-For": "http://localhost:8060/", но это не сработало Keycloak возвращает: {
"error": "invalid_request",
"error_description": "HTTPS required"
}
Вот Пример Токен доступа, полученной с помощью мобильного клиента.
keycloak.proxy-url
christophewillemsen.com/2021/06/08/ - person Christophe Willemsen   schedule 08.06.2021