If you want to use authentication in DMZ with no access to an authentication IDP, it's no possible obviously.
You can do these things though:
- use policy substitution realm and get the information from the LAN using headers, which means it's authorization on the DMZ.
- use the same method but also use LDAP if it's available from the DMZ to fetch information on the user.
It's not documented well enough but if you dig into it, it can work.
Example:
LAN:
Authenticate with AD or something,
;<Proxy>
;client.effective_address.request("$(request.header.X-Forwarded-For)")
define action Auth_Forward
set(request.header.X-Forwarded-For, "$(x-cs-client-effective-ip)" )
;set(request.x_header.BC_Auth_User, "$(cs-username)" )
set(request.x_header.BC_Auth_User, "$(cs-user)" )
set(request.x_header.BC_Auth_Groups, "$(groups)" )
end
define action Auth_Forward_CONNECT
set(forward.http_connect.header.X-Forwarded-For, "$(x-cs-client-effective-ip)" )
;set(forward.http_connect.x_header.BC_Auth_User, "$(cs-username)" )
set(forward.http_connect.x_header.BC_Auth_User, "$(cs-user)" )
set(forward.http_connect.x_header.BC_Auth_Groups, "$(groups)" )
end
<Proxy>
action.Auth_Forward(yes)
<Forward>
action.Auth_Forward_CONNECT(yes) forward("DMZ") forward.fail_open(no)
DMZ

You will also need to use CLI in the DMZ proxy for additional configuration
Policy Substitution Realm