kevinoconnor7 / osTicket-auth-cas

JASIG CAS Authentication plugin for osTicket
GNU General Public License v2.0
13 stars 8 forks source link

Support for claims other than email and name? #25

Closed sevmonster closed 3 years ago

sevmonster commented 3 years ago

I've read that you don't really support this much anymore, but I was wondering how trivial it would be to support other claims for clients. We make extensive use of AD sAMAccountName, employeeId, and extensionAttribute2 fields, so I would like to pass these through CAS and assign them to the client as it is provisioned. On the expectation that that's something you don't want to take on, can I at least ask how difficult you think that would be before I dive into it? Of course, we will be using custom properties on the Contact Information form to store these.

Thanks in advance.

kevinoconnor7 commented 3 years ago

Yup! This is doable. We construct the user profile here. Currently we only populate the name and email fields, but any other user information fields that you have defined would be valid.

I admit that there's some weird logic here. I store the values separately in the sessions, then read them back out to form the profile. I vaguely recall doing that to handle some redirects that osticket requires. Ideally we would just store the profile itself in the session which would simplify things to make this more reusable.

In terms of mapping custom attributes, I think that's doable. We can probably add a setting to the plugin that lets you map a CAS attribute to user field using CSV syntax; something like:

<cas attribute 1>,<user field 1>
<cas attribute 2>,<user field 2>

The valid field names come from whatever you have defined in Admin Panel -> Manage -> Forms -> Contact Information -> Variable column.

This all being said: I'm probably not going to implement this myself. I'm happy to review a pull request though! Hopefully I gave enough pointers here for someone to get started though.

sevmonster commented 3 years ago

I am on a major time crunch so I can't say I'll be able to get any dynamic functionality done. If I ever have time I'll push a PR your way. Otherwise the best I can probably do right now is a patch for anyone that wants to hard-code some values in themsevles.

sevmonster commented 3 years ago

@kevinoconnor7 I lied, I actually went ahead and did what you suggested. I will send the PR tonight or tomorrow after we finish first round of testing.

Thank you for the pointers by the way, I liked your design and it helped me create the patch.

Edit: Going to be a bit longer.

sevmonster commented 3 years ago

@kevinoconnor7 Opened #26

kevinoconnor7 commented 3 years ago

Fixed by #26.