Genesys Cloud - Main

 View Only

Discussion Thread View
  • 1.  Using ABAC to prevent users from updating user profile fields

    Posted 03-20-2025 13:58

    The initial release of Attribute-Based Access Control (ABAC) enables administrators to prevent users from updating defined user profile fields.  To support this use case we have added an ABAC template titled "Cannot Update Certain User Profile Fields".  You can simply save this template as a policy to apply this restriction.  However, you can also make changes if you want to restrict some, but not all fields in the user profile, for example.  The purpose of this article is to provide additional information about the user profile fields to assist in this scenario.

    But, before going into details on the user profile page, let's start out by defining what is and is not covered by the ABAC template/policy. As outlined in https://help.mypurecloud.com/articles/complete-profile-2/, to access your profile, click your profile picture in the sidebar, and then click the larger profile picture.  ABAC can be used to restrict changes on this specific page.  Other fields that are associated with the user but are not included directly on the profile page (e.g. WebRTC settings, as shown below) cannot currently be restricted via an ABAC policy.  If you want to apply restrictions to WebRTC phone settings (or other settings that are not covered by ABAC at present), submit an idea via the Product Ideas page.

    ABAC uses attributes to makes access decisions.  Attributes have been developed for all of the fields on the user profile page. The following fields/attributes can be added to an ABAC policy to prevent these fields from being modified.

    Field

    Description

    images

    User profile image

    agent.name

    Agent name

    agent.profileImage

    Agent image that can be found next to the informal photos tab

    general

    User general fields include name, title and department

    general.name

    User name found below the profile page

    general.title

    User title found in the first column under user name

    general.department

    User department found in the second column under user name

    hr

    HR Section

    hr.officialName

    HR Section: Official Name Field

    hr.empId

    HR Section: Employee ID Field

    hr.empType

    HR Section: Employee Type Field

    hr.hireDate

    HR Section: Hire Date Field

    hr.emergencyContactInfo

    HR Section: Emergency Contact Info

    relationships.manager

    Relationships Section: Management Field

    relationships.administrativeAssistant

    Relationships Section: Administrative Assistants Field

    relationships.directReportCount

    Relationships Section: Direct Reports Field

    contactInfo.email_work

    Contact Information Section: Work Email Field. Additional emails will be set under the score number format (e.g. contactInfo.email_work_2).

    contactInfo.phone_work

    Contact Information Section: Work Phone Fields

    contactInfo.phone_work.number

    Contact Information Section: Work Phone Number Field

    contactInfo.phone_work.extension

    Contact Information Section: Work Phone Extension Field

    contactInfo.phone_work.countryCode

    Contact Information Section: Work Phone Country Dropdown Field

    contactInfo.phone_work_2

    Contact Information Section: Work Phone 2 Fields

    contactInfo.phone_work_3

    Contact Information Section: Work Phone 3 Fields

    contactInfo.phone_work_4

    Contact Information Section: Work Phone 4 Fields

    contactInfo.phone_home

    Contact Information Section: Home Phone Field

    contactInfo.phone_cell

    Contact Information Section: Cell Phone Field

    contactInfo.phone_other

    Contact Information Section: Other Phone Field

    primaryContactInfo

    Primary Contact Info: Radio button field for email, voice and SMS

    primaryContactInfo.voice

    Primary Contact Info: Radio button change for voice

    primaryContactInfo.sms

    Primary Contact Info: Radio button change for SMS

    primaryContactInfo.email

    Primary Contact Info: Radio button change for email

    location

    Location Section

    education

    Education Section

    bio

    Biography Section

    This provides a lot of granularity in terms of being able to control individual fields within the user profile.  However, it is more likely that you will just want to control entire sections in the user profile.  For this reason, we have just added the main section headings as preset attributes to the policy template.  The following are the preset attribute values in the template along with a diagram showing how these map to the user profile page.
    1. Images
    2. agent.name
    3. agent.profileImage
    4. general.name
    5. general.title
    6. general.department
    7. hr
    8. relationships
    9. contactInfo.email_main
    10. contactInfo.email_work
    11. contactInfo.phone_work
    12. primaryContactInfo
    13. location
    Try out the template and see if you can restrict users (who are neither supervisors nor admins) from being able to update the various fields.  If the preset attribute values (section headings) in the template are not providing the result you expect, add the specific field attribute to the policy and see whether this solves the problem. 

    For example, the inclusion of 'contactInfo.phone_work' in the policy template enables you to prevent users from updating their work phone number (item 11 in the diagram above).  If you want to also prevent users from updating work phone 2, you should also add contactInfo.phone_work_2 to the policy.  Alternatively, if you want to prevent users from updating any of the fields in the "Contact Information" section, you can add 'contactInfo' as a preset attribute to the policy (and remove the other contactInfo fields).  Using contactInfo as a preset attribute means that it operates like contactInfo.*, covering all of the following fields.  

    contactInfo.email_work

    contactInfo.phone_work

    contactInfo.phone_work.number

    contactInfo.phone_work.extension

    contactInfo.phone_work.countryCode

    contactInfo.phone_work_2

    contactInfo.phone_work_3

    contactInfo.phone_work_4

    contactInfo.phone_home

    contactInfo.phone_cell

    contactInfo.phone_other

    The profile field names are included as Preset Attributes in the Policy JSON.  See screenshot below.  You can edit the JSON to add or remove specific fields to meet your organization's requirements.
    Refer to the Genesys Cloud Resource Center for more information on creating ABAC policies and on the "Cannot Update Certain User Profile Fields" template.

    #Roadmap/NewFeatures
    #Security

    ------------------------------
    David Murray
    Principal Product Manager
    Genesys Cloud
    ------------------------------


  • 2.  RE: Using ABAC to prevent users from updating user profile fields

    Posted 03-20-2025 14:31

    Hi David,

    The level of granularity it offers for access control is a huge step forward. The initial focus on preventing unauthorized changes to profile fields and preventing non-admins to grant roles, is a great starting point for securing accounts and applying the rule of least privilege. 

    Yet, I'm curious about the roadmap for ABAC. The previous announcement itself mentions that "ABAC will evolve over time as more attributes and targets are defined." So, my main question, echoing yours, is: What other resources are planned for inclusion in the ABAC roadmap? For example, in PureConnect, we had granular access control over selectable statuses. We could define which user roles could select a specific status. This was incredibly helpful, and it's a capability we don't currently have in Genesys Cloud. Will ABAC be extended to allow this level of control over status selection?

    Having a clearer roadmap would be extremely helpful for planning and understanding the long-term direction of ABAC in Genesys Cloud. A general timeline will also be helpful to plan our implementations.

    In short, this is a promising start, and I'm eager to see how ABAC develops!

    Thanks,



    ------------------------------
    Orhun Sahin
    Software Development Engineer
    ------------------------------



  • 3.  RE: Using ABAC to prevent users from updating user profile fields
    Best Answer

    Posted 03-21-2025 13:31

    Thanks for the feedback.  The roadmap will largely be driven by customer requests for additional granularity, combined with the development capacity and priority within the relevant service team for the specific service where that granularity is required.  ABAC is a framework that can be utilised by our service teams to deliver that additional granularity by specifying targets (API calls that we need to control/restrict) and by identifying and supplying the required attributes (pieces of data used for decision making purposes).  The first step in that process is identification of needs.  What are those areas in the product where additional access controls are required?  Those requests, which should be channelled through the Product Ideas page, will be directed to the appropriate service team for prioritisation and implementation.  That's a long-winded way of telling you that it is difficult to provide an overall roadmap of what additional capabilities will be delivered and when, via ABAC.  

    However, what I can say, at this point, is that we are currently in discussions with the Outbound team on a specific use case around additional restrictions for outbound campaigns and I expect this will be one of the next use cases we will add.  

    We are also working on delivering IP-based restrictions via ABAC.  We already have an allowed IP addresses feature in the product but we can develop a more flexible solution via ABAC which will enable customers to apply more granular IP-based restrictions using either or both allowed and denied IP address scenarios.  

    Another area where we have a lot of requests for additional access control granularity is in the area of Quality Management.  As you are probably aware, we already use permission conditions to provide additional granularity for some permissions in areas such as Quality Management and Workforce Management.  In the longer term, ABAC will be used to provide further granularity, but we need to tread cautiously in the short term to avoid the potential for confusion between the two different paradigms.  However, I expect we will start to see some use cases getting implemented via ABAC later this year.  

    So, get your thinking caps on.  Where do you need additional controls applied?  Be as specific as possible - what specific action needs to be controlled, why are these controls needed and what criteria (attributes) should be used to make the decision to allow or deny access? 

    One other important point to note is that ABAC is all about restricting what a user can do, not what a user can see.  ABAC is invoked when a specific target (API or set of APIs) is called and will allow or deny access based on the policy conditions.  However, if the user has been provided access to a given view, ABAC cannot be used to filter information on that view (e.g. it can't be used to hide or obfuscate information on a page), as there is no API call being made at this point to make an access decision about.  



    ------------------------------
    David Murray
    Principal Product Manager
    Genesys Cloud
    ------------------------------



  • 4.  RE: Using ABAC to prevent users from updating user profile fields

    Posted 19 days ago

    The way the documentation explains using the section names mostly makes sense. Although, why does it list out separate fields in the general and contactInfo sections? Shouldn't it just be 'general' and 'contactInfo' to restrict the whole section?

    Also, those section wildcards don't appear to be working for me. If I just use the section name, the test shows that users can still edit fields in that section. I also tried it for real with a test user to verify that it wasn't just the policy tester that was giving odd results. As soon as I specify the exact field names, the policy works correctly. Am I doing something wrong?

    Example:

    This should be restricted, but isn't since I didn't restrict the exact field name.

    ABAC not working
    Once I restrict the exact field name, it works like I expect it to.
    ABAC working


    ------------------------------
    Dave Halderman
    Business Analyst
    ------------------------------



  • 5.  RE: Using ABAC to prevent users from updating user profile fields

    Posted 11 days ago

    Hi Dave,

    Thanks for the feedback and for testing the feature so thoroughly. 

    In terms of why we didn't just use 'general' and 'contactInfo' to restrict the whole section, this was really to provide as much flexibility as possible.  Originally when we started out with the beta for this feature, we listed all of the fields individually, but people found this confusing.  We considered changing it as you have suggested and just restricting by section.  However, we really wanted to show the flexibility of the system and the ability to configure this to meet your specific requirements, so we went with a "middle-ground" approach.  Ultimately, if you want to restrict the whole section, you can edit the policy to do exactly that.  

    In relation to the "wildcard" approach not working, this is actually a limitation of the policy simulator, rather than an issue with the policy itself.  The policy simulator (Test Policy) is designed to allow the user to perform some basic/simple tests to confirm that the policy is working as expected.  More sophisticated scenarios like the "section wildcards" aren't covered by this.  The policy simulator is doing a basic string comparison.  It is not doing the full policy evaluation which will occur when the policy is in use.  In other words, if you perform this test with a user, when the policy is enabled, you will get the correct results (and we've retested your scenario to confirm).  It is a good observation and I'll probably need to add a caveat in the documentation for the policy simulator to cover this point.  This "wildcard" scenario is probably somewhat unique, in the context of ABAC policies but we will continue to review that over time as more ABAC use cases get added.  Obviously, the closer that the policy simulator aligns with the actual policy evaluation, the better.  If we deviate too far from that ideal, it will definitely reduce the confidence in the simulator.  



    ------------------------------
    David Murray
    Principal Product Manager
    Genesys Cloud
    ------------------------------



Need Help finding something?

Check out the Genesys Knowledge Network - your all-in-one access point for Genesys resources