How do I manage the interaction between my app and modules?

Scenario I have an app myCoolApp, and in that app I use cbsecurity and cbauth.

I have a module myCoolModule, that also uses both cbsecurity and cbauth, the exact same way and there are some common inline rules but not all, and I am using the same provider and prcUserVariable in both.

What is the proper way to set this up?
Can I use the same UserService.cfc and User.cfc or do I need to duplicate them in the module, the datasource backend is the same.

Do I need to set the same moduleSettings struct in the app and module configure() method?

Not really sure how the app and module share and handle these things.

I want a situation where the app and the module require authentication but where each handles its own authorization.