Запретить аутентификацию CAS, если пользователь X.509 не зарегистрирован - PullRequest
0 голосов
/ 02 марта 2019

У меня X.509 аутентификация настроена в Apereo CAS , и она работает нормально.Я также установил настройки cas.authn.attributeRepository.jdbc, чтобы при успешной аутентификации пользователя из таблицы базы данных извлекались дополнительные атрибуты.

Но если в моей таблице нет подходящей строки, пользователь все равно проходит аутентификацию.Он просто пропускает различные атрибуты из столбцов таблицы.Я хочу, чтобы аутентификация не прошла в этом случае.Как это могло быть достигнуто?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Но если в моей таблице нет подходящей строки ... Я хочу, чтобы в этом случае произошла ошибка аутентификации.Как это может быть достигнуто?

Правильный способ сделать это - посмотреть, может ли этот параметр помочь вам:

cas.authn.x509.principal.principalResolutionFailureFatal=true

В примечании к настройке написано:

При значении true возвращает ошибку, указывающую на то, что не удалось разрешить принципала и не удалось найти принципала на основе требований аутентификации.В противном случае просто регистрирует условие как ошибку, не вызывая катастрофической ошибки.

0 голосов
/ 04 марта 2019

Посмотрите, хотите ли вы Enforce Attribute: https://apereo.github.io/cas/5.3.x/installation/Configuring-Service-Access-Strategy.html#enforce-attributes

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "testId",
  "name" : "testId",
  "id" : 1,
  "accessStrategy" : {
    "@class" : "org.apereo.cas.services.DefaultRegisteredServiceAccessStrategy",
    "enabled" : true,
    "ssoEnabled" : true,
    "requiredAttributes" : {
      "@class" : "java.util.HashMap",
      "YOUR_JDBC_RETURN_ATTRIBUTE" : [ "java.util.HashSet", [ "*" ] ]
    }
  }
}

Здесь * работает, потому что Enforce Attribute поддерживает регулярное выражение, смотрите это:

https://github.com/apereo/cas/blob/v5.3.9/core/cas-server-core-services-api/src/main/java/org/apereo/cas/services/DefaultRegisteredServiceAccessStrategy.java#L298

...