无需解释即可替代 OAuth 2.0 ROPC HTML/Javascript
Alternative to OAuth 2.0 ROPC without interpreting HTML/Javascript
我处于使用 HTTPS 客户端代表用户请求访问令牌的嵌入式设备环境中(应用程序需要委派权限)。
我目前正在使用 OAuth 2.0 ROPC (https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc) 获取我的令牌,一切正常。
但由于此身份验证已弃用,我想改用更安全的解决方案,适用于混合身份联合方案。
我看到还有许多其他解决方案,但我找不到不需要解释 HTML/JS 响应的解决方案。
这里有一个 CURL 例子来解释我的观点:
ROPC 请求:
curl -X POST "https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/token" --data "grant_type=password&scope=EWS.AccessAsUser.All&username=<username>&password=<password>&client_id=<client_id>&client_secret=<client_secret>" -H "Content-Type: application/x-www-form-urlencoded"
回应:
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":3599,"access_token":"eyJ0eX....1234"}
在这里我可以直接从响应中提取令牌。
但使用其他方式获取委托权限令牌,例如 OAuth 2.0 隐式授予流程 (https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow),响应始终是我无法解释的 HTML。
所以在这里我想知道是否有解决这种情况的方法。
提前致谢,
阿洛伊斯·凯鲁
无法在工具中使用隐式流获取token,只能在浏览器中运行请求url。因为使用隐式流需要您登录。请注意,在此之前,您必须启用 id token 和 access token.
在浏览器中请求 ID 令牌和访问令牌。
https://login.microsoftonline.com/{tenant id}/oauth2/v2.0/authorize?
client_id={client id}
&response_type=id_token token
&redirect_uri={redirect_uri}
&scope=openid EWS.AccessAsUser.All
&response_mode=fragment
&state=12345
&nonce=678910
我处于使用 HTTPS 客户端代表用户请求访问令牌的嵌入式设备环境中(应用程序需要委派权限)。
我目前正在使用 OAuth 2.0 ROPC (https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc) 获取我的令牌,一切正常。
但由于此身份验证已弃用,我想改用更安全的解决方案,适用于混合身份联合方案。
我看到还有许多其他解决方案,但我找不到不需要解释 HTML/JS 响应的解决方案。
这里有一个 CURL 例子来解释我的观点:
ROPC 请求:
curl -X POST "https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/token" --data "grant_type=password&scope=EWS.AccessAsUser.All&username=<username>&password=<password>&client_id=<client_id>&client_secret=<client_secret>" -H "Content-Type: application/x-www-form-urlencoded"
回应:
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":3599,"access_token":"eyJ0eX....1234"}
在这里我可以直接从响应中提取令牌。
但使用其他方式获取委托权限令牌,例如 OAuth 2.0 隐式授予流程 (https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow),响应始终是我无法解释的 HTML。
所以在这里我想知道是否有解决这种情况的方法。
提前致谢, 阿洛伊斯·凯鲁
无法在工具中使用隐式流获取token,只能在浏览器中运行请求url。因为使用隐式流需要您登录。请注意,在此之前,您必须启用 id token 和 access token.
在浏览器中请求 ID 令牌和访问令牌。
https://login.microsoftonline.com/{tenant id}/oauth2/v2.0/authorize?
client_id={client id}
&response_type=id_token token
&redirect_uri={redirect_uri}
&scope=openid EWS.AccessAsUser.All
&response_mode=fragment
&state=12345
&nonce=678910