Custom identity provider in Sitecore

Sitecore Identity was introduced in Sitecore 9.1 and uses the new Federated Authentication functionality. By using the same techniques as Sitecore Identity it's possible to implement a custom identity provider with OpenID Connect.