네트워크 구성

정책을 사용하여 기기에서 Wi-Fi 네트워크를 구성할 수 있습니다. Android Management API는 표준 JSON 기반 형식인 개방형 네트워크 구성을 사용합니다. 이는 원래 Chromium 프로젝트의 일부로 개발되었습니다. 자세한 내용은 사양 를 참조하세요.

정책에 개방형 네트워크 구성을 포함하려면 openNetworkConfiguration 필드 Policy 리소스도 제공합니다

완전 관리형 기기의 경우 원하는 경우 사용자가 수동으로 wifiConfigDisabled을(를) 다음으로 설정하여 기기에서 Wi-Fi 설정을 구성합니다. truePolicy 리소스도 제공합니다

<ph type="x-smartling-placeholder">

지원되는 기능

Android Management API는 개방형 네트워크의 하위 집합만 지원합니다. 구성 사양.

  • 최상위 객체: <ph type="x-smartling-placeholder">
      </ph>
    • Type를 생략하거나 UnencryptedConfiguration로 설정해야 합니다. 없음 정책 내에서 네트워크 구성을 암호화해야 하는데, 그 이유는 전체 정책이 Android Management API 서비스 내에서 암호화됩니다. 또한 민감한 정보를 위한 두 번째 암호화 레이어가 있습니다. 개인 정보를 암호화합니다.
  • NetworkConfiguration 객체:
    • GUID, Name, Type, WiFi는 모두 필수사항입니다.
    • ProxySettings는 선택 필드입니다. 이 속성을 사용하는 경우 ManualPAC (프록시 자동 구성)이 지원됩니다.
    • TypeWiFi로 설정해야 합니다. 다른 유형의 네트워크는 지원되지 않습니다.
  • WiFi 객체:
    • AllowGatewayARPPolling가 지원되지 않습니다.
    • SignalStrength가 지원되지 않습니다.
    • Security는 필수이며 다음 값이 지원됩니다. - 없음 - WEP-PSK - WPA-PSK - WPA-EAP - WEP-8021X - WPA3-Enterprise_192
    • WEP-PSK 암호의 경우 40비트 (10자리) 또는 104비트 (26자리)만 암호가 지원됩니다.
    • 사양에 따르면 WEP-PSK 암호는 접두어 0x. 그러나 Android 프레임워크와의 일관성을 위해 접두사는 필요하지 않습니다.
    • MAC 무작위 순서 지정 모드를 설정하려면 MACAddressRandomizationMode 속성을 사용합니다. Hardware 또는 Automatic 값으로 설정됩니다. 이 속성은 현재 개방형 네트워크 구성 (ONC) 사양에서 사용할 수 없음 AMAPI에서 제공되며 WiFi 네트워크를 구성하는 동안 지정할 수 있습니다. 이는 모든 관리 모드에서 Android 13 이상에만 적용됩니다.
      • Hardware는 네트워크에 연결할 때 공장 출고 시 MAC 주소를 사용합니다.
      • Automatic를 사용하면 Wi-Fi 프레임워크가 자동으로 MAC을 결정할 수 있습니다. 무작위 순서 지정 전략입니다. 영구적 또는 비영구적일 수 있습니다. 네트워크에 연결하는 동안 사용되는 무작위로 생성된 MAC 주소 않습니다.
  • EAP 객체:
    • ClientCertPattern가 지원되지 않습니다.
    • SaveCredentials가 지원되지 않습니다.
    • UseSystemCAs가 지원되지 않습니다.
    • DomainSuffixMatch가 지원됩니다.
      이 필드가 없거나 포함된 값)이 안전하지 않고 플랫폼에 의해 거부됩니다. 값은 유효한 도메인 이름 (예: 'example.com', 'subdomain.example.com')을 입력합니다.
    • ClientCertType에 지원되는 값: Ref, KeyPairAlias
    • Inner에 지원되는 값: MSCHAPv2, PAP
    • Outer에 지원되는 값은 EAP-AKA, EAP-TLS, EAP-TTLS님, EAP-SIM님, PEAP
  • Certificate 객체:
    • Remove가 지원되지 않습니다. 구성에서 인증서 생략 하세요.
    • TrustBits가 지원되지 않습니다.

여러 Wi-Fi 네트워크

이 정책 조각의 예시는 다음과 같이 구성된 세 개의 Wi-Fi 네트워크를 보여줍니다. 서로 다른 보안 체계에 대해 이야기해야 합니다. 개방형 네트워크 구성 JSON은 openNetworkConfiguration 필드 Policy JSON입니다.

