web-dev-qa-db-ja.com

パブリッククライアント用のSpring Boot 2 Authorization Server(PKCE)

spring Securityの現在のバージョンでPKCE認証用の承認サーバーを作成することは可能ですか?

私は調査を行い、この認証サーバープロジェクト https://github.com/spring-projects-experimental/spring-authorization-server を見つけましたが、そのプロジェクトに使用できるサンプルはありません。

また、Springは認証サーバーとしてKeycloakを推奨していますが、私の場合には適していません。リモートサービスに対してユーザーをフェッチおよび検証し、jwtトークンを生成および検証するためにのみ認証サーバーを使用できる必要があります。私の知識では、Keycloakはユーザーも保持する必要がありますか?したがって、最適なソリューションは、カスタムの春のスタンドアロン認証サーバーです。何らかの方法で可能ですか?ありがとうございました!

2
Denis Stephanov

あなたはこのプロジェクトを見るかもしれません: CloudFoundryユーザーアカウントと認証(UAA)サーバーUAACloud Foundryの(Spring MVC)コンポーネントですが、スタンドアロン[OAuth2 server]として使用することもできます。外部認証サービスに対応できます。そして、PKCEを実装するプルリクエストがあります: https://github.com/cloudfoundry/uaa/pull/939 (まだマージされていませんが、レビュー)。

baeldung.comUAAを使用する方法の例を見つけることができます。

2
Arnaud Develay

私の知る限り、Springフレームワークには承認サーバーのもう1つの実装があります。 spring-security-oauth プロジェクトの一部です。しかし、このプロジェクトはメンテナンスモードに移行しました。

この 移行ガイド によると、新しい認証サーバープロジェクト(既に見つけたもの)が作成され、レガシーソリューションを変更します。

私の観点から見ると、いくつかの可能なオプションがあります。

  1. 古いレガシー spring-security-oauth を使用します。 old auth server のその他の例
  2. Keycloak、Auth0、Oktaなどの外部サービスの使用
2
Danil Kuznetsov