This PR rolls up several changes to make it easier to use an Ipsilon server using testauth running on localhost (in a podman pod) as the auth backend for a container-based Bodhi development environment.
The HTTP config file changes are a bit arguable, I guess, so I split them into two commits so we can take the first without the second if wanted. I could get by with neither of them, it'd just mean doing a bit more work in the container file, but I do think overall they make sense.
The default attribute mapping change makes a Bodhi client work without the ipa extension, which without this commit is the only easy way to set the default attribute mapping (otherwise we'd have to hack it straight into the database, which is kind of a pain). We need to map a few attributes that Bodhi expects to see (like 'groups' and 'nickname').
The special-username-groups mechanism isn't strictly required but it makes it much easier to test the effects of different group memberships in the Bodhi dev env without having to e.g. change the --testauth-groups arg and redeploy. You can use the "user is always a member of the group with the same name" mechanism to some extent, but if you want a user to be a member of two specific groups, or you want to make a user not a member of a group that's in the default groups, that's not flexible enough. Initially I implemented this as a deploy-time config setting to specify "special users", but I like this more - it's way more flexible and actually shorter/easier code.
This PR rolls up several changes to make it easier to use an Ipsilon server using testauth running on localhost (in a podman pod) as the auth backend for a container-based Bodhi development environment.
The HTTP config file changes are a bit arguable, I guess, so I split them into two commits so we can take the first without the second if wanted. I could get by with neither of them, it'd just mean doing a bit more work in the container file, but I do think overall they make sense.
The default attribute mapping change makes a Bodhi client work without the ipa extension, which without this commit is the only easy way to set the default attribute mapping (otherwise we'd have to hack it straight into the database, which is kind of a pain). We need to map a few attributes that Bodhi expects to see (like 'groups' and 'nickname').
The special-username-groups mechanism isn't strictly required but it makes it much easier to test the effects of different group memberships in the Bodhi dev env without having to e.g. change the
--testauth-groupsarg and redeploy. You can use the "user is always a member of the group with the same name" mechanism to some extent, but if you want a user to be a member of two specific groups, or you want to make a user not a member of a group that's in the default groups, that's not flexible enough. Initially I implemented this as a deploy-time config setting to specify "special users", but I like this more - it's way more flexible and actually shorter/easier code.