2015-05-05 4 views
0

Я использую windows authentication with tomcat 7Настройка веб-приложения для проверки подлинности Kerberos с использованием Tomcat

Я сделал с установкой контроллера домена и TOMCAT настройки экземпляра я не могу настроить мой веб-приложение с котом Я имею в виду, я не знаю, что мне нужно изменить в web.xml, context.xml и server.xml

Скопируйте файл tomcat.keytab, созданный на контроллере домена, в $ CATALINA_BASE/conf/tomcat.keytab. Создайте конфигурационный файл kerberos $ CATALINA_BASE/conf/krb5.ini. Файл, используемый в этом, как к содержала:

[libdefaults] 
    default_realm = DEV.LOCAL 
    default_keytab_name = FILE:c:\apache-tomcat-7.0.x\conf\tomcat.keytab 
    default_tkt_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 
    default_tgs_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 
    forwardable=true 

    [realms] 
    DEV.LOCAL = { 
      kdc = win-dc01.dev.local:88 
    } 

расположение этого файла можно изменить, установив свойство системы java.security.krb5.conf. Создайте файл конфигурации входа JAAS $ CATALINA_BASE/conf/jaas.conf. Файл, используемый в этом, как к содержала:

[domain_realm] 
    dev.local= DEV.LOCAL 
    .dev.local= DEV.LOCAL 


    com.sun.security.jgss.krb5.initiate { 
    com.sun.security.auth.module.Krb5LoginModule required 
    doNotPrompt=true 
    principal="HTTP/[email protected]" 
    useKeyTab=true 
    keyTab="c:/apache-tomcat-7.0.x/conf/tomcat.keytab" 
    storeKey=true; 
}; 

com.sun.security.jgss.krb5.accept { 
    com.sun.security.auth.module.Krb5LoginModule required 
    doNotPrompt=true 
    principal="HTTP/[email protected]" 
    useKeyTab=true 
    keyTab="c:/apache-tomcat-7.0.x/conf/tomcat.keytab" 
    storeKey=true; 
}; 
+0

Сообщения об ошибках в журнале? Вопрос невозможно ответить без дополнительной информации. –

+0

@Fred волшебная чудо-собака на самом деле я не знаю, как настроить conf в server.xml BTW, я не пробовал вы можете разместить образец conf. настройки в server.xml, web.xml, которые мы требуем для windows auhtentication –

ответ

0

В web.xml вашего веб-приложения, вы должны настроить метод входа в систему, роль безопасности и ограничения безопасности.

<login-config> 
    <auth-method>SPNEGO</auth-method> 
</login-config> 

<security-role> 
    <description>Users</description> 
    <role-name>WebAppUsers</role-name> 
</security-role> 
<security-role> 
    <description>Admins</description> 
    <role-name>WebAppAdmins</role-name> 
</security-role> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Common Area</web-resource-name> 
     <url-pattern>/common/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>WebAppUser</role-name> 
     <role-name>WebAppAdmin</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

Изменения в server.xml

<?xml version='1.0' encoding='utf-8'?> 
<Server port="8005" shutdown="SHUTDOWN"> 
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off"/> 
<Listener className="org.apache.catalina.core.JasperListener"/> 
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> 
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> 
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> 
<Service name="Catalina"> 
    <Connector port="8080" maxSavePostSize="2097152" URIEncoding="UTF-8" 
     maxHttpHeaderSize="65536"/> 
    <Engine name="Catalina" defaultHost="localhost"> 
     <Realm className="org.apache.catalina.realm.JNDIRealm" 
      connectionURL="ldap://dc.mydomain.com:3268" 
      userSubtree="true" 
      userBase="cn=Users,dc=mydomain,dc=com" 
      userSearch="(sAMAccountName={0})" 
      userRoleName="memberOf" 
      roleBase="cn=Users,dc=mydomain,dc=com" 
      roleName="cn" 
      roleSearch="(member={0})" 
      roleSubtree="true" 
      roleNested="true"/> 
     <Host name="localhost" appBase="webapps"> 
      <Context docBase="ROOT.war" path=""> 
       <Valve className="org.apache.catalina.authenticator.SpnegoAuthenticator" 
        storeDelegatedCredential="true" /> 
      </Context> 
      </Host> 
     </Engine> 
    </Service> 
</Server> 
Смежные вопросы