基于WSO2 API Manager中Identity Server的自定义登录页SSO实现咨询
实现WSO2 Identity Server与API Manager的单点登录并自定义登录页
完全可行,通过将WSO2 Identity Server(IS)配置为API Manager(APIM)的统一身份提供者,同时自定义OAuth2授权流程的登录页面,就能实现跨WSO2应用的单点登录,且用自有Web应用的登录页替代默认页面。以下是具体配置步骤:
一、配置Identity Server作为APIM的身份提供者
- 登录IS的Carbon控制台,进入Identity > Identity Providers > Add,新建身份提供者(如命名为
APIM_IDP)。 - 在Basic Information标签页勾选Enable,填写基础信息后保存。
- 切换到Federated Authenticators > OAuth2/OpenID Connect Configuration标签页:
- 勾选Enable,后续需填入APIM服务提供者生成的客户端密钥/密码。
- 设置Authorization Endpoint为
https://<IS_HOST>:<IS_PORT>/oauth2/authorize,Token Endpoint为https://<IS_HOST>:<IS_PORT>/oauth2/token。
- 保存身份提供者配置。
二、配置API Manager信任IS身份提供者
- 登录APIM的Carbon控制台,进入Identity > Service Providers > Add,新建服务提供者(如命名为
IS_SP)。 - 在Basic Information标签页勾选Enable,保存后进入Inbound Authentication Configuration > OAuth/OpenID Connect Configuration,点击Configure:
- 系统会自动生成客户端密钥和密码,记录这两个值,回填到IS的
APIM_IDP配置中。 - 设置Callback URL为
https://<APIM_HOST>:<APIM_PORT>/commonauth。
- 系统会自动生成客户端密钥和密码,记录这两个值,回填到IS的
- 进入Local & Outbound Authentication Configuration标签页,选择Federated Authentication,将默认身份提供者设为IS中创建的
APIM_IDP。 - 对APIM的开发者门户、发布者分别重复上述服务提供者配置流程,确保每个应用都关联到IS身份提供者。
三、替换默认OAuth2登录页为自有Web应用页面
- 自定义IS的OAuth2授权登录页:
- 找到IS部署目录下的
repository/deployment/server/webapps/oauth2/WEB-INF/jsp/authorize.jsp,这是默认授权登录页面文件。 - 修改该页面,移除原有登录表单,添加跳转到自有Web应用登录页的逻辑(可通过URL传递
client_id、redirect_uri等必要参数)。 - 自有Web应用完成用户身份验证后,需回调IS的授权端点,完成OAuth2流程以创建IS会话。
- 找到IS部署目录下的
- 确保自有登录页的身份验证逻辑与IS的用户体系打通,比如通过调用IS的用户验证API完成身份校验。
四、验证单点登录效果
- 先通过自有Web应用登录页完成登录,确保IS中已创建有效会话。
- 直接访问APIM的Carbon控制台、开发者门户或发布者,确认无需重复登录,自动完成身份校验。
- 测试退出功能:在任意一个WSO2应用中退出登录,检查其他应用的会话是否同步失效。
内容的提问来源于stack exchange,提问作者Nadeesha Madhushan
相关产品推荐
相关产品推荐

