Spring Security は、次のような認証および認可メカニズムを提供します。 認証: ユーザー名とパスワード、または LDAP 認証の使用など、認証プロバイダーを使用してユーザー資格情報の有効性を確認します。認可: アクセス決定マネージャーを使用してユーザー権限と要求された URL を比較し、AffirmativeBased (一致するロールがアクセスを許可する) または ConsensusBased (一致するロールがすべてアクセスを許可する) などのアクセス決定に基づいてアクセスを許可するかどうかを決定します。実際のケース: RBAC (ロールベースのアクセス制御): UserDetailsService を使用してロールを定義し、RoleHierarchyVoter を使用してロール階層を確立し、AffirmativeBased を使用して承認のために意思決定マネージャーにアクセスします。
#Spring Security の認証と認可のプロセス
認証
Spring Security は次の方法で認証します。認証プロバイダー (例:認可
認証が成功した後、Spring Security はアクセス決定マネージャーを介して認可します。これには次のものが含まれます。実践的なケース: ロールベースのアクセス制御
ロールベースのアクセス制御 (RBAC) シナリオでは、次の手順を実行して Spring を使用できます。セキュリティ認証:構成
@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) { auth.userDetailsService(userDetailsService()); } @Override protected void configure(HttpSecurity http) { http.authorizeRequests() .antMatchers("/admin/**").hasRole("ROLE_ADMIN") .antMatchers("/user/**").hasRole("ROLE_USER") .anyRequest().permitAll(); } }
UserDetailsService
@Service public class UserDetailsServiceImpl implements UserDetailsService { @Override public UserDetails loadUserByUsername(String username) { User user = userRepository.findByUsername(username); return new UserDetailsAdapter(user); } }
UserDetailsAdapter
public class UserDetailsAdapter implements UserDetails { private final User user; public UserDetailsAdapter(User user) { this.user = user; } // ... UserDetails implementation methods ... }
以上がSpring Security の認証および認可プロセスはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。