diff --git a/doc/source/command-objects/role_assignment.rst b/doc/source/command-objects/role_assignment.rst
index cfb1079cf3..6bb24cb34c 100644
--- a/doc/source/command-objects/role_assignment.rst
+++ b/doc/source/command-objects/role_assignment.rst
@@ -15,9 +15,12 @@ List role assignments
     os role assignment list
         [--role <role>]
         [--user <user>]
+        [--user-domain <user-domain>]
         [--group <group>]
+        [--group-domain <group-domain>]
         [--domain <domain>]
         [--project <project>]
+        [--project-domain <project-domain>]
         [--effective]
         [--inherited]
 
@@ -29,10 +32,20 @@ List role assignments
 
     User to filter (name or ID)
 
+.. option:: --user-domain <user-domain>
+
+    Domain the user belongs to (name or ID).
+    This can be used in case collisions between user names exist.
+
 .. option:: --group <group>
 
     Group to filter (name or ID)
 
+.. option:: --group-domain <group-domain>
+
+    Domain the group belongs to (name or ID).
+    This can be used in case collisions between group names exist.
+
 .. option:: --domain <domain>
 
     Domain to filter (name or ID)
@@ -41,6 +54,11 @@ List role assignments
 
     Project to filter (name or ID)
 
+.. option:: --project-domain <project-domain>
+
+    Domain the project belongs to (name or ID).
+    This can be used in case collisions between project names exist.
+
 .. option:: --effective
 
     Returns only effective role assignments (defaults to False)
diff --git a/openstackclient/identity/v3/role_assignment.py b/openstackclient/identity/v3/role_assignment.py
index 24e3a7f709..92168498f7 100644
--- a/openstackclient/identity/v3/role_assignment.py
+++ b/openstackclient/identity/v3/role_assignment.py
@@ -45,11 +45,13 @@ class ListRoleAssignment(lister.Lister):
             metavar='<user>',
             help='User to filter (name or ID)',
         )
+        common.add_user_domain_option_to_parser(parser)
         user_or_group.add_argument(
             '--group',
             metavar='<group>',
             help='Group to filter (name or ID)',
         )
+        common.add_group_domain_option_to_parser(parser)
         domain_or_project = parser.add_mutually_exclusive_group()
         domain_or_project.add_argument(
             '--domain',
@@ -61,6 +63,7 @@ class ListRoleAssignment(lister.Lister):
             metavar='<project>',
             help='Project to filter (name or ID)',
         )
+        common.add_project_domain_option_to_parser(parser)
 
         return parser
 
@@ -84,6 +87,7 @@ class ListRoleAssignment(lister.Lister):
             user = common.find_user(
                 identity_client,
                 parsed_args.user,
+                parsed_args.user_domain,
             )
 
         domain = None
@@ -98,6 +102,7 @@ class ListRoleAssignment(lister.Lister):
             project = common.find_project(
                 identity_client,
                 parsed_args.project,
+                parsed_args.project_domain,
             )
 
         group = None
@@ -105,6 +110,7 @@ class ListRoleAssignment(lister.Lister):
             group = common.find_group(
                 identity_client,
                 parsed_args.group,
+                parsed_args.group_domain,
             )
 
         effective = True if parsed_args.effective else False