Служба единого входа CAS создает пользовательский обработчик аутентификации

#cas

#cas

Вопрос:

В моей рабочей области есть две разные группы людей. У тех, кто является постоянным персоналом, будет свой идентификатор, начинающийся с s и за которым следует последовательность цифр. например s123456789 . Те, кто не является постоянным персоналом, будут иметь свой идентификатор во всех цифрах. например 81234567 .

Обычный персонал будет аутентифицироваться на сервере LDAP. Нерегулярный персонал будет аутентифицирован через RESTful api.

Я хочу добавить службу, которая реализует описанную выше стратегию.

Сначала он проверяет, является ли идентификатор, начинающийся с s if so, затем выполняет аутентификацию с использованием LDAP. Если нет, выполните аутентификацию с помощью rest api.

После просмотра официальной документации CAS, я думаю, что этого может достичь только пользовательский обработчик аутентификации. Но как мне начать работу с cas-overlay-template? Любое направление?

Ответ №1:

Для разработки пользовательских обработчиков аутентификации общие задачи могут быть классифицированы следующим образом:

  • Создайте обработчик аутентификации
 public class MyAuthenticationHandler extends AbstractUsernamePasswordAuthenticationHandler {
}
  
  • Зарегистрируйте обработчик аутентификации в механизме аутентификации CAS.
 public class MyAuthenticationEventExecutionPlanConfiguration
                    implements AuthenticationEventExecutionPlanConfigurer {
    @Autowired
    private CasConfigurationProperties casProperties;

    @Bean
    public AuthenticationHandler myAuthenticationHandler() {
        var handler = new MyAuthenticationHandler();
      
        return h;
    }

    @Override
    public void configureAuthenticationExecutionPlan(final AuthenticationEventExecutionPlan plan) {
      plan.registerAuthenticationHandler(myAuthenticationHandler());
    }
}
  
  • Попросите CAS распознать регистрационную запись и конфигурацию аутентификации.
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=
   com.example.cas.MyAuthenticationEventExecutionPlanConfiguration
  

Смотрите эту ссылку для заметок и деталей.