Не удается пройти аутентификацию в Skype для бизнеса Online UCWA
У меня проблемы с аутентификацией на S4BO. Я зарегистрировал свое приложение (на портале Azure), и оно работает с демо-версией webSDK по адресу https://ucwa.skype.com/websdk. Процесс, который я выполняю, следующий:
Я делаю перенаправление ссылки 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
Получите код авторизации, который был возвращен, и используйте его для генерации токена доступа:
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
После этого у меня есть токен доступа. Теперь мне нужен мой 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"
}
}
}
Я пытаюсь войти в систему по адресу пользователя:
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 ответ
- Получить код авторизации, который был возвращен, и использовать его для генерации токена доступа.
На этом шаге в качестве ресурса нужно указать resource=https://webdir1e.online.lync.com
(примечание 1e), чтобы получить доступ к этому конкретному концентратору.
На самом деле вам придется проходить аутентификацию на каждом новом сервере, начиная с этой точки, то есть на всем webdirXX, а затем на webpoolXXXXX.
Я написал огромную интерактивную статью, в которой подробно описывается поток запросов (после того, как я потратил неделю на то, чтобы проанализировать, как это делает outlook.com, поскольку документация MSDN - по крайней мере, на момент написания этой статьи - неполная и неправильная), возможно, она может быть полезным:
Если вы сконфигурируете URL перенаправления приложения на URL статьи (конечно, временно), вы можете даже протестировать запросы прямо оттуда.
Кроме того, на Github можно найти код автообнаружения и проверки подлинности "одним куском" (с демонстрационной версией):