【发布时间】:2021-01-24 05:44:56
【问题描述】:
我有用于多个应用程序(网页和 REST API)的身份验证和授权的 Keycloak。据我了解,使用 OAuth2 authentication_code 授权类型时网页的流程如下:
在此流程中,在第二步(红色部分)中,资源所有者登录,因为她/他被重定向到 Keycloak 的登录页面。这个流程对我来说很清楚并且运行良好。
但是,使用 REST API,我不知道验证和授权用户(资源所有者)的过程是什么,因为没有浏览器将他重定向到 Keycloak 的登录页面。因此,我尝试使用 password 授权类型并且它有效,但后来我意识到这种授权类型已被弃用。所以我再次尝试使用authorization_code 授权类型,但无法使其工作。我正在尝试使用以下请求获取令牌:
网址: http://localhost:8080/auth/realms/somerealm/protocol/openid-connect/token
主体:
username: someuser
passwoord: somepassword
grant_type: authorization_code
client_id: someclient
secret: somesecret
问题是我收到以下回复:
{
"error": "invalid_request",
"error_description": "Missing parameter: code"
}
我知道我的请求有问题(以及我对 OAuth2 的理解),但我阅读了很多内容,但无法发现它是什么。
【问题讨论】: