我有一些我在测试O365网站上使用的工作代码 - 它运行得很好。我可以使用sharepoint客户端对象模型进行身份验证和提取数据。
在另一个从BPOS迁移的网站上,基于声明的身份验证失败。具体来说,在工作站点的SAML令牌中,结构如下所示:
<wst:RequestedSecurityToken>
<wsse:BinarySecurityToken Id="Compact0">bunch of token stuff here</wsse:BinarySecurityToken>
</wst:RequestedSecurityToken>
在不起作用的网站上,此部分如下所示:
<wst:RequestedSecurityToken>
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="Assertion0" Type="http://www.w3.org/2001/04/xmlenc#Element">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"></EncryptionMethod>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey>
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"></EncryptionMethod>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509SKI>stuff in here</ds:X509SKI>
</ds:X509Data>
<ds:KeyName>microsoftonline.com</ds:KeyName>
</ds:KeyInfo>
<CipherData>
<CipherValue>lots of stuff in here</CipherValue>
</CipherData>
</EncryptedKey>
</ds:KeyInfo>
<CipherData>
<CipherValue>Loads more stuff in here</CipherValue>
</CipherData>
</EncryptedData>
</wst:RequestedSecurityToken>
这真的与众不同!就我所知,周边地区看起来几乎一样。
这告诉我什么?认证失败了吗?我使用的声明auth代码依赖于'BinarySecurityToken',所以这就是它失败的原因 - 它不在那里。
我需要调整一些sharepoint设置吗?联系MS支持?任何人吗?
答案 0 :(得分:1)
它是使用KEK(密钥加密密钥)的加密响应。您需要发件人的公钥来解密EncryptedKey。这让你可以使用该密钥来解密CipherData,这是我想到的。