尝试检索Azure授权码

时间:2017-03-22 12:23:07

标签: azure cors azure-billing-api

我正在尝试检索Azure授权代码,以便我可以提取访问令牌以调用Azure Billing API(RateCard和Usage API)。

我正在遵循Microsoft here 解释的oauth协议。我的实现如下所示。请注意,params中的redirect_uri是Azure AD在进行身份验证后将重定向回的uri。但是当我尝试执行此操作时,我得到以下cors错误:“XMLHttpRequest无法加载”https://login.microsoftonline.com/imonlineservices.com/oauth2/authorize?res...ure.com&redirect_uri=http%3a%2f%2flocalhost%3a13333%2f&response_mode=query“。请求的资源上没有'Access-Control-Allow-Origin'标头。来源'{{3}因此不允许访问。“如图2所示。

据我了解,这告诉我“login.microsoftonline.com ....”上没有“Access-Control-Allow-Origin”标题,导致我的请求因同源而失败政策。

现在虽然我理解了这个错误,但我仍然对上面提到的http://localhost:13333给出的解释感到困惑,这应该有用吗?我不确定我到底哪里错了。

负责尝试检索身份验证代码的方法:

  public void GetAuthorizationCode(string ClientId)
    {
        var @params = new NameValueCollection
        {
            {"response_type", "code"},

            { "client_id", ClientId},

            {"resource", "https://management.azure.com"},

            { "redirect_uri", "http://localhost:13333/"}
        };

        var queryString = System.Web.HttpUtility.ParseQueryString(string.Empty);
        queryString.Add(@params);

        Response.Redirect(String.Format("https://login.windows.net/common/oauth2/authorize?{0}", queryString));
    }

更新

将重定向请求直接粘贴到浏览器中时,这个...“the link?{0}”,queryString“.. login.windows.net将响应(代码)作为查询返回给我的应用程序string参数如下面的图1所示,它向我表明所有必要的Azure配置都已正确完成,而错误只取决于我是如何尝试检索此代码的。

图1:使用查询字符串中的代码成功从azure重定向到我的应用程序。 https://login.windows.net/common/oauth2/authorize

0 个答案:

没有答案