You may have a look to Bonita Open Solution from bonitasoft.
It is an BPMN 2.0 implementation in JAVA. It comes with a studio to design your processes, an engine to manage the execution of the processes you designed and the user experience, some kind of portal to manage your processes, see tasks assigned to users, ...
BOS comes with a user directory where a user can have one or several roles in different groups so I think it may answer to your needs.
Concerning the language, it has been written in Java but it could be integrated in an external application written in the language you want. I have for example integrated it in a C# application as in a PHP application.
Concerning the PHP application, I've written an article on the subject a few mounth ago here :
http://community.bonitasoft.com/blog/how-integrate-bos-engine-php-application
If you need more information, feel free to ask :)
Cheers