I am looking at a particular situation where an internal web server needs to know what kind of AD membership groups are assigned to a user that tries to login. The authentication only takes place on the F5 APM and NOT on the internal server. The internal server only needs to verify AD group membership, but may not communicate to AD.
The idea is to:
Create a login page using APM
authenticate using username and password to AD
Retrieve the AD group membership
Include a POST parameter with these AD group membership information and send it to the internal webserver
Yes this is fairly simple. Use LTM+APM mode, and AD Query / AD Auth in your Access Policy. Set the “start uri” parameter to your backend app’s URI, and use forms-based SSO (server-initiated) to fill in the resultant session variables from your AD Query into your form parameter. The groups will be in the form of a pipe-delimited list of the group DNs that came back from the query.
Hi Lucas, Yes I was exactly thinking about that scenario, but wanted to verify the point 4. Do you have an example on how to configure the forms-based SSO? Should I use the form action to include the session variable with the AD groups? Where am I able to define the parameter used for this purpose?
Hi Lucas, I am working on this configuration, authentication works fine, also F5 APM receives AD group information. I configured SSO form profile similar to your example. In the APM log I see that policy result is allow, however I don´t see any HTTP POST being send by the SSO form funcionality.
I have properly applied the SSO profile to the Access policy. Do you have any idea how to find the cause?
I changed it to / and now it is sending the HTTP post, the only thing is that the groups are not being send, in wireshark apears Usuario.Grupo=%(session.ad.last.attr.memberOf).
Great! Thanks for reporting back. You can use that curly brace in a lot of different places in APM for session variable substitution. It’s pretty useful for different stuff.
Hi Lucas another question, there is still some tuning to do, like when the user logs off the session within the applciation it remains active on the F5 side.
How can I make sure that the F5 will close the session when the client logs off within the application?
Is it perhaps needed to change the portal type so it will show the F5 logoff button in the upper menu and the customer needs to logoff using the F5 logoff button. In LTM+APM mode I don’t see this menu bar.