You can flip the the "searchFlags" on the attribute to 128 using adsiedit "Schema" snapin which makes it "Confidential" which will basically mean only domain administrators can view the values. Does that work for your situation? Probably not, you dont want to use a domain admin service account for PWM. So, after you set the searchFlags to 128 you need to go into more configuration, I use LDP, you need to edit/add the DACL grant CONTROL_ACCESS on the attribute for the PWM user or best option is to create a security group, add your accounts that need to read confidential bits to that group then in the DACL set the rights for that group. One very important note, when you have the ACL editor open in LDP you might want to click the sort button for Trustee to make it easier to find entries, DONT DO THIS! If you do it will save the permissions in that order and next time you go into ADUC you will get an error saying permissions are out of order, easy to fix, just go back into LDP and sort again but this time sort by Type and ensure Deny entries come first at top :D
Here's a link to MS docs on confidential bit plus on the needed changes to give non-admins read/write to it,
I have done this numerous times over a ton of attributes, for users and group membership viewing. Have worked mainly in higher education and safe guarding FERPA/PII data is necessary such as viewing group memberships.
Some attributes, except if you added new ones for PWM, cannot be set confidential such as mobile, otherMailbox. In order to prevent read access to those you have to remove those attributes from the default property set rights. Pretty easy using adsiedit then set deny read as usual, more on that if you need it, just let me know.
Thanks!