일단 진행시켜

OAuth를 통한 진화된 사용자 인증 본문

🗞️ 보안 동향 파악 및 나의 생각 정리

OAuth를 통한 진화된 사용자 인증

2024. 9. 12. 15:27

1. Master Difficult User Authentication Requirements with OAuth

https://thenewstack.io/master-difficult-user-authentication-requirements-with-oauth/

 

Master Difficult User Authentication Requirements with OAuth

Many organizations fail to recognize that user authentication for your digital services will evolve. Here’s how to switch methods.

thenewstack.io

 

 

 

[ 요약정리 ]

해당 게시물은 디지털 서비스에 대한 사용자 인증이 진화할 것임을 주장하며 OAuth를 사용한 고도의 사용자 인증 전환 방법을 제시한다.

 

사용자 인증은 점점 진화할 것이다. 인증 방법 변경 추천 이유는 아래와 같다.

1. 보안 강화 및 강력한 고객 인증(SCA) 요구 사항 충족 가능

2. 앱 멈춤/잠김 현상을 줄여 로그인 사용자 환경을 개선할 수 있음

3. 중요한 이해 관계자로부터 요청을 받을 수 있음.(ex. 중요한 고객 기업이 앱이 인증 시스템을 사용하여 사용자 인증을 하도록 요구할 수 있음)

4. 사용자를 대신하여 해당 시스템의 API를 호출하려면 특정 시스템에서 사용자를 인증해야 할 수 도 있음

 

 

1. OAuth?

  • API, 클라이언트, 사용자를 안전하게 연결하기 위한 인증 및 권한 부여 프레임워크
  • API 보안을 위한 강력한 설계 패턴으로, 액세스 토큰을 통해 인증이 진행된다.
  • 확장성과 유연성

OAuth 인증 방식

1. 프론트엔드 애플리케이션(클라이언트)이 사용자의 인증을 요청

2. 인증 서버가 사용자 인증 후, 클라이언트에 인증 코드를 제공

3. 클라이언트는 이 코드를 액세스 토큰으로 교환

4. 토큰을 활용하여 사용자 권한을 확인하고 API에 안전하게 접근할 수 있음

 

위와 같은 OAuth 매커니즘을 통해 비밀번호 공유 없이 외부 애플리케이션이 제한된 자원에 접근할 수 있게 된다.

 

 

 

2. OAuth는 인증 프로토콜이 아니다

 

OAuth는 제3자에게 액세스를 부여해야 할 때에만 사용하는 프로토콜이 아니다!

OAuth는 API, 클라이언트 및 사용자를 포함한 모든 솔루션을 위한 안전하고 현대적인 보안 프레임워크다.

즉, OAuth는 사용자 인증을 우회하지 않는다는 이야기다.

 

사용자 신원을 증명하는 방법을 딱히 정의하지 않는다. 권한 부여 서버의 구현에 전적으로 맡겨지는 부분이다.

사용자 인증을 위한 수많은 솔루션이 존재하는 것이 그 이유다.

 

 

3. OAuth로 인증 확장? 어떻게?

인증 확장 전에, 기능을 이해할 필요가 있다.

최고의 권한 부여 서버는 여러 방식의 사용자 인증 방법을 제공한다.

1. 비밀번호 + 다중 인증(MFA)

2. 패스키

3. 디지털 지갑

4. 표준 기반 외부 시스템

5. 기타 외부 시스템

6. 사용자 정의 인증 방법

 

이처럼 다양한 인증 방법이 존재하고 진화하고 있어 OAuth는 사용자 신원 증명을 정의하지 않는다.

 

중요한 점은 OAuth의 코드 흐름이 보안 문제를 권한 서버로 분리하여,
프론트엔드 애플리케이션에서 코드 변경 없이 인증 방식을 변경할 수 있다는 점이다!

 

 

 

 

결론

모든 프론트엔드 애플리케이션에서 인증 요구 사항을 완전히 제어하려면 다음 단계를 따르면 된다

1. 코드 흐름을 구현하여 사용자 인증 시작

2. 최신 인증 표준을 지원하는 권한 부여 서버를 사용하여 인증 방법을 확장

3. 외부 IDP와 연결되는 권한 부여 서버로 비즈니스 통합을 확장

4. 맞춤형 요구 사항이 있을 경우, 사용자 정의 인증을 구현하여 장애를 방지

 

 

 


 

🤔 이에 대한 나의 생각

최근 패스워드 없는 인증 방법이 점점 더 선호되는 추세인 것 같다. 패스키나 생체인증 같은 방식이 도입되면서, 비밀번호를 기억할 필요 없이 더 안전하고 사용자 친화적인 인증 방식을 사용할 수 있게 된 것 같다. OAuth 같은 프레임워크는 이러한 흐름에 잘 맞고, 인증 방법을 유연하게 적용할 수 있어 보안과 사용자 경험을 모두 향상할 수 있다. 앞으로는 비밀번호보다 더 직관적이고 안전한 인증 방식이 표준이 될 것으로 예상된다.

 

그렇다면, 비밀번호 없는 인증 방식이 확산되면서도 보안 관점(?)에서 주의할 점이 무엇이 있을까 생각해봤다.

 

  • 다중 인증(2FA/MFA): 비밀번호가 없어도 추가적인 보안 계층을 제공하여 인증의 안전성을 강화해야 함
  • 패스키 관리: 패스키의 안전한 관리를 통해 노출이나 도난 방지 필수!
  • 알림과 모니터링: 비정상적인 인증 시도에 대해 즉시 알림을 받고 모니터링 시스템을 갖출 필요가 있음
  • 업데이트와 교육: 최신 보안 패치를 적용하고 사용자에게 보안 교육을 제공하여 보안 위협에 대응해야 함

비록 내 뇌피셜(?)이지만..

이러한 점들을 고려하여, 비밀번호 없는 인증 방식이 보다 안전하고 효율적인 인증의 표준으로 자리 잡을 것으로 기대된다.