2017-01-30 11 views
0

Использовал приложение Spring SAML Sample и выполнил инструкции. Моя конфигурация работала отлично, как и ожидалось, когда использовался SSOCircle IDP. Однако я хотел работать с ADFS. Итак, я выполнил инструкции по настройке Spring SAML с ADFS. Я получил его, когда при доступе к приложению Spring SAML вызывается, он отображает страницу выбора IDP с URL-адресом для adfs/services/trust. Когда я нажимаю на него, он запрашивает у меня проверку подлинности AD, чего я ожидал. Но когда я предоставляю идентификатор/пароль пользователя для аутентификации AD, он обрабатывает его и отображает сообщение, в котором «страница не может быть отображена».Spring SAML и ADFS 2.0

В адресной строке URL-адрес на странице отображается как:

https://localhost:8443/spring-security-saml2-sample/saml/login?idp=http%3A%2F%2FTest-DC.TEST.local%2Fadfs%2Fservices%2Ftrust.

Test-DC.TEST.local - это мой сервер, на котором размещены ADFS и AD.

В журнале tomcat и в любом месте нет ошибок.

может кто-нибудь, кто установил Spring SAML с помощью ADFS здесь, пожалуйста?

+0

Сначала вы можете использовать трассировщик SAML, чтобы получить утверждение. На основе используемого Binding может возникнуть проблема с сигнатурой XML. Без сообщения об ошибке из журналов трудно сказать, даже для тех, кто успешно его настроил с помощью ADFS. В документах Spring SAML также есть раздел интеграции ADFS. –

+0

спасибо. Я попробую использовать SAML-трассировщик. FYI: Я использовал интеграцию ADFS из Spring Docs. – kumaran

+0

Просмотрите журнал событий ADFS и посмотрите, что такое ошибки. – nzpcmad

ответ

0

Убедитесь, что вы используете SHA2, а не SHA1.

либо переопределить метод afterPropertiesSet:

public class SSOConfigBean 
    implements InitializingBean 
{ 

    private String signatureAlgorithmSHA = SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256; 
    private String digestAlgorithmSHA = SignatureConstants.ALGO_ID_DIGEST_SHA256; 

    @Override 
    public void afterPropertiesSet() throws Exception 
    { 
    BasicSecurityConfiguration config = (BasicSecurityConfiguration) Configuration.getGlobalSecurityConfiguration(); 
    config.registerSignatureAlgorithmURI("RSA", signatureAlgorithmSHA); 
    config.setSignatureReferenceDigestMethod(digestAlgorithmSHA); 
    } 
} 

и добавить к вашему SecurityContext:

<!-- setting encryption to SHA2 instead of default SHA1 --> 
    <bean class="path.to.SSOConfigBean"/> 

Или обновить SecurityContext вы используете при настройке метаданных SP, как показано ниже:

<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter"> 
    <constructor-arg> 
     <bean class="org.springframework.security.saml.metadata.MetadataGenerator"> 
     <property name="entityId" value="urn:samltest"/> 
     <property name="extendedMetadata"> 
      <bean class="org.springframework.security.saml.metadata.ExtendedMetadata"> 
      <property name="idpDiscoveryEnabled" value="false"/> 
      <property name="local" value="true"/> 
      <property name="signingAlgorithm" value="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> 
      </bean> 
     </property> 
     </bean> 
    </constructor-arg> 
    </bean> 

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

  • Нет связанных вопросов^_^