問題タブ [refresh-token]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - OAUTH2 リフレッシュ トークン
OAuth2 の Refresh Token について少し混乱しています。アクセストークンは、ハッカーがユーザー資格情報を使用できる1時間の時間枠を制限し、リフレッシュトークンは、アクセストークンを再作成するために使用できる長寿命のトークンであると言います。
誰かがクッキーからアクセストークンを盗んだ場合、彼はリフレッシュトークンも盗み、リフレッシュトークンを使用して新しいアクセストークンを作成できます.JQuery(クライアント側)にajaxリクエストがあるためです。
注:サーバー側で更新トークンを送信する ajax リクエストを作成しました。そこにクライアント ID とシークレットを許可タイプの更新トークンとともに追加します。
アクセス トークンとリフレッシュ トークンの両方を Cookie に保存し、次の ajax リクエストを使用して新しいアクセス トークンを取得します。
更新トークンを使用してセキュリティを強化するにはどうすればよいですか?
oauth-2.0 - 承認コード フローで有効な更新トークンを使用して新しいトークンを取得中にエラーが発生しました
WSO2 API マネージャー 1.10.0 を使用しています。WSO2 Identity Server 5.1.0 をキー マネージャーとして構成し、MySQL Community Server 5.6 をデータベースに使用しています。認証コード付与タイプで取得したトークン (refresh_token 付与タイプ) を更新しようとすると、400 Bad Request エラー (invalid_grant - Provided Authorization Grant is invalid) が発生し、新しいトークンを取得できません。次に、client_credentials と password 付与タイプを試してみましたが、それらの付与タイプについてはトークンを更新できました。
Identity Server のログを確認したところ、Identity Server が最新のトークンを取得しようとするとエラーが発生することがわかりました (以下のログ)。
ソース コードをデバッグしましたが、この問題は次の SQL クエリ、特に USER_DOMAIN=null 句に関連していると思われます。
また、認証コード付与タイプを使用すると、テーブル IDN_OAUTH2_ACCESS_TOKEN で作成されたアクセス トークンのユーザー ドメイン列が NULL に設定されますが、password または client_credentials 付与タイプを使用すると、値は「PRIMARY」になります。
それはバグでしょうか、それとも、新しいアクセス トークンを作成するときにユーザー ドメインを何らかの形で PRIMARY に設定するパラメーターが欠落しているのでしょうか?
問題を再現するために実行したすべての手順を書き留めます。
ステップ 1: https://identity-dev.domain.pt/oauth2/authorize?response_type=code&client_id=OQU0_FyRQcdvTFbygziFw67ASHwa&scope=openid profile&redirect_uri= http://localhost:8100 にリダイレクトして認証コードを取得しています
ステップ 2: 前のステップで受け取ったコードを使用して、次のコマンドを実行してアクセス トークン (およびリフレッシュ トークン) を取得します。
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'grant_type=authorization_code&client_id=OQU0_FyRQcdvTFbygziFw67ASHwa&client_secret=3kC6Uf9f8Lr8HVl2n03dhQc57Jsa&scope=openid profile&code=fd2f827afefba0ab0b17f9d701ad1488&redirect_uri= http://localhost:8100 ' " https:// identity-dev.domain.pt/oauth2/token "
ステップ 3: 前のステップで受け取ったリフレッシュ トークンを使用して、次のリクエストを実行して新しいトークンを取得しますが、この投稿で説明されているように、400 の不正なリクエストを受け取りました。
curl -X POST -H "Authorization: Basic T1FVMF9GeVJRY2R2VEZieWd6aUZ3NjdBU0h3YToza0M2VWY5ZjhMcjhIVmwybjAzZGhRYzU3SnNh" -H "Content-Type: application/x-www-form-urlencoded" -H "Accept: application/json" -d 'grant_type=refresh_token&scope=openid profile&refresh_token=7a7da99d70d48e10ac82e3681c63b0a1' " https://identity-dev.domain.pt/oauth2/token "
どんな助けでも大歓迎です!
c# - AuthenticationTokenCreateContext.SerializeTicket の結果をクライアントに送信しても安全ですか?
Microsoft.Owin.Security.Infrastructure.AuthenticationTokenCreateContext.SerializeTicket の結果の機密性に関する情報を見つけるのに苦労しています
理想的には、サーバーに保存することを避け、代わりにクライアントに (トークンとして) 送信して、AuthenticationTokenProvider.ReceiveAsync で逆シリアル化できるようにしたいと考えています。
暗号化する必要がありますか? 暗号化してもクライアントに送信するのは問題ですか?
私が見たすべての実装は、このチケット サーバー側を格納し、識別子のみをクライアントに送信します。チケット自体を送信しない理由があるかどうかわかりません。
c# - アクセストークンとリフレッシュトークンによるWebAPI認証
カスタム データベースの Users テーブルに対してフォーム認証を使用する ASP.NET MVC アプリケーションがあります。
モバイル アプリが Web アプリケーションとやり取りするには、一連の Web API コントローラーを追加する必要があります。
認証のために、トークンを生成してアクセスし、モバイル アプリに戻るにはトークンを更新する必要があります。どうやってやるの?
このためのチュートリアルリソースの正しい方向を教えてもらえますか? 私がすでに見つけた不明なものがたくさんあります。
oauth - Podio Oauth - トークンの寿命を更新
私は現在 Podio の統合に取り組んでおり、refresh_token が自然に期限切れになるかどうか、またそのような場合に新しいリフレッシュ トークンを取得する正確な流れは何かという明確な回答を提供しない記事に出くわしました。
記事:
Podio Refresh トークンの有効期限- 有効期限はありません (ユーザー名に Podio が含まれている人からの回答、ごく最近)
https://help.podio.com/hc/en-us/community/posts/206669587-Get-new-refresh-token - 有効期限が切れます。応答の一部として取得しますが、rly では取得しませんか? 結論が出ない議論もある
私は多くのサービスと OAuth 実装を扱っていたので、これを尋ねていますが、リフレッシュ トークンが実際に無効になるのは初めてです。28 日が経過すると、ユーザーは再認証する必要がありますか? または、トークンが無効になっているだけで、「許可」がまだ存在していますか? 私は grant == refresh トークンにアプローチするのに慣れているので、かなり混乱していると言わざるを得ませんが、OAuth 仕様でそれを理解しています。また、更新トークンを db に保存したいだけです。テストしたいのですが、28 日間待ちたくありません。
ドキュメントには、更新トークンの有効期間が明確に記載されていません。
Podioの誰かがこれについて明確な答えを出してくれることを願っています. リフレッシュ トークンの有効期限はありますか?それは完全に非アクティブな場合 (API 呼び出しがない場合) だけですか?それとも固定量だけですか?また、どのような場合 (非アクティブまたは時間が経過した場合)、リフレッシュ トークンを取得する正確なフローは何ですか?また、ユーザーの再認証が必要ですか?