【问题标题】:Graph API - Create Application with authorization_code tokenGraph API - 使用 authorization_code 令牌创建应用程序
【发布时间】:2020-10-10 09:45:04
【问题描述】:
我正在尝试使用 Graph API 在 Azure AD 中注册一个应用程序,并使用通过授权代码授权类型获得的 oauth 令牌。我可以使用客户端凭据来做到这一点,但不能使用授权代码。使用后者,我可以列出应用程序,但不能创建它们。
这是我在应用程序中设置的权限:
这是我在邮递员中设置的获取令牌的内容:
我得到令牌就好了,我可以列出应用程序,但是当我尝试通过端点 'POST https://graph.microsoft.com/v1.0/applications' 创建一个新令牌时,我得到以下响应:
有人知道为什么会这样吗?谢谢!
【问题讨论】:
标签:
azure-active-directory
microsoft-graph-api
【解决方案1】:
根据您提供的最后一个屏幕截图,在进行授权代码流时,似乎进程停止在登录页面(响应正文是登录页面的html)。
我在我身边(也在邮递员中)测试它,但它工作正常,下面是我在邮递员中的配置供您参考:
虽然我在测试中没有重现你的问题,但我可以提供一些关于授权码后端请求的信息,以了解你的邮递员的响应是什么意思。
当我们做授权代码流(不是在邮递员中)来获取访问令牌时,有两个步骤。首先,我们需要在您的浏览器中请求 url https://login.microsoftonline.com/{tenantId or commone}/oauth2/authorize?resource=https://graph.microsoft.com&client_id={clientId}&response_type=code&redirect_uri=https://hurytest&response_mode=query,如下图所示。
我们可以发现上面截图中红框的内容和你在postman中得到的回复是一样的。所以我认为这个过程在这里停止(这是授权代码流程的第一步)。
第二步,我们需要在登录页面输入用户名和密码。它将重定向到另一个页面,如下图所示。
复制上面截图中code=之后的代码,然后使用下面请求中的代码获取访问令牌。
总之,我没有在我的邮递员中重现你的问题。但是您邮递员中的后端请求可能会在我上面提到的授权代码流的第一步(登录页面)中停止。所以请检查您是否在邮递员中配置正确。如果还是不行,你可以通过我提供的两个步骤来做授权码流程来获取访问令牌。