Authorize, don't authenticate
웹 애플리케이션의 로그인 화면은 사용자가 자신의 데이터에 접근하기 위해 애플리케이션에게 신원을 증명하는 과정인 인증(authentication)을 요구합니다. 하지만 저자는 사용자가 자신의 데이터를 소유하고 통제할 수 있도록 애플리케이션이 데이터에 접근할 권한을 부여하는 것, 즉 권한 부여(authorization)를 중심으로 접근해야 한다고 주장합니다. 이는 데이터 소유권에 대한 주체성을 확보하기 위해 애플리케이션이 아닌 사용자가 데이터베이스에 대한 통제권을 갖는 것이 핵심입니다.
이러한 접근 방식을 구현하기 위해 개인 데이터베이스 권한 부여 개념이 탐구되었으며, 이는 사용자가 소유한 데이터베이스에 애플리케이션이 접근할 수 있도록 허용하는 방식입니다. 기존의 인증 방식 대신, 애플리케이션이 사용자의 데이터베이스에 접근할 수 있도록 권한을 부여하는 OAuth2 흐름을 활용합니다. 저자는 이를 지원하는 ayb.js 라이브러리를 공개했으며, 이를 통해 개발자는 사용자가 소유한 데이터베이스에 접근 권한을 부여하는 흐름을 쉽게 구축할 수 있습니다.
이러한 기술은 데이터베이스를 개인의 소유로 두고 애플리케이션이 데이터베이스 외부의 정보(상태)를 최소화하도록 유도합니다. 궁극적으로 개발자들은 중앙 집중식 데이터베이스에 인증하는 대신 개인 데이터베이스에 대한 권한 부여를 요청하는 소프트웨어를 구축해야 한다는 방향을 제시합니다. 이는 데이터 주권을 강화하고, 향후 협업이나 로컬 우선(local-first) 커뮤니티 환경에서 사용자에게 데이터 통제권을 부여하는 데 기여할 수 있습니다.
이러한 접근 방식을 구현하기 위해 개인 데이터베이스 권한 부여 개념이 탐구되었으며, 이는 사용자가 소유한 데이터베이스에 애플리케이션이 접근할 수 있도록 허용하는 방식입니다. 기존의 인증 방식 대신, 애플리케이션이 사용자의 데이터베이스에 접근할 수 있도록 권한을 부여하는 OAuth2 흐름을 활용합니다. 저자는 이를 지원하는 ayb.js 라이브러리를 공개했으며, 이를 통해 개발자는 사용자가 소유한 데이터베이스에 접근 권한을 부여하는 흐름을 쉽게 구축할 수 있습니다.
이러한 기술은 데이터베이스를 개인의 소유로 두고 애플리케이션이 데이터베이스 외부의 정보(상태)를 최소화하도록 유도합니다. 궁극적으로 개발자들은 중앙 집중식 데이터베이스에 인증하는 대신 개인 데이터베이스에 대한 권한 부여를 요청하는 소프트웨어를 구축해야 한다는 방향을 제시합니다. 이는 데이터 주권을 강화하고, 향후 협업이나 로컬 우선(local-first) 커뮤니티 환경에서 사용자에게 데이터 통제권을 부여하는 데 기여할 수 있습니다.