Forum Discussion
Time based VPN restriction
Hi All,
Our users Authenticate from Active Directory. We have custom software and DB for storing users info and credential.
For example : User A : vpn enabled user and AD group X and work time 8-9 AM
User B : vpn enabled user and AD group Y and work time 11-12 AM
User C : vpn disabled user and AD group Z and work time 5-9 PM
Also we have web service we can call the web service get information about users
We want do with APM;
1- Time based VPN session (APM will get info from DB or use webservice) and assign recourse the client
2- we want sent email alert to the active users before the work time finish and AutoDisconnect them when worktime finished
how can i do this
regards
zafer
- AP_129594Nimbostratus
It is probably easier to set the Logon Hours on the AD
- Stanislas_Piro2Cumulonimbus
- Stanislas_Piro2Cumulonimbus
Hi,
you can :
- Configure AD attributes like starthour and endhour with format : 8:00
-
create variable assign with following expression:
session.custom.starthour = [clock scan [mcget {session.ad.last.attr.starthour}]]
session.custom.endhour = [clock scan [mcget {session.ad.last.attr.endhour}]]
- check if starttime is in expected range with:
Branch expression
expr { [mcget {session.user.starttime}] >= [mcget {session.custom.starthour}] && [mcget {session.custom.endhour}] >= [mcget {session.user.starttime}] }
- define max session timeout variable to disconnect user at expected hour
session.max_session_timeout =
expr { [mcget {session.custom.endhour}] - [mcget {session.user.starttime}] }
So, you can do what you want...
- Stanislas_Piro2Cumulonimbus
Hi,
To retreive logon and logout time from web server, you need to configure AAA HTTP server (even if you don't want to authenticate on this server)
parameters must be contained in HTTP cookie.
After the HTTP auth, you can obtain values with following variable assign:
session.custom.starthour = expr { [lindex [regexp -inline {starthour=([^;\\\r]*)} [mcget session.http.last.response_cookie]] 1] } session.custom.endhour = expr { [lindex [regexp -inline {endhour=([^;\\\r]*)} [mcget session.http.last.response_cookie]] 1] }
If your HTTP server does not include informations in cookies, you can use a virtual server (with irule) between APM and HTTP server to insert expected format in response.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com