【发布时间】:2018-04-02 22:14:02
【问题描述】:
我有一个 ASPNET Core 2 应用程序,我正在尝试使用 OpenId 对 Azure AD 进行身份验证。我只有在 ASPNET Core 2 模板中选择单一组织身份验证的样板代码,所以没有自定义代码。我关注了文章here.
由于代理,该应用无法从 Azure AD 应用程序获取元数据。如果我只是将其粘贴到浏览器中,相同的 URL 会返回数据。
我得到的错误是:
HttpRequestException:响应状态码不表示成功:407(需要代理身份验证)。
System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() IOException:IDX10804:无法从“https://login.microsoftonline.com/my-tenant-id/.well-known/openid-configuration”检索文档。
Microsoft.IdentityModel.Protocols.HttpDocumentRetriever+d__8.MoveNext()
我有另一个 ASPNET 4.5.2 应用程序,在如下代码中设置代理后,我可以使用与上述相同的 Azure AD 应用程序执行身份验证:
System.Net.HttpWebRequest.DefaultWebProxy = new WebProxy
{
Address = new Uri("http://my-company-proxy:8080"),
Credentials = new NetworkCredential
{
UserName = "proxyusername",
Password = "proxypassword"
}
};
所以本质上我的问题是通过 ASPNET Core 2 中的代理身份验证。
我已经尝试过 Microsoft.AspNetCore.Proxy 包。它几乎坏了,对我不起作用。我还尝试在 machine.config 中添加代理条目(实际上 4.5.2 应用程序不需要这些条目),但这也不起作用。我相信通过公司代理应该是非常简单的,但目前看来还不是这样。
【问题讨论】:
标签: asp.net-core proxy azure-active-directory openid