App Safer Open API 사용

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

App Safer의 App Management 기능을 Open API로 사용하는 방법을 설명합니다.

참고

AppSafer Open API는 별도의 이용 신청 없이 사용할 수 있으며, API 명세서는 Swagger UI를 통해 확인할 수 있습니다.

빌드 자동화

App Safer Open API에서 앱을 빌드할 때 App Safer가 자동으로 적용되도록 설정할 수 있습니다. 빌드 자동화를 설정하는 방법은 다음과 같습니다.

참고

빌드 자동화는 간편 적용 방식으로 등록한 안드로이드 앱에서만 사용할 수 있습니다.

  1. 네이버 클라우드 플랫폼 콘솔에서 i_menu > Services > Security > App Safer 메뉴를 차례대로 클릭해 주십시오.

  2. App Management 메뉴에서 앱을 등록해 주십시오.

    • 앱 등록 방법에 대한 자세한 설명은 앱 등록을 참조해 주십시오.
  3. App Management 메뉴에서 나타나는 앱 목록 중 원하는 앱을 클릭해 주십시오.

  4. 선택 시 펼쳐지는 상세 정보 영역에서 등록 설정[상세 보기] 버튼을 클릭해 주십시오.
    appsafer-api_detail_ko

  5. 등록 설정 보기 팝업 창의 하단에 있는 [스크립트 다운로드] 버튼을 클릭해 주십시오.

    • 스크립트 파일이 로컬 PC로 다운로드됩니다.
  6. API 인증키를 참조하여 API 인증키를 확인해 주십시오.

    • API 이용 시 필요하므로 Access Key와 Secret Key 값을 복사해 주십시오.
    • 서브 계정 이용 시, My Account > 계정 및 보안 관리 > 보안 관리 > 접근 관리 > API 인증키 관리 메뉴가 표시되지 않는다면 메인 계정이 API Gateway 접근을 허용하지 않은 것입니다. 메인 계정에게 API Gateway 접근 권한을 요청해 주십시오.
    • 서브 계정의 경우 권한이 없는 API 요청은 거부됩니다. 스크립트를 실행하기 전에 다음의 권한이 추가되어 있는지 확인해 주십시오.
      • createPackage
      • getPackageDetail
      • downloadPackage
  7. API 툴에서 스크립트가 정상적으로 실행되는지 확인해 주십시오.

     usage: appsafer.py [-h] --access-key ACCESS_KEY --secret-key SECRET_KEY
                         package out
    
    • 정상 실행 시 다음의 화면이 나타납니다.
      appsafer-api_sample.png
  8. 다운로드한 스크립트 파일을 프로젝트 내의 build.gradle 파일과 동일한 경로에 복사해 주십시오.

  9. build.gradle 파일에 아래 코드를 추가하고, Access Key와 Secret Key를 입력해 주십시오.

    • APK
    // * prepare for apk * /
    applicationVariants.all { variant ->
        def accessKey = "{ACCESS_KEY}";
        def secretKey = "{SECRET_KEY}";
    
        def apkPath = variant.outputs.stream().map({i -> i.getOutputFile()}).findFirst().get().getAbsolutePath();
        variant.getPackageApplicationProvider().get().doLast() {
            exec {
                commandLine 'python', 'appsafer.py', apkPath, apkPath, "--access-key", accessKey, "--secret-key", secretKey
            }
        }
    }
    
    • App Bundle
    // * prepare for bundle * /
    applicationVariants.all { variant ->
        def accessKey = "{ACCESS_KEY}";
        def secretKey = "{SECRET_KEY}";
    
        def bundleTaskName = "package${variant.name.capitalize()}Bundle"
        def bundleTask = tasks.findByPath(bundleTaskName)
    
        def bundlePath = bundleTask.bundleFile.get().getAsFile().getAbsolutePath()
        bundleTask.doLast {
            exec {
                    commandLine 'python', 'appsafer.py', bundlePath, bundlePath, "--access-key", accessKey, "--secret-key", secretKey
            }
        }
    }
    
  10. 빌드를 실행하여 결과를 확인해 주십시오.

    • 성공 시 outputs 파일에 자동으로 App Safer가 적용된 앱이 생성되며, 네이버 클라우드 플랫폼 콘솔에서도 앱이 등록됩니다.
      appsafer-api_result