Формат SAML Token? - PullRequest
       19

Формат SAML Token?

2 голосов
/ 09 марта 2012

У меня есть некоторый рабочий код, который я использовал на тестовом сайте 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, поэтому он не работает - его нет.

Есть ли какие-то настройки sharepoint, которые мне нужно настроить?Обратиться в службу поддержки MS?Кто-нибудь? * * 1013

1 Ответ

1 голос
/ 12 марта 2012

Это зашифрованный ответ с использованием KEK (Key Encryption Key).Вам понадобится открытый ключ отправителя для расшифровки EncryptedKey.Это позволяет вам использовать этот ключ для расшифровки CipherData, а это то, что вам нужно, как я думаю.

...