I have a question that I am unable to answer to my self the last days.
Any help and thoughts would help for sure. I am curious why nobody provides an authentication service that would work with OAuth 2.0/OpenID with privacy on it's centre. Let me explain my self further.
It would be lovely if there was a service where I could make an account, verify that I am a real human and then I could use them to login to various apps or platforms.
I would love to see a substitute of Facebook/Google login with data privacy in the centre. And for data to be safe and not distributed for advertising reasons, this service would need money to survive. So I would pay for that kind of a service.
Have anyone thought or worked on anything like this? Why it is not feasible so far? Any thoughts?
ProtonMail someone would say can be a way of implementing this, if we sign in with our ProtonMail email. So then, why they do not create an OAuth 2.0/OpenID services to let their users signup anywhere they want with ease?
Privacy isn't actually an easy one on this one. This provider would need to provide a way to "remember" you well enough to allow you to recover parts of your account (any of the credentials, basically). To do this, you do need to store a modicum of data about the user. Ideally: - Email address or other form of contact - Challenge-response (to prove you didn't just magically gain access to the email address) This alone provides huge problems if your goal is privacy, at least when managing the relationship between users of your service and you. You will need to store some of that data, and you need to guarantee that it is safe.
On the link between you and the third-party applications, things get both easier and more complicated at the same time. The OpenID spec specifies that an id_token needs to contain the following, based on scope: - email: email, email_verified - profile: name, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, updated_at In order to provide the privacy you're describing, there needs to be a way for a user, when going through the authentication flow, to allow, deny or spoof the data. Most websites requesting openID will not let you through the gates if you deny one of their scopes, for instance, so the service needs to be able to handle the spoofing part.
The data also needs to be impossible to cross-reference if a parameter is spoofed. Quick thoughts on that: - The email spoofing must be unique per application ID - The field spoofing must be unpredictable enough - All fields of the id_token that can uniquely identify the user must be unique per app, to prevent cross-referencing. The token<->profile lookup must be able to understand this
On the whole, with careful thought about the scope of this, it might actually be pretty straightforward.