我正在尝试登录dcos-cli(OAuth启用)。 当我输入dcos auth login - >这给了我一个网址
如果我在浏览器中打开URL并输入凭证,则会生成代码(令牌),使用该代码我可以登录到cli。
这必须是自动的,所以我发送一个卷曲请求
curl -s --data \
"grant_type=password&client_id=dcos&username=dcosuser&password=<>" \
-H "Content-Type: application/x-www-form-urlencoded" \
https://ip:port/auth/realms/DCOS/protocol/openid-connect/token \
| jq -r '.access_token'
但是使用此访问令牌我无法登录。 任何人都可以帮忙。
答案 0 :(得分:0)
通过java程序解决这个问题,该程序从keycloak-server获取访问代码,然后运行dcos auth login
。
java代码对https://<ip>/login?redirect_uri=urn:ietf:wg:oauth:2.0:oob
然后从页面中提取返回页面中的“action”属性,然后从POST请求中提取到“action”获取的URL以及其他参数,如密码。
Ex: https://<ip>:<port>/auth/realms/DCOS/login-actions/authenticate?code=erpkJ0BaLcp9VV2eTkY_a9xdpeNNzc375Ic7vHxhcMg.1b1461c6-51cd-484e-8c0e-a615600b7156&execution=8ad82be0-2471-40b1-b7e0-3192e0c8a381
Post parameters : username=dcosuser&password=<pass>&login=Log+in