Kerberos (SSO) を使用して Windows ネットワーク内のユーザーを認証する認証サーバーをセットアップしています。また、基本認証を使用して、ネットワーク外のユーザーを認証します。
ネットワーク内のマシンでエンドポイントにアクセスしようとすると/oauth/authorize
、kerberos SSO はユーザー名とパスワードを要求することなく完全に機能します。しかし、ネットワーク外のマシンで同じエンドポイントにアクセスしようとすると、ブラウザのログイン ポップアップが表示され、キャンセルをクリックするまでカスタム ログイン ページが非表示になります。
/oauth/authorize
エンドポイントアクセス時のログインポップアップを無効にしたい。
私の設定:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.exceptionHandling()
.authenticationEntryPoint(spnegoEntryPoint())
.and()
.authorizeRequests()
.antMatchers("/", "/home", "/check", "/favicon.ico").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login").permitAll()
.and()
.logout()
.permitAll()
.and()
.addFilterBefore(
spnegoAuthenticationProcessingFilter(authenticationManagerBean()),
BasicAuthenticationFilter.class);
}
@Bean
public SpnegoEntryPoint spnegoEntryPoint() {
return new SpnegoEntryPoint("/login");
}