[c] 인증 및 권한 부여
1. 인증
일반적으로, 사용자가 시스템의 리소스에 액세스하려면 먼저 인증을 해야 합니다. 이는 사용자가 자신임을 증명하는 것입니다. 많은 인증 방법이 있지만, 대표적인 방법으로는 아이디와 비밀번호를 사용한 인증, 이중 인증, 바이오메트릭스 인증, 공개키 인증 및 OAuth 같은 인증 프로토콜을 사용한 인증이 있습니다.
예를 들어, OAuth는 사용자가 항시 거래 할 필요 없이 외부 서비스에 대한 접근 권한을 부여할 수 있도록 하는 개방형 표준 프로토콜입니다. OAuth는 사용자가 서로 다른 웹 어플리케이션에서 사용자의 계정에 접근할 수 있는 보안된 방법을 제공합니다.
const { OAuth2Client } = require('google-auth-library');
const client = new OAuth2Client(CLIENT_ID);
async function verify() {
const ticket = await client.verifyIdToken({
idToken: token,
audience: CLIENT_ID, // Specify the CLIENT_ID of the app that accesses the backend
});
const payload = ticket.getPayload();
const userid = payload['sub'];
}
2. 권한 부여
인증이 완료되면, 사용자가 특정 리소스에 대한 접근 권한을 부여받아야 합니다. 이를 권한 부여라고 합니다.
예를 들어, 웹 애플리케이션에서는 사용자가 특정 페이지에 접근하기 위해 적절한 권한을 갖고 있어야 합니다. 권한 부여는 대개 역할 기반으로 이루어지는데, 각 역할에는 특정 권한이 할당되어 있습니다.
보안 측면에서, 권한 부여는 데이터 보안을 유지하는 데 중요한 요소로 작용합니다. 사용자에게 필요한 권한만 부여함으로써 데이터 유출 및 변조를 방지할 수 있습니다.
결론
인증과 권한 부여는 시스템의 보안성을 높이는 데 중요한 구성 요소입니다. 사용자가 안전하게 리소스에 액세스할 수 있도록 하기 위해 적절한 인증 및 권한 부여 메커니즘을 구현하는 것이 중요합니다.
참고 문헌:
- https://oauth.net/2/
- https://developers.google.com/identity/sign-in/web/backend-auth#using-a-google-api-client-library