我无法使用Azure服务主体获取刷新令牌(使用客户端ID和客户端密钥)
请帮助我通过CURL获取刷新令牌以及如何使用它。
当我在Windows CMD提示符中运行以下CURL命令时,我将获得访问令牌。而我没有获得刷新令牌。
我在这里错过了什么吗?
输入:
curl -X POST https://login.microsoftonline.com/12345/oauth2/token ^
-F grant_type=client_credentials ^
-F resource=https://management.core.windows.net/ ^
-F client_id=12345-abcde ^
-F client_secret=12345abcde
输出:
{
"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "3600",
"expires_on": "1554368330",
"not_before": "1554364430",
"resource": "https://management.core.windows.net/",
"access_token": "XXXXXXXXXXXXX"
}
由于输出没有刷新令牌(我如何得到它)
请提出任何可能的见解
您没有获得具有客户端ID和密码的刷新令牌。这没有意义。刷新令牌仅在涉及用户时才有意义。因为在那里它允许你获得新的令牌而不会提示用户再次登录。
您不需要刷新令牌。您可以根据需要获取具有客户端ID和密码的新令牌。
将grant_type更改为“password”,将用户名和密码添加到请求中。
curl -X POST https://login.microsoftonline.com/12345/oauth2/token ^
-F grant_type=password ^
-F resource=https://management.core.windows.net/ ^
-F client_id=12345-abcde ^
-F client_secret=12345abcde ^
-F [email protected] ^
-F password=******
您将能够获得refresh_token。
{
"token_type": "Bearer",
"scope": "User.ReadWrite.All",
"expires_in": "3600",
"ext_expires_in": "3600",
"expires_on": "1554711949",
"not_before": "1554708049",
"resource": "https://management.core.windows.net/",
"access_token": "******",
"refresh_token": "******"
}
您可以使用refresh_token来refresh the access token。