我正在尝试使Qt网络授权OAuth2 example for Reddit适用于Azure AD . 我去了https://portal.azure.com/ - > Azure Active Directory - >应用程序注册然后单击"New application registration"并输入:
-
名称:QtNetworkAuthProject
-
应用程序类型:名称
-
重定向URI:http://localhost:1337/
我将生成的应用程序ID复制到应用程序中,然后从Authorization Code Grant Flow获取了URI:
-
授权码请求:https://login.microsoftonline.com/common/oauth2/authorize
-
访问令牌请求:https://login.microsoftonline.com/common/oauth2/token
第一部分似乎有效;网页打开,并要求我验证登录 . 但是令牌请求似乎失败了 . 我的记录显示:
AzureWrapper::grant()+
setModifyParametersFunction(): stage = RequestingAuthorization
AzureWrapper::grant()-
statusChanged(): status = TemporaryCredentialsReceived
setModifyParametersFunction(): stage = RequestingAccessToken
qt.networkauth.oauth2: Unexpected call
qt.networkauth.replyhandler: Error transferring https://login.microsoftonline.com/common/oauth2/token - server replied: Bad Request
我做错了什么?
1 回答
Azure AD需要在授权代码请求或访问令牌中请求您要使用的目标Web API(安全资源)的App ID URI . (见https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-code)
您可以在授权代码请求中添加此额外资源参数,如下所示: