Knox Standard SDK

test

Knox Standard SDK

Tutorials

Get started with the Knox Standard SDK

이 튜토리얼에서는 앱에서 Samsung Knox Standard SDK를 사용하는 방법을 설명합니다.

Samsung Knox Standard SDK를 사용하면 사용자가 휴대 기기에서 사용할 수있는 기능을 정의하는 엔터프라이즈 앱을 만들 수 있습니다. Samsung Knox API를 사용하여 정책을 설정하여 사용자가 사용할 수있는 기능을 제어 할 수 있습니다. 예를 들어 회사 장치에서 카메라 사용을 비활성화 할 수 있습니다.

이 자습서에서는 Android 앱을 만드는 데 익숙한 것으로 가정하고 샘플 앱에서 Knox Standard SDK를 사용하는 방법을 설명합니다. 여기에는 앱의 기기 관리자를 활성화하는 방법, 라이선스 이벤트를받는 방법 및 정책을 사용하는 방법 등이 포함됩니다. 제한하거나 기능을 허용하십시오. 단계별 앱 개발 가이드가 될 의도는 없습니다. 샘플 앱 소스 코드를 다운로드하여 완벽한 앱의 컨텍스트에서이 튜토리얼에서 강조 표시된 코드를 볼 수 있도록하는 것이 좋습니다. Android Studio를 사용하여 샘플 앱을 가져 와서 컴파일하면 Knox Standard SDK를 사용하는 앱을 컴파일 할 수 있는지 확인할 수 있습니다. SDK를 다운로드하고 Knox 표준 SDK 라이브러리를 설치하는 방법에 대한 자세한 내용은 Knox Standard SDK 개발자 가이드를 참조하십시오.

시작하기 전에

  • Knox Standard SDK 다운로드

  • 이 자습서의 전체 소스 코드 다운로드 (선택 사항)

이 자습서에서는 다음을 수행하는 방법을 학습합니다.

  • 엔터프라이즈 라이선스 받기

  • 기기 관리자 활성화

  • 엔터프라이즈 라이선스 활성화

  • 정책 사용 앱의 장치 관리자 비활성화

엔터프라이즈 라이선스 받기

앱에서 녹스 표준 SDK를 사용하려면 엔터프라이즈 라이선스 관리 (ELM) 키라고도하는 엔터프라이즈 라이선스를 얻어야합니다.

왜 엔터프라이즈 라이센스가 필요합니까? Samsung Knox는 라이센스 관리자 서버를 사용하여 장치를 제어 할 수있는 앱을 식별하고 인증합니다. ELM 키는 MDM (Mobile Device Management) 또는 사용자 정의 엔터프라이즈 솔루션으로 관리하는 모든 장치로 전달됩니다. ELM 키가 손상된 경우 Samsung에서 해지 할 수 있으며 손상된 키를 사용하는 앱은 장치를 제어 할 수 없습니다.

라이센스 키 페이지에서 엔터프라이즈 라이센스를 요청할 수 있습니다.

개발 또는 프로덕션 키를 생성할지 여부를 선택하고 키 별칭 (예 : MDMKEY)을 입력 한 다음 라이센스 키 생성을 클릭합니다. 재판매 금지 계약서 (SEAP Not Resale Agreement)가 나타납니다.

Knox Standard SDK keys

Enterprise license key (Development)    
AADC10C880F7080532FA2E987D23E64177BB266DA2DCD9E0CBD604EDAA406C0675E644C353FB97F25FEDE529FAC6745553E1F43CE54F7AB1E241B1EA41607C6F
com.moonbc.knox 
Nov 10, 2016    
Feb 10, 2017

기기 관리자 활성화

Android의 Device Administration API는 보안 인식 응용 프로그램을 만들 수있는 시스템 수준의 장치 관리 기능을 제공합니다. Android의 Device Administration에서는 Device Administration API를 사용하여 기기 관리 앱을 만드는 방법에 대해 자세히 설명합니다.

Samsung Knox Standard SDK는 삼성 기기에 대한 추가 제어 기능을 제공하며 표준 Android보다 훨씬 더 많은 정책을 제공합니다. 기기 관리 API와 Samsung Knox Standard SDK의 결합 된 기능을 사용하여 사용자가 기기에 설치하는 기기 관리 앱을 만들 수 있습니다.

앱이 기기 관리자가 되려고하면 사용자에게 기기 관리자에게 앱을 부여할지 여부를 선택할 수있는 대화 상자가 표시됩니다.

기기 관리 앱을 만들려면 앱에 수신자 클래스를 포함시켜 앱의 매니페스트에 포함시켜야합니다. 수신기는 BIND_DEVICE_ADMIN 권한과 ACTION_DEVICE_ADMIN_ENABLED 의도에 응답하는 기능을 모두 갖춘 DeviceAdminReceiver의 하위 클래스 여야하며 매니페스트는 사용중인 보안 정책 목록도 포함해야합니다.

샘플 앱의 SampleAdminReceiver는 DeviceAdminReceiver 하위 클래스입니다. 다운로드 한 앱의 AndroidManifest.xml 파일을 열면 SampleAdminReceiver가 매니페스트에 정의 된 위치를 볼 수 있습니다. AndroidManifest.xml에서 다음과 같이 정의됩니다.

<receiver
    android:name="com.samsung.business.sdk.standard.demo1.SampleAdminReceiver"
    android:description="@string/enterprise_device_admin_description"
    android:label="@string/enterprise_device_admin"
    android:permission="android.permission.BIND_DEVICE_ADMIN" >
    <meta-data android:name="android.app.device_admin"
               android:resource="@xml/device_admin_reciever" />
 
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>
</receiver>

Android Manifest 파일의 요소에 대한 자세한 내용은 Android의 문서를 참조하십시오.
<meta-data> 항목에서 앱에서 사용하는 보안 정책을 식별해야합니다. Android Device Administrator 정책은 xml / device_admin_reciever 파일에 정의되어 있습니다. 삼성 Knox 표준 하드웨어 정책을 사용하여 카메라를 사용 중지하므로 기본 Android 정책을 지정할 필요가 없습니다.

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
    </uses-policies>
</device-admin>
 

대신 Samsung Knox Standard SDK 제한 정책을 사용하려면 매니페스트에 직접 추가해야합니다. RestrictionPolicy.setCameraState () 상태에 대한 API 참조는 ‘이 API는 발신자가 서명의 보호 수준을 가진 "android.permission.sec.MDM_HW_CONTROL"권한을 필요로합니다. 따라서 매니페스트에 권한을 추가해야합니다.

 <uses-permission android:name="android.permission.sec.MDM_HW_CONTROL" />

다음은 기기 관리 앱에서 수행 할 수있는 잠재적인 작업입니다. 이러한 정책은 사용자가 기기 관리자로 앱을 활성화하도록 선택한 경우 앱이 수행 할 수있는 잠재적인 작업으로 사용자에게 표시됩니다.
샘플 앱에서 관리자 활성화를 탭하면 DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN 활동이 시작되어 앱을 기기 관리자로 추가합니다.

private void processOne() { 
   Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
   intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdmin);
   startActivityForResult(intent, DEVICE_ADMIN_ADD_RESULT_ENABLE);
}

