是的,无论您是否使用 OAuth,您都可以这样做。
您可以拥有一个位于需要身份验证的服务/应用程序前面的反向代理。如果请求未经身份验证,它将重定向到正在使用的任何身份验证机制。一旦发生这种情况,它会设置一个经过身份验证的请求标头,其中包含用户名,并且请求将传递给配置的任何规则。
我不确定 nginx,但我使用了 mod_authnz_ldap、mod_auth_cas 等 apache 模块来确保通过它的请求经过身份验证。这是我的 apache 配置示例,它使用 CAS 进行身份验证并检查用户 LDAP 组的授权(用户应该属于开发人员组)
# a2enmod
# proxy_http
# auth_cas
# authnz_ldap
<VirtualHost *:80>
ServerName servername
LogLevel debug
CASVersion 2
CASDebug On
CASValidateServer Off
CASLoginURL cas <loginurl>
CASValidateURL <casvalidateurl>
<Location />
AuthType CAS
AuthLDAPUrl ldap
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
Require valid-user
Require ldap-group cn=developers,ou=Groups,dc=company,dc=com
Satisfy All
</Location>
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Oauth 是否适合您,实际上取决于您的用例。从我所见,您并不需要这样做,但我也没有足够的信息。