我的服务提供者用一个NameIDPolicy标签发出一个SAML 2.0 AuthRequest,如下所示:
<samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
这会导致ADFS 2.0正确发出一个SAML响应,其中包含一个由类似于此处find的规则创build的encryption的NameID标记
<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"> MyeHAMeGLojBt7fcc2DQtntXXFka0kybkR42ZTitTUs=</NameID>
然而,迄今为止这么好,我的服务提供者似乎并不了解encryption的NameID声明,并且期望它是未encryption的,同时将名称格式定义为transient
根据本文档 ,ADFS2.0将临时或持久NameID格式的请求视为隐私scheme(因此也称为encryption)
所以我的问题是:有没有什么办法让ADFS 2.0生成Format = transient的NameID声明,以及像这样的未encryption的NameID:
<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">Joe</NameID>
我们有一个客户,连接到我们的Web应用程序的问题。 我们想禁用encryption来帮助debugging我们正在接收的内容。 以下是他们用来禁用ADFS 2.0服务器上的encryption的步骤:
然后,在Windows PowerShell命令提示符处,键入以下内容:
set-ADFSRelyingPartyTrust –TargetName “target” –EncryptClaims $False
我解决这个问题的方式是这样的:
UPN转换为传出声明types: Name ID然后从“传出名称ID格式”下拉列表中selecttransient名称标识格式 这导致AD以所需的格式发送NameID:
<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">Joe</NameID>
(如果有人有更好的解决scheme,我会留下这个问题'没有回答'一段时间。