API REST Sharepoint - Область не настроена для текущей области имен службы. Ошибка 50169 - PullRequest
0 голосов
/ 28 июня 2018

Я получил эту ошибку при попытке получить токен аутентификации из API Sharepoint REST. Мой SP основан на облаке, и я использую Postman для тестирования запросов, так как предыдущая попытка аналогичным образом зашла в тупик, когда много проблем с поиском и устранением неисправностей с Msoft привести некуда .. В любом случае, у меня есть следующая ошибка, и мне было интересно, если любой может помочь мне понять, что это такое или как я могу устранить эту проблему.

error_description: "AADSTS50169: The realm 'realm' is not a configured realm of the current service namespace"
error_codes : 50169

Я следовал этому уроку

Спасибо!

Редактировать: я прошел и начал заново, кажется, что эта работа работает, я думаю, что, возможно, пропустил шаг (я думаю, я не правильно настроил разрешения приложения с xml при создании приложения)

1 Ответ

0 голосов
/ 28 июня 2018

Чтобы выполнить авторизацию SharePoint в Интернете и использовать REST API через Postman, вот решение для вашей справки:

Первое: получить токен безопасности

Доступ к [https://login.microsoftonline.com/extSTS.srf] с помощью метода Http Post. Содержание http-запроса выглядит следующим образом.

<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>[endpoint]</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>  

Демонстрационный скриншот в Почтальоне:

enter image description here

И содержимое ответа будет содержать токен безопасности, как показано ниже, мы можем использовать этот токен безопасности для получения токена доступа SharePoint.

enter image description here

Второй: получить токен доступа

Здесь я покажу, как получить токен доступа SharePoint в Интернете с помощью токена безопасности и SharePoint Rest API.

Доступ к [https://yourdomain.sharepoint.com/_forms/default.aspx?wa=wsignin1.0] через http Post метод. Содержание запроса - это маркер безопасности, который мы получили выше, как показано ниже. enter image description here

И ответ, как показано ниже:

enter image description here

Мы видим, что в заголовке ответа есть два файла cookie, rtFa и FedAuth, и эти два файла cookie необходимо добавить в запрос в следующем запросе.

Третье: получить дайджест запроса

Доступ к [https://yourdomain.sharepoint.com/_api/contextinfo] через http Post методом с этими двумя куки, которые мы получили выше.

enter image description here

И ответ, как показано ниже:

enter image description here

Это последний токен, который мы хотим!

Затем мы можем использовать REST API SharePoint, нам нужно только добавить этот токен и два предыдущих файла cookie, как показано на следующем рисунке.

enter image description here

...