RE: Portal security for case management
Hi Jay,
1. Create a new entity permission record:
set scope to Contact, set relationship to contact_as_primary_contact, only assign necessary privileges

Please read the article for details about this step:
https://docs.microsoft.com/en-us/powerapps/maker/portals/configure/assign-entity-permissions
2. Add the entity permission record to a web role:

3. Assign the web role to your contact:

4. Very important:
Privileges of a web role is union,
as OOB Authenticated Users of Custom Self Service as example,
you should also remove other 2 existing entity permission records' Create privilege.
then contact who has been assigned this web role won't have access to create a case at all.

5. Result when contact tries to create case via link below:
xxx.powerappsportals.com/support/create-case/

Create case button will disappear:

Regards,
Clofly