Impersonation details - New feature request
O'Dowd, Josh
Josh.O'Dowd at mso.umt.edu
Mon Oct 9 12:02:31 EDT 2017
> No, because that's much riskier and more expansive than 99% of people would ever need.
> What I did was build an interceptor that obtains a list of authorized account names and directs it to re-reresolve the attribute set based on a selected account name *for a single response* to a service.
> The identity in the session never changes. It just passes out data for a different identity one request at a time, and you can plug in a function to return the list of authorized identities on a per-anything basis.
Thanks. We do have a requirement where for a given service(in a development/testing environment), a developer or tester needs to impersonate different user types(i.e., student, advisor, etc.). My solution was to implement a dedicated IdP that registers only the test/dev services. The password login offers a checkbox for requested impersonation, where the user authenticates their own credentials and a group is checked for authorization to impersonate. If authorized, the user gets an additional form to enter the impersonated ID. This is all done in an extended password-authn-flow and then I am rebuilding the authentication result before declaring 'proceed'.
I wish I had thought of your solution, using an intercept to simply change the assertion, but I couldn't get my head around how to do the request-at-a time where an SSO session already exists.
While the solution I have works well for us, you are right that it is risky, no matter how much we audit and what security protocols we put in place for authorization. I will likely try to apply this new feature to replace/rework my solution.
Josh
More information about the dev
mailing list