Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure AD。授权流是否需要从浏览器调用开始以获取桌面应用程序的授权令牌?_Azure_Azure Active Directory_Microsoft Graph Api - Fatal编程技术网

Azure AD。授权流是否需要从浏览器调用开始以获取桌面应用程序的授权令牌?

Azure AD。授权流是否需要从浏览器调用开始以获取桌面应用程序的授权令牌?,azure,azure-active-directory,microsoft-graph-api,Azure,Azure Active Directory,Microsoft Graph Api,有关背景信息,请参见: 因此,授权流程的第一步是使用web浏览器中的URL获取授权令牌,如下所示。对于桌面应用程序,它需要具有以下签名(我将其取消编码以使其更具可读性): 这将在指定的重定向URL处结束(假设我在Azure中的应用程序注册中设置了相同的重定向URL并进行了身份验证。一切正常。响应如下所示: https://login.microsoftonline.com/common/oauth2/nativeclient?code=OAQABAAIAAAA...ggAA 然后,该代码用于使

有关背景信息,请参见:

因此,授权流程的第一步是使用web浏览器中的URL获取授权令牌,如下所示。对于桌面应用程序,它需要具有以下签名(我将其取消编码以使其更具可读性):

这将在指定的重定向URL处结束(假设我在Azure中的应用程序注册中设置了相同的重定向URL并进行了身份验证。一切正常。响应如下所示:

https://login.microsoftonline.com/common/oauth2/nativeclient?code=OAQABAAIAAAA...ggAA
然后,该代码用于使用来自我的VBA(MS access)的POST http请求生成访问令牌和刷新令牌

https://login.microsoftonline.com/{租户Id}/oauth2/v2.0/token
授权类型=授权代码
客户端_id={client id}
范围=https://graph.microsoft.com/.default
重定向\u uri=https://login.microsoftonline.com/common/oauth2/nativeclient
代码=Oaqabaaaaaaa…ggAA
如果是这样的话,我就需要回到第一步,明白吗
通过浏览器窗口复制并粘贴新的授权代码
从web浏览器url,并将其用于第二步

是的,你说得对

有没有一些我完全掌握的编程方法 错过了

是的,资源所有者密码凭据(ROPC)授权流允许应用程序通过直接处理用户的密码来登录用户。需要高度信任和用户暴露,并且只有在无法使用其他更安全的流时,才应使用此流

https://login.microsoftonline.com/common/oauth2/nativeclient?code=OAQABAAIAAAA...ggAA
https://login.microsoftonline.com/{tenant Id}/oauth2/v2.0/token

grant_type=authorization_code
client_id={client id}
scope=https://graph.microsoft.com/.default
redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient
code=OAQABAAIAAAA...ggAA  <== ie the code that was copied from the URL in the Authorization step above