web-dev-qa-db-ja.com

Spring oauth2スコープvs権限(ロール)

Spring Security OAuth2を使用していますが、現在client_credentialsとパスワード付与タイプを実装しています。クライアントにはスコープと権限の両方があることに気付きました。誰かが違いが何であるか説明してもらえますか?具体的には、JDBCTokenStoreを使用しており、データベーススキーマにはoauth_client_detailsテーブルがあります。

また、

Oauth_client_detailsテーブルでは、次のフィールドが何に使用されるのかわかりません。

web_server_redirect_url、access_token_validity、refresh_token_validity

いくつかの説明は非常に役立ち、高く評価されます。

23

クライアントがスコープと権限の両方を持っていることに気付きました

クライアントにはスコープのみがありますが、権限(ロール)として検討/使用できます。これは、OAuth2仕様がスコープの特定の使用法を説明していないためです。

これを考慮すると、ユーザーはTwitterがユーザーのツイートをFacebookに投稿することを許可します。この場合、Twitterのスコープはwrite_facebook_statusになります。ユーザーは自分のプロファイルを変更する権限を持っていますが、これはTwitterがユーザーのプロファイルを変更できるという意味ではありません。つまり、スコープはクライアントの権限/ロールであり、ユーザーの権限/ロールではありません。

web_server_redirect_url

これは、認証サーバーが要求を元のURLまたはコールバック(認証付与)にリダイレクトして、認証が成功した後に使用します。

access_token_validity

これは、token_accessの有効期限(秒単位)です。 -1または0に設定すると、無限になります。 60に設定すると、1分後にtoken_accessは無効になります。認証プロセスを実行して新しいトークンを要求するか、refresh_tokenを使用する必要があります。

refresh_token_validity

これはrefresh_tokenの有効期限です。

18
MangEngkus