如何通过SAML IDP实现移动应用身份认证?Azure AD/B2C选型咨询
选型建议与实践方案
一、Azure AD vs Azure AD B2C 选型判断
- 选Azure AD:如果你的移动应用面向内部员工/企业用户,Azure AD的企业身份管理能力更适配,集成企业内部权限体系更顺畅,适合企业级场景。
- 选Azure AD B2C:如果移动应用面向外部客户/消费者,B2C支持高度自定义的用户登录旅程、多租户身份集成,更适合面向C端的灵活身份场景。
两者都满足你的核心需求:支持添加SAML外部身份提供商、接收SAML令牌后通过OIDC与移动应用交互,差异主要在用户群体和场景适配性。
二、具体实践步骤
1. 配置SAML外部身份提供商
在Azure服务中添加自研SAML IDP:
- 上传自研IDP的元数据文件(或手动输入实体ID、SSO登录端点、签名证书)
- 设置Azure侧的回调URL(Azure AD为
https://login.microsoftonline.com/<tenant-id>/saml2;Azure AD B2C为https://<your-b2c-tenant>.b2clogin.com/<your-b2c-tenant>.onmicrosoft.com/<policy-name>/samlp/sso/assertionconsumer)
2. 注册移动应用的OIDC客户端
- 创建应用注册,设置移动应用的重定向URI(如
msauth://<package-name>/<signature-hash>) - 启用授权码流(带PKCE):移动应用无法安全存储客户端密钥,PKCE是必须的安全配置
- 配置所需的OIDC权限(如
openid、profile)
3. 配置登录流程
- Azure AD:在企业应用或应用注册的登录设置中,将默认登录身份提供商设为你添加的SAML IDP,用户发起登录时会直接跳转至自研IDP验证。
- Azure AD B2C:创建自定义用户旅程,添加“SAML身份提供商”作为登录步骤,确保流程中先引导用户到自研IDP完成SAML认证,再返回OIDC授权码给移动应用。
4. 验证端到端流程
- 移动应用发起OIDC授权请求,指向Azure的授权端点
- Azure重定向用户到自研SAML IDP进行登录
- 自研IDP验证用户身份后,返回SAML断言给Azure
- Azure验证SAML断言有效性,建立会话后返回OIDC授权码到移动应用的回调URL
- 移动应用用授权码换取ID令牌和访问令牌,完成登录
关键注意事项
- 确保SAML断言中的用户属性(如邮箱、用户ID)能映射到Azure的用户属性,这样OIDC令牌中才能包含正确的用户声明
- 移动应用必须实现PKCE流程,避免授权码被劫持的风险
- 测试SAML断言的签名验证,确保Azure能正确解析自研IDP发出的令牌
内容的提问来源于stack exchange,提问作者M-B
相关产品推荐
相关产品推荐

