我正在尝试将 SaaS 应用程序与自治(未与任何内容联合)Azure Active Directory 集成以实现 SSO。SaaS 应用程序(服务提供商)符合 SAML2 标准(SP 发起),因此这应该可行。但是,在 SAMLRequest 中,SP 指定
<samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
当 AAD 应答时,NameID 的格式为urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
。
这很奇怪:微软,段落“AuthnRequest 中的 NameIDPolicy 元素”列出了“未指定”作为可能的请求格式……
由于 SaaS 应用程序需要“未指定”而不是“持久”,因此失败。
是否有人知道使用 Azure AD 获取“未指定”格式的方法?
答案1
在此文档他们有一个警告:
Azure AD 当前支持 SAML 2.0 的以下 NameID 格式 URI:urn:oasis:names:tc:SAML:2.0:nameid-format:persistent。
这很模糊,但我认为这意味着他们支持的全部内容都是这样的。
答案2
我们刚刚做了一些调查,了解到如果对 NameID 进行一些字符串操作,那么 AAD 会将格式更改为“未指定”。