I think I got it (in Xena)
I noticed that my keystone was not restricting out-of-scope commands (such as creating a group using a project-scoped token in a domain you don't have a role in)
I added this in /etc/keystone/keystone.conf:
[oslo_policy]
enforce_scope = true
It baffles me that this defaults to false
After adding this, the group policies started being enforced correctly (I get a 403 if I don't use the domain-scoped token of the correct domain)
Further testing reveals that the admin project is also throwing 403's when I try to interact with it using a token that is scoped to testProjectA
https://docs.openstack.org/keystone/xena/install/keystone-install-ubuntu.html#finalize-the-installation
One slight note, the keystone setup instructions at the bottom of the above link will give you a project-scoped token on the admin project, and your openstack command will be restricted accordingly
I changed mine to this so that im using a system scoped token instead
export OS_AUTH_URL=http://dal-eq3-ctrl-001:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_USER_DOMAIN_NAME=Default
export OS_USERNAME=admin
export OS_PASSWORD=<pass>
export OS_SYSTEM_SCOPE=all