I would like to get the Department Name from the Users. IF any user selected in the record, the Department name of the User should be populated (or) displayed.
Requirement 1 :: If any Record Permission is selected in a record, there should be some way to identify the User's Department name so that the Management can identify for their needs.
Requirement 2 :: Access should be restricted to particular application/record based on the Department of the User
Absolutely doable. With some nuances.
This assumes that Department is a consistent variable between AD and your organizational hierarchy. This will be a text based exact match. So for some organizations, this is a high hurdle to pass.
You also need to feed userids into the contacts application. The RUM tool (available on the community) contains some utilities to support this function. I recommend feeding the UserID into Contacts twice, once as a read only, and once as an edit authority so you can subjectively inherit later.
Then you'll need a calculated cross reference field located on the contacts app, pointing to the departments app that will merge based on the text being exactly the same between the Contact's Department, and the department name of the Department record. Make sure to also include a limiter in there so that NULL value in either don't create references.
Lastly, you'll need to set up inheritances to the department record from the related contacts application through the newly designed cross reference field. I recommend creating two references, one for Edit, one for Read Authority, so you can subjectively inherit to other solutions.
Now you'll have the inherited contacts record permission reflected at the department level to inherit to downstream use cases that need to grant access explicitly based on access.