ReactJS+NodeJS自定义域名非画廊应用集成Azure SAML SSO咨询
Azure AD 非画廊应用SAML SSO集成实操(适配React+Node+AWS部署场景)
一、创建Azure AD非画廊类企业应用
- 登录Azure Portal进入「Azure Active Directory」服务,左侧导航选择「企业应用」
- 点击顶部「新建应用」,选择搜索框下方的「创建你自己的应用」
- 弹出框输入你的应用名称,勾选「集成未在库中找到的任何其他应用」(即非画廊应用选项),点击「创建」等待应用生成
- 应用生成后进入管理页,左侧选择「用户和组」,分配允许使用SSO登录的用户/用户组,未分配的用户默认无法发起SAML认证
二、SAML元数据与证书配置
2.1 Azure侧配置
- 回到企业应用管理页,左侧「管理」栏选择「单一登录」,登录方式选择「SAML」
- 进入SAML配置页后,首先编辑「基本SAML配置」模块,填写以下参数:
- 标识符(实体ID):填写你AWS上绑定的自定义域名(如
https://your-custom-domain.com),也可以自定义全局唯一值,需和后续后端配置的实体ID保持一致 - 回复URL(ACS地址):填写Node后端的SAML断言接收接口地址,必须为HTTPS协议,示例值
https://your-custom-domain.com/api/saml/acs - 登录URL:填写React前端的登录入口地址,示例值
https://your-custom-domain.com/login - 中继状态可按需填写默认登录后的跳转落地页地址
- 标识符(实体ID):填写你AWS上绑定的自定义域名(如
- 保存基本配置后,下拉到「SAML证书」模块:
- 点击「添加证书」→「新建签名证书」,签名算法选择默认的SHA-256,保存后激活证书
- 可直接下载「联合元数据XML」文件,也可以单独复制「应用联合元数据URL」、「登录URL」、「Azure AD标识符」三个核心参数,后续后端配置需要用到
- 下载Base64格式的签名证书,存储到Node后端的安全配置项或者AWS Secrets Manager中,禁止硬编码到业务代码
2.2 业务侧(React+Node+AWS)适配
- Node后端配置:
- 可选用
saml2-js或passport-saml第三方库处理SAML协议逻辑,将上述从Azure获取的元数据、证书、实体ID、ACS地址填入对应配置项 - 新增
/api/saml/login接口,触发SAML认证跳转逻辑,供前端SSO按钮调用 - 新增
/api/saml/acs接口,接收Azure返回的SAML断言,校验签名、签发方、有效期无误后,生成业务侧的session或JWT凭证,跳转回前端落地页
- 可选用
- React前端配置:
- 登录页新增「Azure SSO登录」按钮,点击后发起对后端
/api/saml/login接口的请求,跟随重定向走SAML认证流程 - 认证完成跳转回前端后,获取后端返回的业务凭证存入本地,后续业务接口请求携带即可
- 登录页新增「Azure SSO登录」按钮,点击后发起对后端
- AWS侧注意事项:
- 如果你用了CloudFront、ALB、WAF做流量入口,确保
/api/saml/acs接口的POST请求不会被安全规则拦截,SAML断言默认通过POST请求发送 - 所有敏感配置(证书、元数据密钥等)建议存储在AWS Secrets Manager或Systems Manager Parameter Store中,不要提交到代码仓库
- 如果你用了CloudFront、ALB、WAF做流量入口,确保
内容的提问来源于stack exchange,提问作者Ranjit
相关产品推荐
相关产品推荐

