React应用从Azure AD迁移至ADFS 2016的配置咨询
React应用迁移至ADFS 2016认证指南
1. React应用端配置调整
由于你之前使用MSAL.js对接Azure AD,迁移到ADFS 2016无需替换库,只需调整MSAL的配置参数,核心改动如下:
- 修改Authority参数:将原Azure AD的authority替换为ADFS服务器地址,格式为
https://<你的ADFS服务器域名>/adfs - 更新Client ID:使用ADFS端注册应用时生成的客户端ID(自定义GUID或字符串)
- 指定Redirect URI:确保与ADFS端配置的回调地址完全一致(包含HTTP/HTTPS、端口、路径)
- 关闭Authority验证:因为ADFS不在MSAL默认的可信Authority列表中,需在配置中设置
validateAuthority: false - 调整Scope配置:ADFS 2016支持
openid、profile等标准OIDC Scope,若需访问后端API,需添加对应API的Scope(如https://你的API域名/user_impersonation)
示例MSAL初始化配置:
const msalConfig = { auth: { clientId: "YOUR_ADFS_CLIENT_ID", authority: "https://adfs.yourcompany.com/adfs", redirectUri: "https://your-react-app.com/auth-callback", validateAuthority: false }, cache: { cacheLocation: "sessionStorage", // 根据需求选择缓存位置 storeAuthStateInCookie: false // SPA场景建议关闭,避免跨域问题 } };
- 适配令牌解析:ADFS生成的ID Token声明格式与Azure AD略有差异,需确保你的应用能正确解析
sub、name等核心声明,若有自定义声明需在ADFS端提前配置。
2. ADFS端配置步骤
ADFS 2016支持应用组(推荐多应用共享认证)和独立应用两种配置方式,以下是核心操作:
方式一:使用应用组(推荐)
- 打开ADFS管理控制台,右键应用组 → 添加应用组
- 输入应用组名称,选择OpenID Connect模板(ADFS 2016需确保已安装Update 3及以上补丁以支持SPA场景)
- 添加服务器应用(客户端):
- 输入自定义客户端ID(如GUID)
- 填写Redirect URI(与React应用配置一致)
- 勾选授权码流(SPA场景推荐配合PKCE,ADFS 2016 Update 3+支持PKCE)
- 关联Web API(若需访问后端资源):
- 添加Web API,设置唯一标识符(如
https://api.yourcompany.com) - 为客户端应用分配API权限(如
user_impersonation)
- 添加Web API,设置唯一标识符(如
- 完成配置后,记录客户端ID和Redirect URI用于React应用配置。
方式二:配置独立应用
- 打开ADFS管理控制台,右键应用程序 → 添加应用程序 → 添加服务器应用程序或Web API
- 输入应用名称,设置客户端ID和Redirect URI
- 配置应用权限(若需访问其他资源)
- 保存配置,记录客户端ID和Redirect URI。
3. 配置疑问解答
如何获取应用组的Redirect URI?
Redirect URI是你自行定义的React应用回调地址,开发环境通常为http://localhost:3000/auth-callback,生产环境需替换为正式域名地址(如https://your-react-app.com/auth-callback)。只需确保React应用MSAL配置中的redirectUri与ADFS端填写的地址完全一致即可。
独立应用如何获取Metadata.xml?
ADFS的联邦元数据是服务器级别的,统一地址为:
https://<你的ADFS服务器域名>/adfs/metadata/federationmetadata.xml
直接访问该URL即可获取完整的元数据XML文件,其中包含所有已注册应用的配置信息。若需验证OIDC端点,可访问OpenID Connect发现文档:
https://<你的ADFS服务器域名>/adfs/.well-known/openid-configuration
内容的提问来源于stack exchange,提问作者Egor Kharlamov
相关产品推荐
相关产品推荐

