我有一个.NET Core 2.0网站,在Linux上运行,侦听端口5000,位于NGinX反向代理后面,该代理侦听端口80和442。NGinX配置为将HTTP通信重定向到HTTPS,并处理所有通过HTTPS进行的通信。NGinx反向代理和Asp.Net Core应用位于共享网络中各自的docker容器中。
此设置当前正在按所述方式工作。
但是,我现在想根据我们的Azure Active Directory对用户进行身份验证。我遇到了一个问题,不知道从这里去哪里。
首先,让我向您展示如何配置其中的大部分功能,然后再解释我的错误。
NGinx(nginx.conf)
worker_processes 2;
events { worker_connections 1024; }
http {
sendfile on;
upstream docker-dotnet {
server mycomp_prod:5000;
}
server {
listen 80;
server_name sales.mycompany.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name sales.mycompany.com;
ssl_certificate /etc/nginx/ssl/combined.crt;
ssl_certificate_key /etc/nginx/ssl/salesmycompany.key;
location / {
proxy_pass http://docker-dotnet;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Dotnet:Startup.cs ConfigureServices()
services.AddAuthentication(sharedOptions =>
{
sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
sharedOptions.DefaultChallengeScheme = …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我集成Identity server 3了openid-connect. 在我们的生产服务器上,我们的网站位于导致问题的反向代理后面;
当用户登录并被身份服务器重定向回时,我们的应用程序希望将用户重定向到他的原始位置(带有 的页面AuthorizeAttribute)。这里的问题是用户被重定向到隐藏的 url 而不是reverse proxy.
如何将用户重定向到公共网址?