"openNetworkConfiguration": {
  "NetworkConfigurations": [{
    "GUID": "a",
    "Name": "Example A",
    "Type": "WiFi",
    "WiFi": {
      "SSID": "Example A",
      "Security": "None",
      "AutoConnect": true
    }
  }, {
    "GUID": "b",
    "Name": "Example B",
    "Type": "WiFi",
    "WiFi": {
      "SSID": "Example B",
      "Security": "WEP-PSK",
      "Passphrase": "1234567890"
    }
  }, {
    "GUID": "c",
    "Name": "Example C",
    "Type": "WiFi",
    "WiFi": {
      "SSID": "Example C",
      "Security": "WPA-PSK",
      "Passphrase": "baseball"
    }
  },
  "GUID": "networkA",
   "Name": "networkA",
   "Type": "WiFi",
   "WiFi": {
     "SSID": "networkA",
     "Security": "WPA-PSK",
     "Passphrase": "pwd1234567",
     "MACAddressRandomizationMode":"Hardware"
   }
 }]
}

EAP 인증

이 정책 예시는 EAP-TLS로 구성된 무선 네트워크를 보여줍니다. 있습니다. NetworkConfigurations 객체 외에도 클라이언트 및 서버 인증서용 Certificates 객체 두 개를 포함합니다.

"openNetworkConfiguration": {
   "Type": "UnencryptedConfiguration",
   "NetworkConfigurations": [
      {
         "GUID": "a",
         "Name": "Example A",
         "Type": "WiFi",
         "WiFi": {
            "SSID": "Example A",
            "EAP": {
               "Outer": "EAP-TLS",
               "Identity": "example",
               "DomainSuffixMatch": [
                  "example.com",
                  "example.org"
               ],
               "ServerCARef": "abc123",
               "ClientCertType": "Ref",
               "ClientCertRef": "xyz456"
            },
            "Security": "WPA-EAP"
         }
      }
   ],
   "Certificates": [
      {
         "GUID": "abc123",
         "Type": "Server",
         "X509": "TWFuIGlzIGRpc3Rpbmd1a"
      },
      {
         "GUID": "xyz456",
         "Type": "Client",
         "PKCS12": "6PQIEQYJKoZbdDu8gwggRlqCCAPEbAAcGClgvcNAQc"
      }
   ]
}

ClientCertType 필드는 KeyPairAlias로 설정할 수도 있습니다. ClientCertKeyPairAlias 필드는 설치된 인스턴스의 별칭을 지정하는 데 사용할 수 있습니다. ( DevicePolicyManager.installKeyPair ) 생성하는 것입니다 (자세한 내용은 DevicePolicyManager.generateKeyPair ) Wi-Fi 인증에 사용되는 KeyChain 키 쌍입니다. Android 12 및 에서 지정된 별칭이 있는 키체인 키 쌍은 ClientCertKeyPairAlias은(는) Wi-Fi 네트워크 인증을 위해 부여되며 인증에 사용됩니다. Android 12 미만에서는 nonComplianceDetail 다음 코드로 교체합니다. API_LEVEL 이유가 보고됩니다 가 nonComplianceDetail 다음 코드로 교체합니다. INVALID_VALUE 이유와 ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY 지정된 키 쌍 별칭이 생성할 수 있습니다. 다음은 정책의 예입니다.

"openNetworkConfiguration": {
   "Type": "UnencryptedConfiguration",
   "NetworkConfigurations": [
      {
         "GUID": "a",
         "Name": "Example A",
         "Type": "WiFi",
         "WiFi": {
            "SSID": "Example A",
            "EAP": {
               "Outer": "EAP-TLS",
               "Identity": "example",
               "DomainSuffixMatch": [
                  "example.com",
                  "example.org"
               ],
               "ServerCARef": "abc123",
               "ClientCertType": "KeyPairAlias",
               "ClientCertKeyPairAlias": "key-alias"
            },
            "Security": "WPA-EAP"
         }
      }
   ],
   "Certificates": [
      {
         "GUID": "abc123",
         "Type": "Server",
         "X509": "TWFuIGlzIGRpc3Rpbmd1a"
      }
   ]
}

Security 필드는 WPA-EAP인 WPA3-Enterprise_192가 될 수도 있습니다. WPA3 192비트 모드로 구성된 네트워크.

"openNetworkConfiguration": {
   "Type": "UnencryptedConfiguration",
   "NetworkConfigurations": [
      {
         "Type": "WiFi",
         "Name": "Example A",
         "GUID": "A",
         "WiFi": {
            "SSID": "Example A",
            "EAP": {
               "Outer": "EAP-TLS",
               "Identity": "example",
               "ServerCARef": "abc123",
               "ClientCertType": "Ref",
               "ClientCertRef": "xyz456",
               "DomainSuffixMatch": ["example.com"]
            },
            "Security": "WPA3-Enterprise_192",
            "AutoConnect": true
         }
      }
   ],
   "Certificates": [
      {
         "GUID": "abc123",
         "Type": "Server",
         "X509": "TWFuIGlzIGRpc3Rpbmd1a"
      },
      {
         "GUID": "xyz456",
         "Type": "Client",
         "PKCS12": "6PQIEQYJKoZbdDu8gwggRlqCCAPEbAAcGClgvcNAQc"
      }
   ]
}