应用注册清单的samlMetadataUrl属性能否使用静态XML元数据?
关于Azure AD B2C应用注册清单使用静态XML元数据的问题
目前Azure AD B2C的应用注册清单中,samlMetadataUrl属性仅支持指向元数据文件的公开URL,无法直接嵌入静态XML元数据内容。不过针对你“单SAML策略适配多B2C SAML客户端”的需求,可以通过以下几种方案实现:
复用自定义策略,通过应用注册配置覆盖参数
不需要依赖元数据URL,直接在自定义策略中引用应用注册自身的SAML配置属性,替代硬编码的策略参数。比如:- 实体ID可引用
applicationObject.samlSingleSignOnSettings.entityId - 断言消费者服务(ACS) URL可通过
GetSingleItemFromStringCollection(applicationObject.samlSingleSignOnSettings.assertionConsumerUrls, 0)获取
这样每个应用注册可以独立配置自己的SAML参数,共用同一套自定义策略,实现清单配置覆盖策略的效果。
- 实体ID可引用
托管静态元数据文件到公开存储
将每个客户端的静态XML元数据上传到可公开访问的存储(如Azure Blob Storage,设置容器为匿名读取权限),然后在对应应用注册清单的samlMetadataUrl中填写该文件的URL。这种方式依然能让单策略适配多客户端,因为策略会从清单指定的URL拉取对应客户端的元数据,自动覆盖策略内的默认配置。自定义REST API动态返回元数据
若需要更灵活的控制,可以开发一个简单的REST API,根据客户端ID返回对应的静态XML元数据。然后在自定义策略中调用该API,解析响应内容来配置SAML参数。不过这种方式需要额外的API开发和维护成本。
需要注意的是,确保自定义策略中的SAML技术配置文件没有硬编码实体ID、ACS URL等参数,而是采用动态引用的方式,这样才能让应用注册的配置生效。
内容的提问来源于stack exchange,提问作者Anton Putau
相关产品推荐
相关产品推荐

