검색 결과 :

×

기업들이 서비스와 애플리케이션을 연결하기 위해 API에 점점 더 의존함에 따라, 이러한 데이터 파이프라인의 보안은 매우 중요합니다. 이 사용 사례에서는 클라이언트의 Joomla 핵심 API에 대해 강력한 JSON 웹 토큰(JWT) 인증 시스템을 구현하여 API 접근을 등록 및 인증된 사용자로만 제한하는 방법을 설명합니다.

이 사용 사례는 아래 나열된 플러그인을 사용하여 원활하게 구현되었습니다. 이를 위해서는 Joomla 인스턴스에 다음 플러그인을 설치해야 합니다.

유스케이스 카드 로고

Joomla용 사용자 정의 API 확장

사용자 정의 API 플러그인을 사용하면 Joomla에서 데이터를 가져오고, 수정하고, 만들고, 삭제하기 위한 사용자 정의 엔드포인트/REST 경로를 만들 수 있습니다.

확장 프로그램 다운로드

클라이언트는 외부 애플리케이션에서 사용할 수 있도록 API를 통해 Joomla 사이트의 데이터와 기능을 공개해야 했습니다. 그러나 기본 액세스 제어는 보안 요구 사항을 충족하기에 충분하지 않았습니다. 핵심 과제는 사용자 기반 JWT 인증 시스템. 즉, API에 대한 접근 권한이 공개되거나 단순한 정적 API 키를 기반으로 할 수 없었습니다. Joomla 사이트에서 유효한 로그인 자격 증명을 가진 사용자에게만 동적으로 접근 권한을 부여해야 했습니다.

저희는 Joomla 사용자 관리 시스템과 직접 통합되는 맞춤형 인증 흐름을 설계하고 개발했습니다. 이 솔루션에는 JWT 토큰 생성을 위한 전용 API 엔드포인트이 접근 방식을 사용하면 사용자 자격 증명을 반복적으로 노출하지 않고도 모든 API 요청이 안전하게 검증됩니다.

이 JWT 기반 솔루션은 다음과 같은 여러 가지 이점을 제공합니다.

  • 보안 강화 : 토큰은 디지털로 서명되며 서버에서 검증할 수 있으므로 무단 액세스를 방지할 수 있습니다.
  • 상태 비저장 및 확장 가능: 서버는 각 사용자의 세션 정보를 저장할 필요가 없으므로 API의 효율성과 확장성이 향상됩니다.
  • 제어된 토큰 수명: 만료 시간을 설정하면 특정 기간이 지나면 토큰이 자동으로 무효화되어 손상된 토큰이 오용될 위험이 줄어듭니다.
  • 빈틈없는 통합: 기존 Joomla 사용자 데이터베이스를 활용하므로 API 액세스를 위해 별도의 자격 증명 세트를 관리할 필요가 없습니다.

인증 프로세스는 토큰 생성 및 토큰 검증이라는 두 가지 단계로 구현되었습니다.

  • 토큰 생성:
    • 사용자는 먼저 자격 증명을 새로운 보안 엔드포인트로 보내 토큰을 요청해야 합니다.
    • 이 요청에는 Joomla가 포함되어야 합니다. 사용자 이름 암호. 또한, 미리 정의된 비밀 키 그리고 원하는 만료 시간 제공되어야 합니다.
    • 저희 시스템은 Joomla 사용자 데이터베이스와 사용자 이름 및 비밀번호를 검증합니다.
    • 자격 증명이 올바르면 고유한 JWT가 생성되고 비밀 키로 서명된 후 사용자에게 다시 전송됩니다.
  • 토큰을 사용한 API 액세스:
    • 보호된 Joomla API 엔드포인트에 액세스하려면 사용자는 생성된 JWT를 포함해야 합니다. 권한 부여 요청의 헤더.
    • Joomla 사이트의 미들웨어 계층은 모든 API 호출을 가로채고, 헤더에 유효한 JWT가 있는지 확인하고, 서명과 만료 날짜를 검증합니다.
    • 토큰이 유효하면 요청이 처리됩니다. 토큰이 없거나 유효하지 않거나 만료된 경우 API는 즉시 다음을 반환합니다. 무단 401 오류로 인해 접근이 차단되었습니다.

이 맞춤형 JWT 인증 시스템을 구축함으로써 고객의 Joomla API 보안을 성공적으로 확보했습니다. 이 솔루션은 기존 Joomla 사용자 기반과 직접 연결된 현대적이고 안전하며 확장 가능한 사용자 인증 방식을 제공합니다. 이제 고객은 데이터가 보호되고 사용자별로 접근 권한이 엄격하게 제어된다는 사실을 인지하고 웹사이트를 다른 서비스 및 애플리케이션에 안전하게 연결할 수 있습니다.

  1. Joomla용 사용자 정의 API 인증
  2. Joomla용 Web3 인증
  3. Joomla 보안 방패

최대한 빨리 연락드리겠습니다

모형

 당신의 응답을 주셔서 감사합니다. 곧 다시 연락드리겠습니다.

문제가 발생했습니다. 문의사항을 다시 제출해 주세요.

차례

안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT