2016-05-03 11 views
0

Я в настоящее время наткнулся на разочарование Forbidden 403 error при выполнении простого GET WebRequest для Okta. Я добавил URL-адрес приложения в Okta Admin> Security> API как CORS. Ниже мой кодHttpWebRequest to Okta приводит к Forbidden 403

string requestURL = "https://myokta.oktapreview.com/api/v1/users/me"; 
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestURL); 
request.Method = "GET"; 
request.Timeout = 120000; 
request.ContentType = "application/json"; 
WebResponse response = request.GetResponse(); // exception Forbidden 403 

я мог копировать вставить requestURL в интернет-браузере и получить ответ JSon без каких-либо проблем. И если у меня нет сеанса, он также возвращает код ошибки E0000005 - Недействительный сеанс.

Если я не могу сделать это через WebRequest, любое предложение о том, какой клиент использовать в okta.core.dll?

Пожалуйста, помогите мне, и любая помощь будет очень признательна. Спасибо ...

+0

Могу ли я спросить, что ваш вариант использования здесь? Похоже, вы пытаетесь сделать этот вызов из кода сервера вашего веб-приложения. Однако эта конкретная операция/api/v1/users/me предназначена только для использования в канале браузера (например, для вызова JavaScript) и должна использовать cookie сеанса, привязанный к вашему домену Okta (обычно устанавливается в ваш сеанс браузера, когда вы проверяете подлинность с Okta). Если ваш пользователь уже прошел аутентификацию с помощью своего веб-приложения, ваше веб-приложение должно иметь доступ к контексту http, чтобы узнать, кем является текущий пользователь. Разве это не так? –

+0

В случае использования у нас есть два отдельных решения для веб-клиента и веб-api. В веб-api он имеет атрибут Authorize, а web api не знает/не получает идентификатор ClaimsIdentity из веб-клиента wsfed. –

ответ

0

Спасибо за информацию. Нет никакого готового решения для вашего случая использования, но я настоятельно рекомендую вам перейти на OpenID Connect. У меня есть образец .NET с одностраничным приложением и веб-API, который демонстрирует, как вы можете десериализовать токен JWT в веб-API, чтобы получить идентификатор пользователя. Вы можете найти на https://github.com/rlondner/okta-aspnet-spa_webapi-oidc/

+0

Замечательно, спасибо Рафаэль ... –