spring-security-oauth2 を使用して、認可サーバーとして機能できる SSO エンドポイントに対してリソースを保護します。ドキュメントに次のように記載されている場合、私は少し混乱しています。
OAuth 2.0 でのプロバイダーの役割は、実際には認可サービスとリソース サービスに分割されています。これらは同じアプリケーションに存在する場合もありますが、Spring Security OAuth を使用すると、それらを 2 つのアプリケーションに分割し、複数のリソース サービスを共有することもできます。認可サービス。
しかし、私はこれが起こっている例を見つけたとは思いません。sparklr/tonr では、認可サーバーとリソース サーバーは同じアプリケーション内にあります。検索で見た唯一の例は、この spring-servlet.xmlであり、このカスタム実装が機能する必要がありResourceServerTokenServices
ます。
ResourceServerTokenServices
可能であれば、のカスタム実装を作成することは避けたいと思います。リソースサーバーで外部承認サーバーをサポートする別の方法はありますか? 次のようなもの:
<bean class="com.example.ExternalAuthorizationServerTokenServices"
p:remote-url="https://my-oauth-compatible-sso.com"
p:token-endpoint="/oauth/access_token"
p:authorize-endpoint="/oauth/authorize" />
これは可能ですか?
*EDIT:回避策として追加します(または、これが意図した解決策かもしれません)。私はjdbcトークンストアを使用しており、両方のサーバーがたまたまそのデータベースにアクセスできるという事実に依存しています。