5

私は一般的に春のセキュリティに不慣れで、少し混乱しています。

これを統合しようとしているプロジェクトでは、X509 証明書を使用して、アプリケーションにサインインするユーザーを識別します。ユーザー名やパスワードはありません。証明書が適切であり、アプリへのアクセスが許可されていることを検証します。

問題は、X509 証明書を使用して役割を取得するために、これに春をどのように統合するかです。

私はこれを見ました

<http>
 ...
    <x509 subject-principal-regex="CN=(.*?)," user-service-ref="userService"/>
 ...
</http>

しかし、これがどのように機能するのかわかりません。パスワードに何か必要ですか?それとも、必要なのは主題だけですか?

4

2 に答える 2

1

しかし、これがどのように機能するのかわかりません。それでもパスワードに何かが必要ですか?それとも、主題はそれが必要とするすべてですか?

必要なのはそれだけだと思います。モデルは、TLSプロトコルが、証明書の秘密鍵を知っているユーザー/クライアントに要約される公開鍵暗号化技術を使用して、ユーザー/クライアントが証明書を「所有」することを決定するというものだと思います。ユーザーだけが自分の秘密鍵を知っていると想定されているため、鍵の知識を証明できるのユーザーです。

于 2010-06-08T03:14:21.640 に答える
1

少なくともブラウザがサービスにアクセスする場合、ユーザーは X509 証明書の作成時に使用されたパスワードの入力を求められます。パスワードなしで証明書を作成できますが、安全ではありません。

ユーザーがパスワードを入力すると、ブラウザーとサーブレット コンテナーが SSL ハンドシェイクを処理します。すべて問題がなければ、UserDetailsS​​ervice 実装を使用して、ユーザーが持っているロールをプリンシパルに入力できます。

于 2010-06-08T12:00:28.130 に答える