2

我有一些我一直在测试 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>

这真的很不一样!据我所知,周边地区看起来几乎一样。

这是在告诉我什么?那个认证失败了?我正在使用的声明身份验证代码取决于“BinarySecurityToken”,所以这就是它失败的原因——它不存在。

我需要调整一些共享点设置吗?联系 MS 支持?任何人?

4

1 回答 1

1

这是使用 KEK(密钥加密密钥)的加密响应。您需要发送者的公钥来解密 EncryptedKey。这使您可以使用该密钥来解密 CipherData,这就是您所想的。

于 2012-03-12T14:23:29.527 回答