リダイレクト サーバーなしで OAuth 2.0 を使用できますか?
P粉710478990
P粉710478990 2023-08-22 22:18:09
0
2
625
<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粉710478990
P粉710478990

全員に返信(2)
P粉949190972

はい、コールバック 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

は完全に正確ではありません。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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!