I am planning to create a gui based app that will display mailbox permissions. The aim is to make it available to help desk folks so that they can perform level 1 troubleshooting. Workflow is that upon launching, app connects to Exchange online using service account credentials and gathers permissions and displays it back. I am stuck at point on how to make this app highly available, meaning if 50 users launch the app, there will be 50 sessions with Exchange online (not sure if that is even possible).Is there a better approach to achieve this. Thanks in advance.
That’s not what “highly available” means; highly available refers to a solution’s ability to survive a failure of one or more components. You’re perhaps referring to ‘scalable.’ That depends entirely on whether you are, in fact, permitted to make that many open connections to Exchange Online. You’d need to contact Microsoft about that, however; it’s not a technical question - it’s a functional one that they control. There’s no other way to do it, though. If you want to query information from Exchange, you need to open a connection to it. There’s no way to “share” connections across multiple users on different client computers.
That said, any given user would only need to have an open connection for long enough to make their query. So long as you’re not trying to query every permission on every mailbox at once, the query should run quickly and be able to let the connection close. So you should be fine.
I’ll also suggest that your help desk folks would do well to start learning how to use a command-line instead of a GUI. You could write a very simple script (a PowerShell command) which could query the permissions on a mailbox very quickly, and writing such a script would be incredibly faster than writing a GUI. So what if the permissions are displayed in a GUI or in text? It’s the same information. Or, use Out-GridView to display the information in a “GUI,” without having to do all the work yourself.
I’d try to avoid perpetuating the “crutch” of a GUI if possible. Save everyone the time and effort. Looking at a screen of text isn’t going to make anyone’s eyes fall out, right ?
Thanks Don. I now know which direction to go into. Saves me lot of time by just publishing powershell console to help desk.