이전에 작성한 OAuth 인증의 이해
시리즈(oauth)를 마감하는 의미로, 템플릿 프로젝트를 하나 만들어 공유합니다.
BigSquareHasNoEdge/AuthenticationBackendForFrontend: Example for authentication backend for frontend
OAuth 혹은 OIDC 를 지원하는 외부 라이브러리를 사용하지 않고, 가급적 작은 클래스들로 구성해서, 승인 흐름을 직관적으로 이해하는데 도움이 되리라 생각됩니다.
위 패턴에 맞는 닷넷의 프론트엔드 앱으로는 Blazor Webassembly Standalone app 밖에 없기 때문에, 그것을 채택했습니다.
이론적으로는, 이 앱의 컴포넌트를 Blazor Hybrid Hosting 모델을 통해 WPF 나 윈폼 등에서 직접 사용할 수는 있지만, 인증 흐름을 처리할 때는 그렇지 않습니다.
하이브리드 모델과 호환성을 유지하기 위해서는, 몇 가지 변경을 해야 하는데, 개인적으로 PWA 에 좀 더 집중하고 있고, 시간도 많지 않아 그러한 구현은 생략했습니다.
참고로, 본 시리즈의 내용과 달리, 세션을 직접 사용하지 않고, Asp.net core 가 제공하는 CookieAuthenticationScheme
을 사용하도록 변경했습니다. 변경 후의 코드는 변경 전과 동일하게 동작합니다만, 두 코드를 비교해보시면, 인증 스킴을 이해하는데, 도움이 되리라 믿습니다.
.net 9.0 으로 작성되었으니, 실행해 보려면 설치하셔야 합니다.