Онлайн-токен Sharepoint пуст в extSTS - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь получить токен в sharepoint по webpart, но он возвращает пустое значение, я сделал код ниже.

/**
* Metodo que gerará o token
*/
getTokenSharepoint() {  
var username="";
var password="";
var siteCollUrl="https://bbtecno.sharepoint.com";
var loginUrl = "https://bbtecno.sharepoint.com/_forms/default.aspx?wa=wsignin1.0";
var token;
var digest;
var requestBody='<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" 
xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis- 
open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
          +'<s:Header>'
          +'    <a:Action 
  s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action>'
          +'    <a:ReplyTo>'
          +'      <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address>'
          +'    </a:ReplyTo>'
          +'    <a:To s:mustUnderstand="1">https://login.microsoftonline.com/extSTS.srf</a:To>'
          +'    <o:Security s:mustUnderstand="1"'
          +'       xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- 
  secext-1.0.xsd">'
          +'      <o:UsernameToken>'
          +'        <o:Username>'+username+'</o:Username>'
          +'        <o:Password>'+password+'</o:Password>'
          +'      </o:UsernameToken>'
          +'    </o:Security>'
          +'  </s:Header>'
          +'  <s:Body>'
          +'    <t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust">'
          +'      <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">'
          +'        <a:EndpointReference>'
          +'          <a:Address>'+siteCollUrl+'</a:Address>'
          +'        </a:EndpointReference>'
          +'      </wsp:AppliesTo>'
          +'      <t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType>'
          +'      <t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType>'
          +'      <t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType>'
          +'    </t:RequestSecurityToken>'
          +'  </s:Body>'
          +'</s:Envelope>';

  const itemHeader: any = {
      'Accept': 'text/html,application/soap+xml;odata=nometadata',
      'Content-type': 'application/xml;odata=verbose',
      'odata-version': '3.0',
      "X-HTTP-Method": "POST", 
      "Access-Control-Allow-Origin": "*"
    };

  const spHttpClientOptions: ISPHttpClientOptions = {

      "body": requestBody,
      "method": 'POST',
      "mode": 'cors'
  };
  alert('estou aqui 1');
  this.context.httpClient.post("https://login.microsoftonline.com/extSTS.srf" , 
  SPHttpClient.configurations.v1, spHttpClientOptions)
  .then(data => {
    var result: any[];
    if(data.status == 200)
    {
      alert("teste" +  JSON.stringify(data.text()));
      return data.text(); //returning the XML text of the response
    }
    else
    {
      return "";
    }
  });
}

Не могли бы вы мне помочь?

Блокировка чтения из разных источников (CORB) - это алгоритм, который может выявлять и блокировать сомнительные загрузки ресурсов из разных источников в веб-браузерах до того, как они попадут в Интернет. стр. CORB снижает риск утечки конфиденциальных данных, защищая их от веб-страниц разных источников. В большинстве браузеров такие данные хранятся вне контекста выполнения ненадежных скриптов. В браузерах с Site Isolation он может полностью исключать такие данные из ненадежных процессов рендеринга, помогая даже против атак по побочным каналам, таких как Spectre.

Спасибо

1 Ответ

0 голосов
/ 25 октября 2019

Я пытаюсь с помощью jquery и не получаю успеха, потому что это создает проблему CORS.

$. Ajax ({'url': 'https://login.microsoftonline.com/extSTS.srf', dataType:' text ', type: 'POST',

      'data': '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-      envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><s:Header><a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action><a:MessageID>urn:uuid:40c1407d-b2a4-4e05-8248-8a92b71102b6</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">https://login.microsoftonline.com/extSTS.srf</a:To><o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><o:UsernameToken u:Id="uuid-69882db9-2d6b-45d3-b016-c2156cb6c01d-1"><o:Username>' + username + '</o:Username><o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">' + password + '</o:Password></o:UsernameToken></o:Security></s:Header><s:Body><t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"><wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"><a:EndpointReference><a:Address>https://bbtecno.sharepoint.com/_forms/default.aspx?wa=wsignin1.0</a:Address></a:EndpointReference></wsp:AppliesTo><t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType><t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType><t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType></t:RequestSecurityToken></s:Body></s:Envelope>', 


      headers: {         
      'Accept': 'text/html,application/soap+xml;odata=nometadata',
      "Access-Control-Allow-Origin":"*"  }, 
      success: function (result) { 
      var xmlDoc = $.parseXML(result); 
      var xml = $(xmlDoc); 
          var binToken = xml.find("wsse\\:BinarySecurityToken").text(); 
          alert(binToken); 
          //CallSPOnline(binToken, tenantName); 
      } 
  }); 

Доступ к XMLHttpRequest в 'https://login.microsoftonline.com/extSTS.srf' из источника' https://bbtecno.sharepoint.com' заблокирован политикой CORS: Запросить поле заголовка access-control-allow-Access-Control-Allow-Headers не допускает возникновения источника в ответе перед полетом.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...