IdentityServer4配置OpenId连接提供程序以使用代理服务器

时间:2018-02-15 11:05:19

标签: identityserver4

我正在使用IdentityServer4为我的新服务提供身份验证和令牌生成,并且我已经成功地完成了所有工作。我已将我的服务器配置为使用Azure AD作为oidc提供程序,该程序在我的登台环境中工作正常,因为Azure AD的IP地址是在防火墙中配置的。今天,IP地址似乎已更改,因为我的代码无法调用Azure AD来获取openid众所周知的配置(https://login.microsoftonline.com/[mytenantid]/.well-known/openid-configuration)。

我使用以下代码配置提供程序:

services.AddAuthentication()
            .AddOpenIdConnect("oidc", "AzureAD", options =>
            {
                options.ClientId = Configuration["adclientid"];
                options.ClientSecret = Configuration["adsecret"];
                options.Authority = $"{Configuration["addomain"]}{Configuration["adtenantid"]}";
                options.UseTokenLifetime = true;
                options.CallbackPath = "/signin-oidc";
                options.RequireHttpsMetadata = false;
            })
            .AddCookie();

我们公司确实有一个可用的代理服务器,它可以让我的代码拨打电话,而不会在IP地址发生变化时受到影响。如何修改我的代码以使其使用代理?

1 个答案:

答案 0 :(得分:2)

尝试添加BackchannelHttpHandler:

.AddOpenIdConnect("aad", "Azure AD", options =>
                {
                    options.BackchannelHttpHandler = new HttpClientHandler { Proxy = Proxy};
                    ....