私の現在の設定では、スタンドアロンのSpring oAuth2サーバー、スタンドアロンのリソースサーバー、およびリバースプロキシを備えたangularJsアプリがあります。
認証サーバー側では、2 つのクライアント (サービス通信用の Web アプリと内部クライアント) を登録しました。クライアント スコープとユーザー ロールを正しく受け取ります。
質問 1 クライアント (Web アプリ、モバイルなど) ではなく、ユーザーごとに異なる権限 (スコープなど) が必要です
各ユーザーの ClientDetails を作成する独自の ClientsDetailService を提供しようとしましたが、受け取るのはクライアント ID (「web-app」) だけで、どのユーザーがログインしているかを知る方法がありません。
ユーザーコンテキストを挿入する方法はありますか?
関連するスタックの質問
質問 2利用可能なすべてのアクセス許可を JWT に配置し、リソース サーバーで "hasPermission(...)" ロジックを実行すると、この問題を回避できます。基本的に、クライアント アプリは N スコープで動作し、Users ロールに基づいてサーバーがアクセス許可のリストを構築し、JWT を作成します。しかし...
- ユーザーのアクセス許可を削除するとどうなりますか? JWT は無効化されていますか?
- このシナリオの oAuth ワークフローは何ですか? (refresh_token は更新されたアクセス許可を取得しますか、それともユーザーは資格情報を再度入力する必要がありますか?)
- これは悪い習慣のように思えるので、より良い解決策はありますか?
質問 3 spring oauth2 でより詳細な許可ロジックを実装する標準的な方法はありますか? (メソッド レベルのセキュリティで 100 以上の異なるアクセス許可があると考えてください)