CAS

CAS整体流程

cas协议

OAUTH2

OAUTH2整体流程

前置条件:在SSO上申请一个应用:需要填写如下信息:

  • 应用的URL
  • 应用的回调地址 redirect_uri(需要校验)
  • 应用名称

申请成功后,会提供一个client_id和client_secret,在后续获取token时使用

TIPS

Spring Security 中,配置使用OAuth2后核心的处理类如下:

org.springframework.security.oauth2.client.authentication.OAuth2LoginAuthenticationProvider#authenticate

Java Nginx转发需要的相关配置:

server.use-forward-headers=true

Flask Nginx负载均衡需要指定中间件

from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app, settings.PROXIES_COUNT)

nginx配置了https后

location /path {
    proxy_pass       http://localhost:8000;
    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-Proto $scheme; # 如果出问题后可以手动指定为https
    proxy_set_header X-Real-HOST $host;
}