Story of an professional experience
To start, i tell you briefly the story of an profesionnal experience:
During a professional project, i was asked to set up an Openid Connect Server on a single sign-on portal based on Oauth2.
During the project start-up meeting, i explained the architecture i intended to implement, based on hexagonal architecture.
The developer responsible for one of the client application that will communicate with the Openid Connect Server, was disappointed with my choice of architecture because he thought that it was complicated to implement. And will make us loose a lot time to complete the project… especially we had time constraints.
Finally the developper had problems to connect his application with Openid Connect Server, and did not have enough possibility to debug because he had implement his solution in a very coupled way.
After many failured, he ended up using a decoupled architecture to easily debug the flows.
Ultimately his work took twice as long to complete than mine.
This experience teaches us the importance of a robust architecture for our projects.
The hexagonal architecture has many advantages:
✓ Decouple your business code from the rest of application.
✓ Facilitate units tests.
✓ Facilitate debugging.
✓ Facilitate long-term maintainability.
✓ Save time in the long term.
Architecture with OpenID Connect Server using Authorization Code Flow
See implementation details in article http://oumarkonate.com/openid-connect-a-concrete-implementation-from-an-oauth2-server-part-1/