2016-05-03 18 views
0

Ich stolpere derzeit auf frustrierende Forbidden 403 Fehler bei der einfachen GET WebRequest zu Okta. Ich habe meine Anwendungs-URL in Okta Admin> Sicherheit> API als CORS hinzugefügt. Unten ist mein CodeHttpWebRequest zu Okta Ergebnis in 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 

ich kopieren Sie die requestURL in Internet-Browser einfügen könnte und die Json Antwort ohne Probleme bekommen. Und wenn ich keine Sitzung habe, gibt es auch den Fehlercode E0000005 - Ungültige Sitzung zurück.

Wenn ich es nicht über WebRequest tun kann, einen Vorschlag, welchen Client in okta.core.dll zu verwenden?

Bitte helfen Sie mir und jede Hilfe würde sehr geschätzt werden. Danke ...

+0

Darf ich fragen, was Ihr Anwendungsfall hier ist? Offenbar versuchen Sie, diesen Aufruf über den Servercode Ihrer Webanwendung zu tätigen. Diese spezifische/api/v1/users/me-Operation ist jedoch nur für die Verwendung im Browser-Kanal gedacht (z. B. ein JavaScript-Aufruf) und muss einen Sitzungscookie verwenden, der an Ihre Okta-Domäne gebunden ist Sie authentifizieren sich mit Okta). Wenn Ihr Benutzer bereits mit Ihrer Webanwendung authentifiziert wurde, sollte Ihre Webanwendung Zugriff auf einen HTTP-Kontext haben, um zu wissen, wer der aktuelle Benutzer ist. Ist das nicht der Fall? –

+0

Der Anwendungsfall ist, dass wir zwei getrennte Lösungen für Web-Client und Web-API haben. In Web-API hat es Authorize-Attribut und Web-API kennt nicht die ClaimsIdentity vom wsfed-Webclient. –

Antwort

0

Danke für die Info. Es gibt keine Out-of-the-Box-Lösung für Ihren Anwendungsfall, aber ich würde Ihnen dringend empfehlen, zu OpenID Connect zu wechseln. Ich habe ein .NET-Beispiel mit einer Einzelseitenanwendung und einer Web-API, die veranschaulicht, wie Sie das JWT-Token in der Web-API deserialisieren können, um die Identität des Benutzers abzurufen. Sie können unter https://github.com/rlondner/okta-aspnet-spa_webapi-oidc/

finden
+0

Gut zu wissen, Danke Raphael ... –

Verwandte Themen