2017-04-06 14 views
1

OktaのAPIを使用してOktaを自分のIdPサーバーに統合しています。Okta:APIコールで認証コードを取得できません

私は以下の手順で認証コードフローを実装しています:

  1. を私自身のサーバーでは、はsessionTokenを取得するために/api/v1/authnエンドポイントを使用します。

  2. は、このエンドポイントを呼び出すことによって、承認を得るためにはsessionTokenを使用します。/oauth2/v1/authorize?client_id=" + clientId + "&sessionToken=" + sessionToken + "&response_type=code&response_mode=query&scope=openid&redirect_uri=" + redirectUrl + "&state=evanyang&nonce="

ステータスコード302とし、リダイレクトURLだけでなく、code値を含むLocationヘッダとレスポンスを返すことになっています。

しかし、ステータスコード200と、Locationヘッダーがなく、「サポートされていないブラウザを使用しています。」と表示されています。 「ブラウザでJavascriptが無効になっています。」

APIドキュメントによると:http://developer.okta.com/docs/api/resources/oidc.html#authentication-requestsessionTokenパラメータは、これを行うのに十分である:An Okta one-time sessionToken. This allows an API-based user login flow (rather than Okta login UI).

私は、APIを介して認証コードを取得するための余分な要件足りませんか?助けてください。事前に

感謝:)

答えて

0

認証コードグラントタイプとそこでの認可エンドポイントは、ブラウザではなく、ブラウザ以外のクライアント経由のアクセスであることを意味しています。

0

この問題は、セッショントークンと認証コードの取得の間にセッションIDを取得することによって発生します。セッショントークンを使用してセッションIDを取得すると、セッショントークンは無効になり、これを使用して認証コードを取得できなくなります。

Okta、Authorization Codeの許可タイプと承認エンドポイントによると、セッショントークンがリクエスト内で提供されている限り、APIベースのWebアプリケーションでも使用されます:http://developer.okta.com/docs/api/resources/oidc.html#authentication-request。実際には、このスクリプト(https://github.com/SohaibAjmal/Okta-OpenId-Scripts)を使用してフローを終了することができます。

関連する問題