2016-05-03 32 views
0

Oktaへの簡単なGET WebRequestを実行すると、私は現在、焦燥した403のエラーに遭遇しています。 Okta Admin> Security> APIにアプリケーションURLをCORSとして追加しました。以下は私のコードですOttaへのHttpWebRequestは禁じられています。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をコピーして問題なくコピーできます。またセッションがない場合は、エラーコードE0000005 - セッションが無効です。

WebRequestで実行できない場合は、どのクライアントをokta.core.dllで使用するかを教えてください。

ご協力いただきありがとうございました。ありがとうございます...

+0

あなたのユースケースはここにありますか? Webアプリケーションのサーバーコードからその呼び出しをしようとしているようです。ただし、その特定の/ api/v1/users/me操作はブラウザチャネル(JavaScript呼び出しなど)でのみ使用するためのもので、Oktaドメインに関連付けられたセッションCookieを使用する必要があります(通常、あなたはOktaで認証します)。あなたのユーザーがあなたのWebアプリケーションですでに認証されている場合、Webアプリケーションは、現在のユーザーを知るためにhttpコンテキストにアクセスする必要があります。そうじゃないの? –

+0

ユースケースには、WebクライアントとWeb APIの2つの分離されたソリューションがあります。 Web APIでは、Authorize属性を持ち、Web APIはwsfed WebクライアントからClaimsIdentityを知らない/取得しません。 –

答えて

0

ありがとうございました。あなたのユースケースにはすぐに使えるソリューションはありませんが、OpenID Connectに切り替えることを強くお勧めします。私は、単一ページアプリケーションと、Web APIのJWTトークンを逆シリアル化してユーザーのIDを取得する方法を示すWeb APIを備えた.NETサンプルを用意しています。 https://github.com/rlondner/okta-aspnet-spa_webapi-oidc/

+0

ラファエルに感謝しています... –

関連する問題