There are two concerns: data and app functionality. If your data source is SharePoint, then users will need access to the sharepoint lists, which complicates security concerns, as even if you make things read-only in the app, they may still have read-write if they go to the list itself. So if your security concerns are re data, then either use a data source like dataverse OR you'll need to deal with SharePoint permissions.
If your concerns are about making certain screens or buttons, etc., available to certain users, following is the old trick on setting up role level permissions:
1. Create a SharePoint list that has two columns, Title and Value (names here don't matter). Add a row to this list for each role you want beyond regular users. So if you want admins and finance users, create two rows. The rows will have titles of "admin" and "finance", and both will have a Value of 1. Then, using SharePoint permissions, change the permissions of the items so that your desired users have read access to these items. To be clear, regular users will have access to the list, but no items. A finance users would have read access to the finance item, but not the admin item, etc.
2. In the app start of the app, add code such as:
This means that a user accesses the app, it queries the list, and if they have access to the finance item, isFinance will be true, otherwise it will be false. You can then use this variable to control the visibility or enabled properties of buttons, etc.
If you're using a model driven app, then please disregard.
Keep up to date with current events and community announcements in the Power Apps community.
A great place where you can stay up to date with community calls and interact with the speakers.
Check out the latest Community Blog from the community!