【问题标题】:Get Azure access token through Web Proxy通过 Web 代理获取 Azure 访问令牌
【发布时间】:2019-11-29 15:08:15
【问题描述】:

我们正在使用 Microsoft.IdentityModel.Clients.ActiveDirectory API 从 Azure AD 获取访问令牌。

我们要求 API 调用应该通过网络代理。我们找不到任何相关的示例代码。

是否有任何选项可以实现此要求。请找到使用的代码sn-p。

string accessToken = string.Empty;
 AuthenticationContext authContext = new AuthenticationContext(string.Format(authority, subscription.TentantId));            
            var clientCredential = new ClientCredential(subscription.ClientId, subscription.SecertKey);
            var result = authContext.AcquireToken(resource, clientCredential);
            accessToken = result.AccessToken;
            return accessToken;

【问题讨论】:

    标签: azure azure-active-directory


    【解决方案1】:

    恐怕这个库不支持 IWebProxy 对象的设置 - 我找不到方法。但是似乎有两种解决方案:

    1) 您可以设置全局代理,但这是推荐的做法。见下文:

    WebRequest.DefaultWebProxy = new WebProxy("10.0.0.1:1234");
    

    2) 您可以通过 REST api 调用请求令牌并手动为您的 HttpRequest 设置代理

    POST "https://login.microsoftonline.com/{tenantName}/oauth2/token"
    

    这在某些情况下可能会很棘手(jwt 客户端断言类型等)

    看这个例子:https://github.com/mattleib/o365api-as-apponly-webapp/blob/master/AccessMailboxAsApp/AccessMailboxAsApp/Controllers/HomeController.cs#L558

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 2013-10-23
      • 1970-01-01
      相关资源
      最近更新 更多