Не удается пройти аутентификацию в Skype для бизнеса Online UCWA

У меня проблемы с аутентификацией на S4BO. Я зарегистрировал свое приложение (на портале Azure), и оно работает с демо-версией webSDK по адресу https://ucwa.skype.com/websdk. Процесс, который я выполняю, следующий:

  1. Я делаю перенаправление ссылки OAuth со следующим кодом:

    https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&resource=https://webdir.online.lync.com&redirect_uri=http://myurl.dev/skype
    
  2. Получите код авторизации, который был возвращен, и используйте его для генерации токена доступа:

    POST https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=db01d1f5-f2a3-4d82-b4bc-6b3b4071d7df&resource=https://webdir.online.lync.com&redirect_uri=http://acme.intranet.dev/skype
    
         grant_type=authorization_code
         code=$thecodehere
         client_id=$clientidhere
         client_secret=$clientsecrethere
         redirect_uri=$sameuriasbefore
    
  3. После этого у меня есть токен доступа. Теперь мне нужен мой URL пользователя. Так что я делаю автообнаружение

    GET https://lyncdiscover.mydomain.onmicrosoft.com
    

и я получаю результат примерно так:

{
"_links": {
    "self": {
      "href": "https://webdir1e.online.lync.com/Autodiscover/AutodiscoverService.svc/root?originalDomain=mydomain.onmicrosoft.com"
    },
    "user": {
      "href": "https://webdir1e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=mydomain.onmicrosoft.com"
    },
    "xframe": {
      "href": "https://webdir1e.online.lync.com/Autodiscover/XFrame/XFrame.html"
    }
  }
}
  1. Я пытаюсь войти в систему по адресу пользователя:

    GET https://webdir1e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=mydomain.onmicrosoft.com
    HEADERS:
    Authorization: Bearer + theAccessTokenFromAbove
    Referer: https://webdir1e.online.lync.com/Autodiscover/XFrame/XFrame.html
    

И после этого я получаю 403 Unatorized. Куда я иду не так?

1 ответ

  1. Получить код авторизации, который был возвращен, и использовать его для генерации токена доступа.

На этом шаге в качестве ресурса нужно указать resource=https://webdir1e.online.lync.com (примечание 1e), чтобы получить доступ к этому конкретному концентратору.

На самом деле вам придется проходить аутентификацию на каждом новом сервере, начиная с этой точки, то есть на всем webdirXX, а затем на webpoolXXXXX.

Я написал огромную интерактивную статью, в которой подробно описывается поток запросов (после того, как я потратил неделю на то, чтобы проанализировать, как это делает outlook.com, поскольку документация MSDN - по крайней мере, на момент написания этой статьи - неполная и неправильная), возможно, она может быть полезным:

Если вы сконфигурируете URL перенаправления приложения на URL статьи (конечно, временно), вы можете даже протестировать запросы прямо оттуда.

Кроме того, на Github можно найти код автообнаружения и проверки подлинности "одним куском" (с демонстрационной версией):

Другие вопросы по тегам