1

onelogin REST API を使用してユーザーをログインさせています: https://developers.onelogin.com/api-docs/1/samples/login-user-via-api

すべての手順を正常に実行して、問題なくセッション トークンを生成しました。

ドキュメントには、セッショントークンを次の URL に投稿するように記載されています: https://admin.us.onelogin.com/session_via_api_token

ただし、セッション トークンを使用してその URL に投稿すると、onelogin のサインオン ページにリダイレクトされるだけです。

投稿用の c# コードは次のとおりです。変数に有効なセッション トークンがあります: session_token:

        string url = "https://admin.us.onelogin.com/session_via_api_token";

        StringBuilder postData = new StringBuilder();

        postData.Append("session_token=" + HttpUtility.UrlEncode(session_token) + "&");
        postData.Append("auth_token=" + HttpUtility.UrlEncode(""));

        //ETC for all Form Elements

        // Now to Send Data.
        StreamWriter writer = null;

        request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = postData.ToString().Length;
        try
        {
            writer = new StreamWriter(request.GetRequestStream());
            writer.Write(postData.ToString());
        }
        finally
        {
            if (writer != null)
                writer.Close();
        }
4

1 に答える 1

1

これはサーバー側のコードのように見えるため、エンドユーザーのブラウザーとのセッションを正常に取得することはできません。

このフローが正しく機能するためには、auth_token 値だけを POST パラメーターとして使用して、エンドユーザーのブラウザーhttps://admin.us.onelogin.com/session_via_api_token URL にリダイレクトする必要があります。

上記のコードは、バックエンド サーバーがセッション Cookie を取得できるようにするだけで、エンド ユーザーがセッションを確立するのにまったく役立ちません。

詳細については、https ://developers.onelogin.com/api-docs/1/samples/login-user-via-api をご覧ください。

于 2016-07-29T23:42:11.297 に答える