I've got an existing customer base. A customer has appointments. Currently they cannot access or change their appointments without contacting me directly.
I want to offer them a way to access and change their upcoming appointments, with as little hassle as possible (more effort for the customer means less chance they'll use it, and less profit).
My thought is this: Generate a UUID (as "securely random" as possible), and send them an SMS with instructions for installing an app (Android/iOS) and a associated app URL (app://UUID).
When opening the app with this URL it stores the UUID and uses this to make requests through the app to my web service with HTTPS which then fetches their appointments and potentially changes their appointments (this is the only "write" operation).
Since the app won't be available through a regular web browser I'm thinking that supplying the UUID in an app-URL will keep people from "leaving" their URL everywhere in random browsers, they will only have to use the URL once, and I control that all web service requests are done through the app on HTTPS so that the UUID isn't spilled that way.
While I'm thinking of making this UUID "last forever", I will be adding an option for customers to report their ID as lost and requesting a new ID (invalidating the old).
Given this scheme I'm thinking that:
Losing your phone means losing your identity (stored in app)
Forwarding/losing the SMS/URL means losing your identity (should not be required more than for the initial opening of the app to save identity, but I'm not expecting most people to bother to delete it even if told to)
Weak if UUID can be guessed
What pitfalls and security scenarios have I not thought of? Keep in mind that ease of use for customers is important (preferably not filling out anything/much), and while the information is concidered private it isn't very high value.
Comments on using UN/PW:
Since the customer base exists I need to know what customer has what login. I'm thinking that either they'd have to create it themselves in office (which I'd like to avoid to have as little input as possible), or give them some generated UN/PW which they can use (but then again I'm distributing it), or they create it online and somehow supply enough information to identify themselves and connect.
In general I'd like some scheme where the starting point is they can identify without any fuss given some information which I then know is them. I'm open to suggestions as I may be hoping for too much from very little information.