Acho que entendo o que você precisa, mas, por favor, corrija-me se estiver errado. Isso requer uma abordagem em três etapas.
Você usa um RewriteCond
com um RewriteMap
para mapear o SSL_CLIENT_S_DN
para um USERID
, um RewriteRule
para definir uma variável de ambiente e uma diretiva RequestHeader
para definir um cabeçalho com base no ambiente variável. Isso deve fazer com que o cabeçalho seja passado para o servidor interno normalmente.
Algo como:
RewriteEngine On
# Define a RewriteMap for DN to user id
RewriteMap dntouserid "txt:/path/to/dntouserid.txt"
# Test if we have something in the map for a the current DN
RewriteCond ${dntouserid:%{SSL:SSL_CLIENT_S_DN}} (.+)
# Set environment variable based on that mapping. %1 comes from the RewriteCond
RewriteRule ^ - [E=MYUSER:%1]
# Set header to that environment variable
RequestHeader set X-User-ID %{MYUSER}e
E o seu mapa contém linhas como:
DN_OF_USER1 12
DN_OF_USER2 34
DN_OF_USER3 56
Se o DN contiver espaços, você terá que usar um programa externo para fazer o mapa, em vez de um arquivo de texto simples (pode funcionar para outros tipos de mapa, mas eu mesmo não tentei).