如何通过C#代码从Azure AD B2C获取访问令牌,报错AADB2C90108如何解决
Azure Active Directory B2C用户密码认证场景问题修复方案
错误根因
你碰到的AADB2C90108错误,本质是当前调用的B2C用户流不支持ROPC(资源所有者密码凭证)认证流。默认的标准登录用户流没有配置ROPC流要求的CpimIssuerTechnicalProfileReferenceId参数,所以在执行密码授权请求时会抛出编排步骤缺失配置的异常。
不修改现有默认策略的修复方案
不需要改动你现有的任何默认策略配置,只需要做两处调整即可:
- 在Azure AD B2C门户中单独新建一个ROPC类型的用户流,该用户流独立于你现有运行的策略,不会对现有业务逻辑产生任何影响
- 将你代码中
b2cAuthority变量里的<userFlow>参数替换为新建的ROPC用户流名称,其余代码逻辑保持不变即可正常获取令牌
注意事项
- ROPC流会直接传输用户账号密码,仅适用于完全受信任的客户端场景,不推荐在面向普通用户的公开客户端(网页、移动端应用)中使用该认证方式
- 如果你完全不愿意新增任何用户流配置,没有办法仅通过修改客户端代码绕过该错误,该配置是B2C服务端的强制要求
内容的提问来源于stack exchange,提问作者Vladyslav Furdak
相关产品推荐
相关产品推荐

