Ensuring widespread Sign-In with Ethereum adoption across apps and services requires serving both web3 applications and more traditional apps and services in web2. Typically, most traditional web2 services already support OpenID Connect, and were open to adding a new Identity Provider that supported the Sign-In with Ethereum workflow.
By meeting these services where they are today, we can provide a pragmatic stepping stone towards true decentralization, with an upgrade path to direct authentication. In our pursuit of best serving these organizations, we've partnered with Auth0 to offer a Sign-In with Ethereum option in their marketplace:
Auth0 is the leading platform for authentication and authorization for web2 applications and services in retail, publishing, B2B SaaS, and more. We are grateful to have worked with Auth0 and the Auth0 Lab team to bring this integration to life and drive web3-based authentication forward.
The integration uses our open-source OpenID Connect Identity Provider for Sign-In with Ethereum implementation in Rust. As mentioned in Auth0's blog on the integration, the entire workflow involved can be seen in this activity diagram:
Aside from just authenticating users, the workflow also can tap into relevant blockchain data to enhance the session, such as resolving a user's ENS name and avatar. A number of wallets are natively supported in the integration, including MetaMask, Coinbase Wallet, and more via WalletConnect.
Instructions on how to set up the integration in your Auth0 application can be found here:
Additionally, we've built an example application to show off the authentication flow which can be found here. The example features a mock NFT gallery website where users can Sign-In with Ethereum, and their NFT holdings are resolved via the OpenSea API once authenticated.
After hitting the login button, users are redirected to the Auth0 flow and Sign-In with Ethereum using the provided interface. Once authenticated, users are then redirected back to the application where they can view their gallery.
As part of the login, the application also resolves the user's ENS name if present. Users can then return to the main splash screen or disconnect from the application.
As mentioned previously, we're also working on creating a community-owned identity server, with the ENS DAO which we felt was the best credibly-neutral organization to be the infrastructure host.
If you're interested in integrating Sign-In with Ethereum into your dapp, app, or service, we are more than happy to help and provide any support we can. As we continue our work supporting Sign-In with Ethereum, we especially welcome implementers who already have users relying on similar workflows, authors of related EIPs, and wallet vendors who would like to do more to support user-owned identities to join us.
If you are interested in being involved, please join our Discord server: