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を自動で適用するように設定できます。ビルド自動化を設定する方法は、次の通りです。

参考

ビルド自動化は簡単適用方式で登録した Androidアプリでのみ使用できます。

  1. NAVERクラウドプラットフォームコンソールで、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が適用されたアプリが作成され、NAVERクラウドプラットフォームコンソールにもアプリが登録されます。
      appsafer-api_result