У меня есть провайдер oAuth, который использует URL аутентификации. В некоторых случаях мой URL-адрес аутентификации возвращает «не-200» со значениями сообщений, например, неверное имя пользователя, неверный пароль, пользователь заблокирован и т. Д. c. Интересно, как передать значимое сообщение с URL-адреса аутентификации клиенту, который запрашивает токен через API (oauth2 / token) ?? Я пробовал много способов, API Connect всегда выдает 401 - только недопустимое разрешение.
Вот мой код провайдера oAuth
x-ibm-configuration:
testable: true
enforced: true
phase: realized
oauth2:
client-type: confidential
scopes:
weather: Weather Information
openid: Enable OIDC
grants:
- password
identity-extraction:
type: basic
authentication:
x-ibm-authentication-url:
url: 'https://8hxovobj7g.execute-api.eu-west-2.amazonaws.com/Prod/auth'
authorization:
type: authenticated
access-token:
ttl: 1500
refresh-token:
count: 2048
ttl: 2682000
gateway: datapower-gateway
assembly:
execute:
...
...
, когда аутентификация завершается неудачно из-за неверного имени пользователя, URL-адрес аутентификации возвращается
401 Unauthorized
{
"error": "incorrect username"
}
Однако, когда я использую почтальон для отправки запроса в API Connect Gatwatway к провайдеру oAuth (путь: / oauth2 / token)
, если правильный пароль пользователя (authen Реестр пользователей URL возвращает 200-ОК, я получу
{
"token_type": "bearer",
"access_token": "AAIkNTU4M2RlMzktODY1NS00ZDQ1LTgyMjctODEyMDM4MDUzMTE2m7lBYXfx73OVPONAHoLT5VNdtSVD40Hu-M3nAQPu6wdviOxcIfbsOXBwt-Iy8EAgLzuATlZB7RBME_U5Ymd5fDkRTwy05G9zGmV7mIkawaELtiOj4xdzQr7Vn-indlv-y1NFEjvRv2VrK0d3TOqZnTEj5heDdY7Q0X9BFeydV4MtS-gCpnj-9l6TU3XqyeiK5hGnBZkZRAWOIskLm4KCyf8n_mnsi42vN9GLxlxoO9EmuHAwXOxr_aocKaaVlLKK5vDMHBRws2Vguqk3eVuoh9EnkRZvjbTurmW57bCgX3nMTd6MwcEYFkAGh-cOcEDyydZR6BI_pLuwaUM9RN8Vnb7EATQjzW2d_eHKQyjShcyM0TqxzhYq3q90fLfJLo08WxDgTFaKpGHA6qoZmUpYRLeyyImhOPtyd9p1l9z87g52duHbL1cyVGErHktTVpeXsmIRtn-QTTvI4jWmjxPZnSYj_rEeR9S8QAxYpHSEPmJQQmsjISf2SIRLABwuhG9dKyrrzs3UTotVyIotxmJjc9lfEsEtDTz9Ej--yQFw97ESHCVEvOkifeyIJ9F5MyPFh7fMEoGGwyDmWEfZSYRpkLg4_ib3dbjkGAuthiwjdA0",
"metadata":
...
}
, если неверное имя пользователя / пароль (authen URL реестра пользователей возвращает 401-Несанкционированный с телом ответа (сообщение об ошибке), я получу
401-Unauthorized
{
"error": "invalid_grant"
}
URL-адрес аутентификации изготовлен на заказ. Я попытался сделать разные возвраты в URL-адресе аутентификации (другой код ответа http / body / headers), которые не могут повлиять на результат oauth / toauth конечного пользователя, который всегда вернуть сообщение «недопустимый грант». что я действительно хочу передать конечному пользователю сообщение с результатом аутентификации URL, чтобы пользователи знали, что не так например, неверное имя пользователя
Спасибо за любезную помощь