IBM Cloud Internet Services를 사용하여 사이트 전체에 기본 인증 적용

목적



IBM Cloud Internet Services(CIS)는 Cloudflare를 이용한 CDN 및 WAF 기능을 제공하는 서비스입니다. 엔터프라이즈 계획(예: 엔터프라이즈 사용, 엔터프라이즈 패키지 등)에서는 Edge Functions라는 기능을 사용하여 스크립트를 요청 전후에 끼울 수 있습니다.

Edge Functions는 Cloudflare에서 Cloudflare Workers라는 기능입니다.

이제 공개 사이트를 비공개로 만들기 위해 기본 인증을 사용하고 싶을 수도 있습니다. 이번에는 CIS의 Edge Functions를 사용하여 Basic 인증을 걸어 보겠습니다.

검증



전제


  • CIS Enterprise 플랜이 주문됨
  • 대상 웹 서버에 대한 GLB가 설정되어 있어야합니다

  • 비밀번호 생성



    Basic 인증 암호는 ID:パスワード를 Base64로 인코딩합니다. 이번에는 ID를 user1, 암호를 hogehoge, 다음과 같이 Base64 인코딩 문자열을 생성합니다.
    $ echo -n "user1:hogehoge" | base64
    dXNlcjE6aG9nZWhvZ2U=
    

    액션 등록



    콘솔에서 만들기를 선택합니다.



    다음과 유사한 코드를 설정합니다. Basic ~ 곳은 방금 생성한 Base64 인코딩 문자열입니다.
    addEventListener('fetch', event => {
        event.respondWith(fetchAndApply(event.request));
    });
    
    async function fetchAndApply(request) {
        if (request.headers.get('authorization') != 'Basic dXNlcjE6aG9nZWhvZ2U=') {
            response = new Response('', { status: 401, statusText: 'Unauthorized' });
            response.headers.set('WWW-Authenticate', 'Basic realm="Authentication Required"');
            return response;
        }
    
        return fetch(request);
    }
    

    여기에 기본 auth라는 이름으로 저장합니다.



    그런 다음 이를 적용할 URL을 지정합니다. 트리거 탭에서 트리거 추가를 선택합니다.



    트리거 URL은 전체 사이트라면 FQDN으로 좋습니다. 작업에 기본 auth를 선택하고 저장합니다.



    동작 확인



    브라우저에서 사이트에 액세스합니다. 기본 인증 대화 상자가 표시됩니다.



    이제 방금 지정한 ID와 비밀번호로 로그인할 수 있는지 확인합니다.

    이상

    좋은 웹페이지 즐겨찾기