私が開発しているREST APIを検証するテストハーネスを作成するのに忙しいです。通常の使用では、私のREST APIはOneLoginによって保護され、認証されたWebアプリケーションによって使用されます。私のテストハーネスは、自分の機能を呼び出す前にOneLoginを使って認証する必要があります。テストハーネスにはブラウザがないため、APIを介してログを記録するための正しいワークフローを理解するのには苦労しています。これまでのところ私が持っている:OneLogin Login APIの正しい流れ
- 要求認証トークン、サブドメイン、ユーザー名とパスワード(https://developers.onelogin.com/api-docs/1/users/create-session-login-token) を使用して、セッショントークンをクライアントIDとシークレット( https://developers.onelogin.com/api-docs/1/oauth20-tokens/generate-tokens)
- 要求を使用して認証トークン
私はセッショントークンとは何が関係しているのかよく分かりません。 I 容疑者セッション(https://developers.onelogin.com/api-docs/1/users/create-session-via-token)を作成する必要がありますが、別のURLを使用しているようです。
アイデア?
更新日:
をここに私はその最後のステップのために使用しているコードがあります。前の手順で取得したセッショントークンを渡します。
/** see https://developers.onelogin.com/api-docs/1/users/create-session-via-token */
public void createSession(String sessionToken) {
HttpPost httpPost = new HttpPost("https://admin.us.onelogin.com/session_via_api_token");
List<NameValuePair> postParameters = new ArrayList<>();
postParameters.add(new BasicNameValuePair("session_token", sessionToken));
try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
HttpEntity entity = new UrlEncodedFormEntity(postParameters);
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
int status = response.getStatusLine().getStatusCode();
System.out.println(status);
} catch (Exception e) {
e.printStackTrace();
}
}
返されたステータスコードが302であり、応答ヘッダは、Location: https://<my-company>.onelogin.com
を含みます。
私はこれが何らかの理由で最後の呼び出しが失敗し、ログインページにリダイレクトされていることを意味しています。
チップをありがとう。私は確信していなかったステップで使用していたコードで質問を更新しました。私はそれに何か間違っていることを知っているが、試して2日後に私は私の人生のために何を見ることができない! – Stormcloud
また、これはRESTテストハーネス用です。これらはブラウザーに関係しません。 – Stormcloud
このエンドポイントは、元のページにリダイレクトされて動作するように設計されています(古い学校のフォーム投稿を行うことができます)ので、302が正常である可能性があります。 トークンを作成するときにCORSパラメータを正しく設定すると、クロスサイトREST経由でこれを行うことができます。 CORSヘッダーを設定するには、https://developers.onelogin.com/api-docs/1/users/create -session-login-token - (Custom-Allowed-Origin-Header-1) CORSの例を参照してください。https://developers.onelogin.com/api-docs/1/samples/login-user-via- api - (Example CORS Post) –