Nano Hash - криптовалюты, майнинг, программирование

CAS 4.x и атрибуты LDAP

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

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

Вопрос 2 Это уже было сделано, и это не сработало.

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

Обновление №2

Я сделал больше тестов, и все еще безуспешно. Я думаю, это сводится к тому, что PrincipalAttributeMap LdapAuthenticationHandler не работает, ИЛИ attributeReleasePolicy serviceRegistryDao... кто-нибудь видит какие-либо проблемы в этой конфигурации?

<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>     
11.10.2016

  • Вы сделали #{null} вещь, как сказано во втором вопросе? Я рекомендую вам не использовать JSON. Это вызвало проблемы на моем сервере CAS. Проверьте мой ответ на мой вопрос (вопрос 1) и посмотрите, поможет ли он вам. 12.10.2016
  • Да, я внес изменение #{null} в список Resolvers обработчика аутентификации. Это не помогло. 12.10.2016
  • Я ответил на свой вопрос (вопрос 1). Все, что я там написал, у меня работает, кроме того, что я описал. Вы используете этот файл? 12.10.2016
  • Я думал, что у меня не было проблем с конфигурацией зарегистрированных служб. Итак, сначала я обновил свой сервис, чтобы использовать ReturnAllAttributeReleasePolicy, но это не сработало. Затем я изменил свой контекст развертывания, удалив jsonServiceRegistryDao и заменив его вашим образцом: InMemoryServiceRegistryDaoImpl. До сих пор не работает. Я знаю, что используется новая регистрация, потому что имя и описание отображаются на экране CAS при аутентификации. 12.10.2016
  • Это натяжка... но может ли быть это из-за того, что я не веду войну в безопасном режиме? У меня настроена зарегистрированная служба как: ^(http|https|imaps)://.*.... Для контроля качества и производства это будет безопасно, но для разработки это не так. 12.10.2016
  • Да, CAS требует, чтобы вы использовали HTTPS. Использование HTTP возможно только при изменении настроек. Например, если этот параметр отключен, файлы cookie не будут создаваться, если вы не используете безопасное соединение (HTTPS). 12.10.2016
  • да... у нас всегда это работало. Сам CAS — это https в производстве, но это поддержка приложений https или http. Думаю, я мог бы попробовать добавить эту новую версию в безопасную среду https, чтобы посмотреть, исчезнет ли моя проблема... Я должен что-то упустить... Я просто не понимаю. 13.10.2016

Ответы:


1

Цитата из Руководства по безопасности CAS:

Вся связь с сервером CAS ДОЛЖНА осуществляться по защищенному каналу (т. е. по протоколу TLSv1). Есть два основных обоснования этого требования:

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

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

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

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

  • вызывается URL-адрес обратного вызова прокси.

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

12.10.2016
  • Я отключил его или более точное описание: настроил CAS, чтобы разрешить аутентификацию незащищенных приложений. Моя цель сейчас — заставить его работать, чтобы затем мы могли передать его группе контроля качества для окончательного тестирования. Заморачиваться с безопасностью и всем прочим неприятно, в основном потому, что сложно проводить мониторинг, чтобы убедиться, что он работает должным образом (модульное тестирование). Я предполагаю, что CAS работает одинаково между безопасной и незащищенной установкой; просто нельзя гарантировать, что он будет действительно безопасным, если вы достаточно глупы, чтобы иметь его небезопасным в производственной мощности. 13.10.2016
  • Да, но как только вы узнаете, как заставить его работать с HTTPS, это совсем не сложно. Просто прочитайте пошаговую инструкцию, когда наступит день для вашего продукта 13.10.2016
  • Обновление к этому: запуск на сервере, защищенном действительными (не самозаверяющими) сертификатами, ничуть не помог. CAS получает группы из LDAP (я вижу их в журналах), но не отправляет их в приложение. Я просто не могу понять, какая конфигурация неверна. Это работало безупречно с CAS 3. Я продолжаю пробовать разные вещи, но должно быть что-то очевидное. 22.11.2016
  • Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..