Context
Currently, Internet Identity uses two main methods to authenticate its users: passkeys and passphrases.
DFINITY is exploring the possibility of adding OpenID providers as authentication methods.
That would mean that users of Internet Identity could create an identity with Google or GitHub for example, and then use the same method to log into their favorite dapp.
OpenID providers would complement passkeys as an additional authentication method, but it would be up to the user to connect with them. Internet Identity will still prioritize passkeys as the primary method for authentication.
Why OpenID?
There are three main reasons to integrate with Open ID providers:
-
Reach a larger user base
Passkeys are a promising future technology but are not yet widely accessible or adopted. Many users either can’t use passkeys, don’t want to, or don’t know how to. By adding OpenID, Internet Identity can reach a much broader audience. -
Leverage recovery mechanisms
OpenID providers offer built-in account recovery features. For example, if a user loses their passkey but has linked their Internet Identity to Google, they can still regain access through Google on another device. -
Access from any device
OpenID enables users to log in to any dapp with Internet Identity on any device. This is particularly useful on shared or public devices where passkeys may not be an option, as users can authenticate via a familiar OpenID provider like Google.
Approach
The plan is to integrate OpenID in the following flows:
- Link an OpenID provider to your Internet Identity.
- Sign in using a linked OpenID provider.
- Register a new Internet Identity with an OpenID provider.
These flows mirror those already available for passkeys, making OpenID providers a fully integrated and first-class authentication option within Internet Identity.
Security and Privacy First
Security and privacy are fundamental principles of Internet Identity, and the following points outline the key aspects of the OpenID provider integration.
Security
-
Fully on-chain
No additional web2 component will be developed for the integration. The only web2 components are redirecting the user to the OpenID provider and an HTTP outcall from the canister to get the certificates used to verify OpenID tokens. -
Cryptographically secure
The OpenID token is bound to a cryptographic key pair during transmission to the Internet Identity canister, ensuring it cannot be intercepted and misused by unauthorized parties.
Privacy
-
Your data stays private
Internet Identity never shares any information with the OpenID provider, ensuring that your sensitive data, including your identity number, remains completely confidential. -
Minimal data storage
Only the essential OpenID profile information required for authentication is securely stored within Internet Identity and is accessible only to you.
Google As the First OpenID Provider
The first Open ID provider that Internet Identity will support will be Google.
Google has probably the most extensive user base. Gmail boasts over 1.8 billion users globally as of 2024.
However, that doesn’t mean Internet Identity will not add more Open ID providers in the future. Internet Identity will remain vigilant in responding to the community and its users’ requests.