Changing DMZ policies and opening ports is usually REALLY complicated. You may be able to do better in what I did: expose the WCF service on the network and communicate with it through HTTP on port 80.
Zero friction with local network users, and I just imitate the exact (though crappy) APIs that .NET gives us :)
Edit: for clarification, this means that I have a RemoteRoleProvider that is configured as follows:
<roleManager enabled="true" defaultProvider="RemoteRoleProvider">
<providers>
<add name="RemoteRoleProvider" type="MyCorp.RemoteRoleProvider, MyCorp" serviceUrl="http://some_internal_url/RoleProviderService.svc" />
</providers>
</roleManager>