2015-02-23 4 views
3

У меня есть домен безопасности, определенный в JBoss-web.xml, как показано нижеJBoss Wildfly - Аутентификация Web App против LDAP

<jboss-web> 
    <security-domain>java:/jaas/my_ldap_security_domain</security-domain> 
    <disable-audit>true</disable-audit> 
</jboss-web> 

Я также определили в моей standalone.xml

<subsystem xmlns="urn:jboss:domain:security:1.2"> 
    <security-domains> 
     <security-domain name="my_ldap_security_domain" cache-type="default"> 
      <authentication> 
       <login-module code="LdapExtended" flag="sufficient"> 
        <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> 
        <module-option name="java.naming.provider.url" value="ldaps://xxx.xxx.xxx.xxx:yyyy"/> 
        <module-option name="java.naming.security.authentication" value="simple"/> 
        <module-option name="bindDN" value="[email protected]"/> 
        <module-option name="bindCredential" value="mypass"/> 
        <module-option name="baseCtxDN" value="DC=my,DC=domain"/> 
        <module-option name="baseFilter" value="(uid={0})"/> 
        <module-option name="rolesCtxDN" value="DC=my,DC=domain"/> 
        <module-option name="roleFilter" value="(uniquemember={1})"/> 
        <module-option name="roleAttributeID" value="cn"/> 
        <module-option name="searchScope" value="SUBTREE_SCOPE"/> 
        <module-option name="roleRecursion" value="0"/> 
        <module-option name="allowEmptyPasswords" value="true"/> 
       </login-module> 
      </authentication> 
     </security-domain> 
    </security-domains> 
</subsystem> 

Мои только Realms присутствует на моем standalone.xml являются

<security-realms> 
    <security-realm name="ManagementRealm"> 
     <authentication> 
      <local default-user="$local" skip-group-loading="true"/> 
      <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> 
     </authentication> 
     <authorization map-groups-to-roles="false"> 
      <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> 
     </authorization> 
    </security-realm> 
    <security-realm name="ApplicationRealm"> 
     <authentication> 
      <local default-user="$local" allowed-users="*" skip-group-loading="true"/> 
      <properties path="application-users.properties" relative-to="jboss.server.config.dir"/> 
     </authentication> 
     <authorization> 
      <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> 
     </authorization> 
    </security-realm> 
</security-realms> 

Я не упоминал об этом раньше, потому что я предположил, что это SECURIT y были предназначены для аутентификации доступа к консоли сервера приложений. Простите за это.

Мое сомнение заключается в том, как создать страницу входа jsf2 для аутентификации против того, что определено выше. Я читал много статей, но все же в том же месте, потому что большинство статей используют поддельную аутентификацию в качестве примера (сравнивая со статическими строками, а не показывая, как обращаться к LDAP-серверу).

Может ли кто-нибудь мне помочь?

ответ

2

я предположил, что это сферы безопасности были предназначены для аутентификации доступа к консоли сервера приложений

Ты отчасти прав там. name="ManagementRealm" действительно определяет конфигурацию царства для доступа к функциям администратора. name="ApplicationRealm" будет атрибутом для указания для веб-приложения

В вашей конфигурации текущего домена отсутствуют некоторые вещи, необходимые для аутентификации LDAP. Предполагаю, что вы уже знакомы с конфигурацией формы входа в web.xml. Ваша конфигурация область должна выглядеть примерно следующее, отрывок из Wildfly 8 Realm Configuration Manual:

<management> 
  <security-realms> 
    <security-realm name="ApplicationRealm"> 
      <authentication> 
        <ldap connection="EC2" base-dn="CN=Users,DC=darranl,DC=jboss,DC=org"> 
          <username-filter attribute="sAMAccountName" /> 
        </ldap> 
      </authentication> 
    </security-realm> 
  
  </security-realms> 
</management> 

Где <ldap> тег указывает, что ваш поиск против сервера LDAP. Помимо этого, вам нужно только следовать стандартным методам auth для приложения JavaEE.

вынос из этого следует, что безопасность веб-приложения в пределах JavaEE обычно занимает один и тот же подход

  1. Настройку области (App-сервер специфического)
  2. Настройки ограничений безопасности в web.xml (равномерное во всех приложениях JavaEE)
  3. Реализация метода входа (Конфигурация или Programmatic)

Связанные

+0

Жалко только будучи в состоянии ответить почти месяц после вашего поста. Мне очень нравится то, что вы сказали, но я все еще не уверен в трехступенчатом подходе, о котором вы только что говорили. Сфера, я думаю, это нормально, хотя у меня все еще есть много сомнений по поводу ApplicationRealm, аутентификации, авторизации и исходящих соединений, о которых вы не упомянули в своем ответе. Я понятия не имею, как это будет использовать мой сценарий в качестве примера. Ограничения безопасности, которые я читаю здесь, - http://docs.oracle.com/javaee/6/tutorial/doc/gkbaa.html о форме. Но как насчет метода входа по Конфигурации? –

+0

Я не говорил ни о чем из этого в своем ответе, потому что ваш вопрос не касался никого из этого. На самом деле вы даже не задали вопрос об этом. Что вы подразумеваете под «сомнениями»? Если вы зададите конкретный вопрос, я смогу дать конкретный ответ. Мой ответ был опубликован с предположением, что у вас есть основное понимание аутентификации и авторизации в javaee webapp. Вы должны получить этот отсортированный первый @DanielFerreiraCastro – kolossus

+0

См., Я не жалуюсь вообще. То, что вы только что писали, очень помогло мне. Но в отношении сомнений, которые я написал раньше, что было бы лучшим способом помочь вам? Считаете ли вы, что другой пост, делающий мои точки более ясными, будет таким? Не могли бы вы ответить там? –

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