What role does a service account need to look up other users' GUIDs via the SOAP API?
We're building an integration that grants and revokes viewer access to sessions and folders for individual users. It signs in as a dedicated service account. The grant and revoke calls in AccessManagement (GrantUsersViewerAccessToSession, GrantUsersAccessToFolder, and the Revoke equivalents) work fine once we have the target user's Panopto user ID (GUID).
The problem is getting that GUID. Our source data only gives us the person's email address (and sometimes first and last name), for example "jdoe@example.edu", whose Panopto user key is "unified\jdoe@example.edu".
What we've tried, all against PublicAPI 4.6, UserManagement service:
- GetUserByKey for the service account itself: works
- GetUserByKey for another user's key: refused, "The current user does not have access to call this method." (s:Client)
- GetUsers with another user's GUID: refused, same fault
- ListUsers (Pagination 50 / page 0, SortBy FullName): refused, same fault
The REST endpoint GET /Panopto/api/v1/users/search does work for the account (User Based Server Application client, password grant). But it returns at most 50 results with no paging, and FirstName, LastName and Email all come back null, so Username is the only field we can match on.
Questions:
- What system role (or other permission) does an account need to call ListUsers, GetUsers and GetUserByKey for users other than itself? Is full Administrator the only option, or is there a narrower role that allows user lookup without user-management rights such as creating or deleting users and resetting passwords?
- If the account is given that access, does ListUsers return populated FirstName, LastName and Email fields? If so, we think ListUsers with a searchQuery on the email address would be sufficient on its own.
- Does searchQuery in ListUsers match on email address, or only on username and name?
- Is there any setting that would make the REST users/search endpoint return the Email field for a non-admin caller?
Any guidance appreciated. Thanks!