2013-03-13 2 views
0

Итак, вот сценарий.Расширение SAML Spring Security с OPENAM

У меня есть мое приложение < ==> IDP-прокси < ==> IDP. Если оба прокси-сервера IDP и IDP являются экземплярами openam. Идея заключается в том, что мы можем добавить наших дополнительных ВПЛ (от других клиентов), поэтому мы хотим, чтобы прокси-сервер защищал сложность.

Так вот IDP Prxy является: http://idpproxydev.devs1.int:8080/openam

URL МВУ: http://idpdev.devs1.int:80/openam

Мой веб-приложение: http://ocr-jq0zt91.devs1.int:9081/LOS

Я начал использовать http://static.springsource.org/spring-security/site/extensions/saml/index.html для интеграции и теперь я вижу, что SAML: запрос wassent из моего веб-приложения.

Проблема, которую я имею сейчас, - это когда я проверил свою настройку с помощью Fedlet (клиент, который сгенерирован с использованием Openam на прокси-сервере IDP), запрос отправляется прокси, а затем перенаправляется в IDP, поскольку запрос SAML, созданный Fedlet, имеет тот дополнительная информация, которая этот фрагмент в запросе SAML

<samlp:Scoping xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ProxyCount="1" > 
     <samlp:IDPList xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> 
     <samlp:IDPEntry xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
         ProviderID="http://idpdev.devs1.int:80/openam" /> 
    </samlp:IDPList> 
</samlp:Scoping> 

Таким образом, единственное различие, которое я вижу, это дополнительная нагрузка платы в FEDLET генерируется запрос SAML.

Итак, видя это выше фрагмент кода в запросе SAML, МВА прокси знает, что конечный пункт назначение не является сам по себе (http://idpproxydev.devs1.int:8080/openam), но другому объекту, который в данном случае является http://idpdev.devs1.int:80/openam

Fedlet имеет дополнительный файл свойств для расширенных метаданных (sp-extended.xml), где мы можем добавить эти дополнительные вещи.

<Attribute name="enableIDPProxy"> 
      <Value>true</Value> 
     </Attribute> 
     <Attribute name="idpProxyList"> 
      <Value> http://idpdev.devs1.int:80/openam</Value> (the attribute name is little confusing as this is the IDP) 
     </Attribute> 
     <Attribute name="idpProxyCount"> 
      <Value>1</Value> 
     </Attribute> 

Однако весной библиотека безопасности SAML я не вижу какой-либо способ, где я могу добавить эти дополнительные атрибуты, так что запрос SAML может включать в себя эту информацию. Есть ли способ передать дополнительные атрибуты, перечисленные выше?

так, что пружина saml extension может читать, когда мое веб-приложение отправляет запрос?

ответ

2

Я нашел исправление для этой проблемы. Вам необходимо использовать org.springframework.security.saml.websso.WebSSOProfileOptions

Вот один пример из моего веб-приложения. Добавьте это в ваш security.xml

<beans:bean id="samlEntryPoint" class="org.springframework.security.saml.SAMLEntryPoint"> 
     <beans:property name="defaultProfileOptions"> 
      <beans:bean class="org.springframework.security.saml.websso.WebSSOProfileOptions"> 
       <beans:property name="binding" value="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/> 
       <beans:property name="includeScoping" value="true"/> 
       <!-- to skip proxyCount, 0 to disable proxying, >0 to allow proxying--> 
       <beans:property name="proxyCount" value="1"/> 
       <beans:property name="allowedIDPs"> 
        <beans:set> 
    <beans:value>http://idpproxydev.devs1.int:80/openam</beans:value>     
        </beans:set> 
       </beans:property>   
    <!-- Allowed Values are in AuthnContextComparison.java --> 
      <beans:property name="authnContextComparison" value="EXACT"/> 
      <beans:property name="authnContexts"> 
        <beans:list> 
<beans:value> 
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport 
</beans:value>     
        </beans:list> 
      </beans:property> 
      <beans:property name="nameID" value="urn:oasis:names:tc:SAML:2.0:nameid- format:transient"/> 
      <beans:property name="allowCreate" value="true"/> 
       </beans:bean> 
     </beans:property> 
    </beans:bean> 

Теперь я вижу, что мой запрос SAML из WEB приложение имеет список IDP.

Также добавлены некоторые дополнительные примечания интегрировать JSF веб-приложений с использованием openam расширения SPRING SAML.

Пожалуйста, смотрите мои статьи по общей информации, связанной с понятиями Openam http://reddymails.blogspot.com/2013/03/sso-for-java-or-net-web-based.html

шаги для интеграции JSF 2 веб-приложений с использованием Openam расширения Spring SAML и Spring Security. http://reddymails.blogspot.com/2013/06/integrating-jsf-web-applicataion-with.html

-rama

Смежные вопросы