我所处的环境是一个嵌入式设备,它使用HTTPS客户端代表用户请求访问令牌(应用程序所需的授权权限)。
我目前正在使用OAuth 2.0 ROPC (https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc)来获取令牌,一切都很好。
但是,由于这种身份验证是不推荐的,所以我希望更改为一种更安全的解决方案,该解决方案适用于混合身份联合方案。
我看到还有很多其他的解决方案,但是我找不到不需要解释HTML/JS响应的解决方案。
这里有一个卷曲的例子来解释我的观点:
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"}
在这里,我可以直接从响应中提取令牌。
但是,使用其他获得委托权限令牌的方法,如HTML2.0隐式格兰特流( OAuth 2.0隐式格兰特流,https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow),响应总是一个我无法解释的HTML。
因此,我想知道是否有解决这一情况的办法。
预先感谢,Alo s KYROU
发布于 2021-05-04 07:24:01
不能使用隐式流在工具中获取令牌,只能在浏览器中运行请求url。因为使用隐式流需要您登录。请注意,在此之前,必须启用id令牌和访问令牌。

在浏览器中请求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=678910https://stackoverflow.com/questions/67334240
复制相似问题