Отвечу сам себе. Затык у меня возник потому, что одного Windows Authentication How-To мало. Кроме описанного в нём, нужно ещё в $CATALINA_HOME/<app-base>/<app-name>/WEB-INF/web.xml написать
<security-constraint>
<display-name>All users</display-name>
<web-resource-collection>
<web-resource-name>All requests</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>All users</description>
<role-name>*</role-name>
</security-role>
<login-config>
<auth-method>SPNEGO</auth-method>
</login-config>
так как без авторизации не будет аутентификации. Кто бы мог догадаться. Valve, кстати, вписывается в $CATALINA_HOME/<app-base>/<app-name>/META-INF/context.xml в предельно элементарной форме
<Valve className="org.apache.catalina.authenticator.SpnegoAuthenticator" />
Но и это ещё не всё. Нужен ещё источник данных о пользователях - Realm. Я вписал его в $CATALINA_HOME/conf/server.xml в секцию
host<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionURL="ldap://pdc.domain.local:389"
alternateURL="ldap://bdc.domain.local:389"
connectionName="CN=tomcat,OU=Services,DC=domain,DC=local"
connectionPassword="qwerty"
referrals="follow"
userBase="OU=someou,DC=domain,DC=local"
userSearch="(sAMAccountName={0})"
userSubtree="true"
roleBase="OU=Security Groups,DC=domain,DC=local"
roleName="name"
roleSubtree="true"
roleSearch="(member={0})" />
Потом я, правда, столкнулся с категорическим нежеланием 7-го tomcat'а общаться с 2012-ыми контроллерами домена. Пришлось пока SPNEGO заменить на FORM. Но в целом рецепт рабочий.