検索

ホームページ  >  に質問  >  本文

リダイレクト サーバーなしで OAuth 2.0 を使用できますか?

<p>SurveyMonkey API と対話するネイティブ Java ベースのクライアントを作成しようとしています。 </p> <p>SurveyMonkey では、OAuth 2.0 を使用して有効期間の長いアクセス トークンを生成する必要がありますが、これについてはあまり詳しくありません。 </p> <p>何時間もグーグルで調べましたが、答えはノーだと思いますが、確認したかっただけです。</p> <p>クラウドに独自のリダイレクト サーバーをセットアップせずに、</strong>SurveyMonkey と対話するための単純な Java クライアントを作成できますか? </p> <p>OAuth 2.0 によって生成されたトークンを受信できるようにするには、独自のオンライン サービスが必要だと思います。 SurveyMonkey にトークンをクライアントに直接送信させることはできないでしょうか? </p> <p>独自のカスタム サーブレットをどこかに設定し、それを redirect_uri として使用する場合、正しいフローは次のようになります。 </p> <ol> <li>Java クライアントは SurveyMonkey にトークンを要求します。ここで、redirect_uri はカスタム サーブレットの URL です。 </li> <li>SurveyMonkey は、カスタム サーブレットの URL にトークンを送信します。 </li> <li>Java クライアントは、トークンを取得するまでカスタム サーブレットの URL をポーリングします。 </li> </ol> <p>これは正しいですか? </p>
P粉710478990P粉710478990461日前658

全員に返信(2)返信します

  • P粉949190972

    P粉9491909722023-08-23 18:29:31

    はい、コールバック URL なしで OAuth2 を使用することは可能です。 #RFC6749 では、いくつかのプロセスが導入されています。暗黙的フロー (現在は非推奨です #[1]) と認可コード フロー (認可コード) にはリダイレクト URI が必要です。ただし、リソース所有者のパスワード認証プロセス (これも非推奨です #[1]) は必要ありません。 RFC6749 の公開以来、

    リダイレクト URI を必要としない他の仕様も公開されました。

    RFC7522
      : OAuth 2.0 クライアント認証および認可付与用の Security Assertion Markup Language (SAML) 2.0 構成ファイル
    • RFC7523
    • : OAuth 2.0 クライアント認証および認可付与用の JSON Web Token (JWT) 構成ファイル
    • RFC8628
    • : OAuth 2.0 デバイス認証付与
    • Kerberos 付与タイプ: https://is.docs.wso2.com/en/5.9.0/learn/kerberos-grant/
    • を参照してください。 さらに、OpenID Connect を使用する場合、応答パターンは必ずしも
    • redirect_uri
    パラメーターへのリダイレクトではなく、そのエンドポイントへの POST リクエストになる可能性があります。詳細については、

    OAuth 2.0 フォーム POST 応答パターン 仕様を参照してください。 とにかく、上記の認証タイプがニーズに合わない場合は、カスタム認証タイプ

    を作成できます。

    [1]:

    OAuth 2.1 仕様 (ドラフト 07)

    返事
    0
  • P粉713866425

    P粉7138664252023-08-23 16:15:15

    は完全に正確ではありません。OAuth プロセスの要点は、ユーザー (データにアクセスする代理のクライアント) がデータにアクセスする許可を与える必要があるということです。

    「認証手順」を参照してください。ユーザーを OAuth 認証ページに送信する必要があります: リーリー これにより、アカウントのどの部分へのアクセスを要求しているのかを示すページがユーザーに表示されます (アンケートの表示、回答の表示など)。ユーザーがそのページで「承認」をクリックして承認すると、SurveyMonkey はリダイレクト URI として設定したページに自動的にジャンプし (上記の URL のリダイレクト URI がアプリケーション設定で設定したものと一致することを確認してください)、承認コードに戻ります。

    したがって、リダイレクト URL が

    https://example.com/surveymonkey/oauth

    の場合、SurveyMonkey は認証コードを使用してユーザーをその URL にリダイレクトします:

    https://example.com/surveymonkey/oauth?code=<auth_code>

    その後、その認証コードを使用して POST リクエストを

    https://api.surveymonkey.net/oauth/token?api_key=<your_api_key>

    に送信してアクセス トークンを交換する必要があります。次の POST パラメータを提供します: リーリー これにより、ユーザー アカウントのデータにアクセスするために使用できるアクセス トークンが返されます。アクセス トークンをユーザーに与える必要はありません。アクセス トークンはユーザー アカウントにアクセスするために使用されます。ポーリングやその他の操作は必要ありません。

    自分のアカウントにのみアクセスしている場合は、アプリケーション設定ページで提供されるアクセス トークンを使用できます。それ以外の場合は、独自のリダイレクト サーバーを設定しない限り、ユーザーのアクセス トークンを取得する方法はありません (すべてのユーザーが同じグループに属している場合、つまり、同じアカウントに複数のユーザーが属している場合を除きます。ただし、それについては説明しません)。 SurveyMonkey には認証コードを送信する場所が必要ですが、単にリクエストすることはできません。

    返事
    0
  • キャンセル返事