앱을 컴파일하고 실행하십시오. 관리자 활성화를 누릅니다. DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN 활동으로 인해 시스템에서 장치 관리자 활성화가 표시됩니까? 화면. 이 화면은 앱이 기기 관리자로 활성화 된 경우 앱이 수행 할 수있는 작업을 나열합니다.

 ![activate_device_admin_final](https://seap.samsung.com/knoxportal/files/activate_device_admin_final.png)

ACTIVATE를 탭합니다. 컨트롤은 android.app.action.DEVICE_ADMIN_ENABLED 인텐트를 받고 onActivityResult() 콜백을 통해 SampleAdminReceiver.onEnabled()를 통해 앱에 반환됩니다.

  ![activate_device_admin_final](https://seap.samsung.com/knoxportal/files/device_admin_enabled_final.png)
  
  Toggle 카메라는 장치 관리자가 활성화 될 때 onActivityResult () 메서드로 활성화됩니다. 이는 앱에 이제 카메라 토글을 탭하면 설정된 setCameraState () 호출과 같은 정책 관련 API 호출을 실행하는 데 필요한 권한이 있기 때문입니다.

엔터프라이즈 라이선스 활성화

삼성 Knox 표준 SDK API를 사용하려면 엔터프라이즈 라이센스를 활성화해야합니다.
ELM 라이센스의 유효성을 검사하면 edm.intent.action.license.status 인텐트가 생성됩니다. 앱은 SampleLicenseReceiver 클래스를 사용하여이 의도를 가로 채기합니다. 클래스는 다음과 같이 매니페스트 파일의 수신기로 구성됩니다.

<receiver android:name="com.samsung.business.sdk.standard.demo1.SampleLicenseReceiver" android:enabled="true" >
   <intent-filter>
       <action android:name="edm.intent.action.license.status" />
   </intent-filter>
</receiver>

응용 프로그램이 edm.intent.action.license.status 인텐트를 받으면 SampleLicenseReceiver.onReceive () 의도를 전달합니다. 이 방법은 활성화되는 ELM 라이센스에 앱을 응답하게합니다. 예를 들어, Knox API를 사용해야하는 버튼을 활성화 할 수 있습니다.

MainActivity.java의 demoELMKey 변수에 "Enterprise License 받기"단계에서 ELM 키를 복사하십시오.

private final static String demoELMKey = "****Replace this string with your Samsung ELM SDK Licence Key****";

ELM 키는 데모 용으로 샘플 앱에 하드 코딩되어 있습니다. 엔터프라이즈 응용 프로그램에서는 보안 연결을 통해 웹 서비스에서 키를 가져와야합니다. 이렇게하면 키가 손상 될 가능성이 줄어 듭니다. 키가 손상되어 삼성에서 대체 키를 발행하면 잘못된 하드 코드 키를 사용하려고 시도하지 않고 앱에서 새 키를 검색하여 사용합니다. android.app.enterprise.license.EnterpriseLicenseManager에서 activateLicense () 메소드를 사용하여 엔터프라이즈 라이센스를 활성화 할 수 있습니다. 이 방법에 ELM 키를 전달하십시오. 앱의이 코드 스니펫은 라이선스 활성화에 사용 된 API 호출을 보여줍니다.

elm.activateLicense(demoELMKey);

ELM 키는 데모 용으로 샘플 앱에 하드 코딩되어 있습니다. 엔터프라이즈 응용 프로그램에서는 보안 연결을 통해 웹 서비스에서 키를 가져와야합니다. 이렇게하면 키가 손상 될 가능성이 줄어 듭니다. 키가 손상되어 삼성에서 대체 키를 발행하면 잘못된 하드 코드 키를 사용하려고 시도하지 않고 앱에서 새 키를 검색하여 사용합니다.
앱에서이를 테스트하려면 카메라 전환을 탭합니다. Toggle Camera를 처음 누를 때 activateLicense () 호출은 시스템에 개인 정보 보호 정책을 표시합니다.

라이센스를 활성화하려면 상자를 선택하여 개인 정보 보호 정책의 조항을 승인하고 동의 한 다음 확인을 누릅니다. 이것은 SampleAdminReceiver.onEnabled ()가 수신하는 edm.intent.action.license.status 인 텐트를 내보내고 라이센스 활성화가 성공했다는 내용의 토스트를 차례로 표시합니다.

MainActivity의 onActivityResult () 메소드는 장치 관리자가 활성화되었다는 메시지를 출력합니다.

정책 사용(Enable a policy)

Enterprise License가 활성화되었으므로 Knox Standard SDK를 사용하여 다음과 같은 정책 설정을 통해 삼성 장치의 여러 측면을 제어 할 수 있습니다.

  • 브라우저 설정

  • 카메라 사용

  • 셀룰러 데이터 사용

  • 엔터프라이즈 VPN 프로필

  • 방화벽 규칙

  • SD 카드 작업

이 샘플 코드 스니펫은 Samsung Knox Standard SDK를 사용하여 카메라의 상태를 전환하는 방법을 보여줍니다.

RestrictionPolicy rp = edm.getRestrictionPolicy();
 
// Get the current state of the camera 
boolean cameraEnabled = rp.isCameraEnabled(false);
try {
    // Flip the state of the camera 
    rp.setCameraState(!cameraEnabled);
    ...

처음 Toggle Camera를 누르면 ELM 라이센스가 활성화되지 않으므로 catch 블록의 코드가 실행되어 라이센스가 활성화되고 setCameraState ()에 대한 호출이 수행되지 않습니다.
지금 시도해보기 : 카메라 상태 정책을 테스트하려면 카메라 앱을 실행 해보십시오. 카메라가 사용 중지 된 경우 앱이 실행되지 않고 시스템에서 보안 정책에 따라 카메라 사용을 금지한다는 표시를 표시합니다.

앱의 기기 관리자 비활성화(Deactivate device administrator for the app)

기기 관리자 상태로 앱을 제거하려면 먼저 보안 설정 화면을 통해 앱을 사용 중지해야합니다. 앱의 장치 관리자를 비활성화하려면 설정> 일반> 보안> 장치 관리자를 선택한 다음 비활성화하려는 앱을 누릅니다.

장치 관리자 화면이 나타납니다. DEACTIVATE를 탭합니다. 앱의 장치 관리자를 비활성화할지 여부를 선택할 수있는 팝업이 표시됩니다. SampleAdminReceiver 클래스의 onDisableRequested () 메서드에서 토스트의 내용을 설정할 수 있습니다.


장치 관리자를 비활성화하려면 확인을 누릅니다.

이제 앱을 제거 할 수 있습니다. 사용자가 앱에 부여 된 기기 전반의 액세스에 불편한 점이 있다면 각 사용자의 기기에 보안 컨테이너를 만들 수있는 Samsung Knox Premium SDK를 사용하는 것이 좋습니다. 이렇게하면 컨테이너에있는 정보와 앱을 완벽하게 제어 할 수 있으며 사용자가 개인 데이터와 장치 사용을 완벽하게 제어 할 수 있습니다. SDK 버전 : 5.4 이상

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다