2016-10-11 8 views
0

У меня такая же проблема, как и несколько других вопросов здесь, на которые никто не ответил; то есть с CAS 4.x (фактически на 4.2.6) Я не могу получить атрибуты LDAP для возврата в клиентское приложение.CAS 4.x, & LDAP Атрибуты

Question 1 Это кажется излишним; пользовательский код, чтобы обойти то, что является «простой» проблемой.

Question 2 Если бы это было сделано, и это не сработало.

Итак, теперь моя очередь спрашивать ... есть ли какая-то магия, чтобы заставить ее работать? Мы использовали 3.5 в течение длительного времени без каких-либо проблем. Я пытаюсь преобразовать эти настройки в 4.x Maven overlayer и новую конфигурацию контекста 4.x, и это не делает этого.

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

Что еще нужно сделать за пределами документации Apereo? Я думаю, что это репозиторий атрибутов? Если что-то поможет вам помочь мне в этом, просто спросите: Config, Logs (отредактировано, конечно) ... что угодно.

Спасибо.

Обновление № 1. Вот список моих решений. ПРИМЕЧАНИЕ. Я сохраняю код/​​настройки на месте, пока я не заработаю его до того, как я очищу материал.

<util:map id="authenticationHandlersResolvers"> 
    <!-- 
    <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /> 
    <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" /> 
    --> 
    <!--<entry key-ref="ldapAuthenticationHandler" value-ref="primaryPrincipalResolver" /> --> 
    <entry key-ref="ldapAuthenticationHandler" value="#{null}" /> 
</util:map> 

Update # 2

Я сделал больше испытаний, и все еще неудачны. Я думаю, это сводится к главному шаблонуAttributeMap LdapAuthenticationHandler, который не работает, OR, атрибутReleasePolicy службыRegistryDao ... кто-нибудь видит какие-либо проблемы в этой конфигурации?

<bean id="ldapAuthenticationHandler" class="org.jasig.cas.authentication.LdapAuthenticationHandler" 
    p:principalIdAttribute="sAMAccountName" 
    c:authenticator-ref="authenticator" 
    > 
    <property name="principalAttributeMap"> 
     <map> 
      <entry key="cn" value="cn" /> 
      <entry key="mail" value="Email" /> 
      <entry key="memberOf" value="Groups" /> 
      <entry key="displayName" value="displayName" /> 
     </map> 
    </property> 
</bean> 

<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"> 
    <property name="registeredServices"> 
     <list> 
      <bean class="org.jasig.cas.services.RegexRegisteredService" 
        p:id="5" 
        p:name="All Servicesxxx" 
        p:description="Allow connections for all services and protocols" 
        p:serviceId="^(http|https|imaps)://.*" 
        p:evaluationOrder="5" 
        > 
       <property name="attributeReleasePolicy"> 
        <bean class="org.jasig.cas.services.ReturnAllAttributeReleasePolicy" /> 
       </property> 
      </bean> 
     </list> 
    </property> 
</bean>  
+0

Вы сделали # {null} вещь, как сказано во втором вопросе? Я не рекомендую использовать JSON. Это вызвало проблемы на моем сервере CAS. Проверьте мой ответ на мой вопрос (вопрос 1) и посмотрите, поможет ли он вам. – Goldi

+0

Да, я сделал изменение # {null} в списке реселлеров обработчика аутентификации. Это не помогло. –

+0

Я ответил на мой вопрос (вопрос 1). Все, что я написал там, работает для меня, кроме той вещи, которую я описал. Вы используете этот файл? – Goldi

ответ

0

Цитата из CAS Security Guide:

Все коммуникации с сервером CAS должно происходить по защищенному каналу (т.е. TLSv1). Есть два основных оправданий для этого требования:

  1. Процесс аутентификации требует передачи безопасности полномочий.
  2. Билет на выдачу билетов CAS является токеном-носителем.

Поскольку раскрытие либо данных позволит олицетворение атаки, это жизненно важно обеспечить канал связи между CAS клиентами и сервером CAS.

Практически, это означает, что все адреса CAS должны использовать протокол HTTPS, но он также означает, что все соединения с сервера CAS к применению должны быть сделано с помощью HTTPS:

  • , когда генерируется служебный билет отправляется обратно в заявку на «служебный» URL-адрес, когда

  • вызываемый адрес обратного вызова proxy.

HTTPS является обязательным в CAS. Однако есть возможности отключить его, но настоятельно рекомендуется не делать этого. Если у вас есть проблемы с обработкой конфигурации SSL, я рекомендую вам прочитать my question, где я подробно объясню, как обращаться с хранилищами ключей.

+0

У меня есть «отключено», или лучшее описание: сконфигурирован CAS, чтобы разрешить аутентификацию незащищенных приложений. Моя цель, прямо сейчас, это заставить ее работать, чтобы мы могли передать ее группе QA для окончательного тестирования. Обманывание с безопасностью и все это боль, главным образом потому, что это трудно сделать для мониторинга, чтобы убедиться, что он работает как ожидалось (модульное тестирование). Мое предположение заключается в том, что CAS работает одинаково между безопасной и незащищенной установкой; это просто не может быть гарантировано, чтобы быть действительно безопасным, если вы достаточно глупы, чтобы он не был защищен в производственной мощности. –

+0

Да, но как только вы знаете, как заставить его работать с HTTPS, это совсем не сложно. Просто прочитайте пошаговые инструкции, когда придет день для вашего продукта. – Goldi

+0

Обновление для этого: Выполнение на сервере, который защищен действительными (не самоподписанными) сертификатами, не помог ни одному биту. CAS получает группы из LDAP (я вижу их в журналах), но не отправляет их в приложение. Я просто не могу понять, какая конфигурация неверна. Это безупречно работало с CAS 3. Я продолжаю попробовать разные вещи, но должно быть что-то очевидное. –