Мне необходимо программно подключиться к клиентскому серверу SharePoint, который использует OKTA для аутентификации. Я видел этот пост, который выглядел многообещающим, но не мог получить обратно действительный файл cookie сеанса от OKTA.
Я могу успешно вызвать конечную точку / api / v1 / authn и получить обратно токен сеанса, но когда я оборачиваюсь и вызываю / api / v1 / sessions? AdditionalFields = cookieToken с этим токеном сеанса, я всегда получал 403 - Запрещено, с следующий json:
{
"errorCode": "E0000005",
"errorSummary": "Invalid Session",
"errorLink": "E0000005",
"errorId": "oaew0udr2ElRfCnZvBFt075SA",
"errorCauses": []
}
Предполагая, что я могу решить эту проблему, я не уверен, какой URL-адрес следует вызвать с помощью cookieToken. Является ли URL-адрес конечной точкой OKTA, которая будет перенаправлять на SharePoint, или это конечная точка SharePoint, которая установит сеанс с файлом cookie?
Обновление: я могу вызвать эту конечную точку okta -> / api / v1 / sessions? additionalFields = cookieToken с моими учетными данными пользователя как json
{
"username": "[email protected]",
"password": "P@ssw0rd"
}
И я могу получить одноразовый токен cookie, который можно использовать с этой ссылкой для запуска сеанса SAML в браузере:
https://[mydomain].okta.com/login/sessionCookieRedirect?redirectUrl=[sharepoint site url]&token=[cookie token]
Это работает в браузере, пользователь автоматически аутентифицируется и попадает в SharePoint. Однако кажется, что эта «настройка» сеанса, по крайней мере, частично достигается с помощью javascript, поскольку выполнение той же ссылки в программном HTTP-клиенте (таком как HTTP-клиент Apache) не работает. HTTP-клиент отправляется через несколько перенаправлений и попадает на сайт SharePoint, но пользователь не проходит проверку подлинности. Ответ 403 - Запрещено со следующими заголовками:
403 - ЗАПРЕЩЕНО
Content-Type -> text/plain; charset=utf-8
Server -> Microsoft-IIS/8.5
X-SharePointHealthScore -> 0
SPRequestGuid -> 0ecd7b9d-c346-9081-cac4-43e41f3b159a
request-id -> 0ecd7b9d-c346-9081-cac4-43e41f3b159a
X-Forms_Based_Auth_Required -> https://[sharepoint site]/_login/autosignin.aspx?ReturnUrl=/_layouts/15/error.aspx
X-Forms_Based_Auth_Return_Url -> https://[sharepoint site]/_layouts/15/error.aspx
X-MSDAVEXT_Error -> 917656; Access denied. Before opening files in this location, you must first browse to the web site and select the option to login automatically.
X-Powered-By -> ASP.NET
MicrosoftSharePointTeamServices -> 15.0.0.4709
X-Content-Type-Options -> nosniff
X-MS-InvokeApp -> 1; RequireReadOnly
Date -> Fri, 13 May 2016 15:02:38 GMT
Content-Length -> 13
Я начинаю сомневаться в том, что это безнадежное дело, ведь OKTA или SharePoint не поддерживают программную аутентификацию через SAML.