WLAN 架构

WLAN 架构定义元素,这些元素用于描述订阅者连接到 WLAN (局域网) 。

WLAN 架构中所有元素均在 命名空间 *http://www.microsoft.com/networking/CarrierControl/WLAN/v1* 中。

架构WLAN_v2命名空间中http://www.microsoft.com/networking/CarrierControl/WLAN/v2定义其他元素,在 Windows 8.1、Windows Server 2012 R2 和更高版本上受支持。

WLAN 架构中的 SSIDConfig 元素在 v1 命名空间中最多支持 25 个 SSID,在 v2 命名空间中最多支持 10,000 个 SSID。 v2 命名空间还支持 SSIDPrefix 元素。

并非所有元素都每个配置文件中,因为某些元素是可选的。

下表列出了此架构中按名称按字母顺序排序的所有元素。

元素 说明
AssociatedPlan

包含订阅者的数据计划的名称。 它必须匹配同 一 XML 文档中 计划的 Name 属性。

MSM

定义各种特定于媒体的模块 (MSM) WLAN 上此配置文件的设置。

PMKCacheMode

定义此配置文件是否 (PMK) 对主密钥来连接到 WLAN。

PMKCacheSize

定义客户端上 PMK (配对主密钥) 条目数。 必须是介于 1 和 255(含)之间的值。

PMKCacheTTL

定义将保留 PMK 的成对主密钥 (的时间长度) 分钟。 必须是介于 5 和 1440(含)之间的值。

SSID

包含 WLAN 的 SSID。

SSIDConfig

为无线 LAN 定义一个或多个 (SSID) 标识符。

WLANProfile

定义订阅服务器 WLAN 连接配置文件的属性和安全设置。 WLANProfile 是无线配置文件的唯一根元素。

authEncryption

定义在 WLAN 上用于此配置文件的身份验证和加密对。

身份验证

定义此配置文件用于连接到 WLAN 的身份验证方法。

加密

定义此配置文件用于连接到 WLAN 的数据加密类型。

hex

以十六进制格式定义无线 LAN 的 SSID。

keyIndex

定义应该使用哪个密钥索引来加密无线流量。 keyIndex 仅在 keyType 为 networkKey使用。 存在 sharedKey 时,默认值为 0。 必须是介于 0 和 3(含)之间的值。

keyMaterial

定义网络密钥或通行短语。 如果 protected为 true,则密钥材料已加密;否则,密钥材料未加密。 加密密钥材料以十六进制形式表示。

keyType

定义共享密钥是网络密钥还是通行短语。

SSID (中的名称)

以字母数字格式定义无线 LAN 的 SSID。

name (type: NameType)

定义无线 LAN 配置文件的区分大小写的名称。

preAuthMode

定义客户端是否使用预身份验证。

preAuthThrottle

定义在 AP 应用程序上的相邻访问点上尝试的预身份验证 () 。 必须是介于 1 和 16(含)之间的值。

受保护

如果 为 true,则对共享密钥进行加密。 否则为 false

security

定义 WLAN 上此配置文件的各种安全设置。

sharedKey

定义此配置文件用于连接到 WLAN 的可选共享密钥信息。

useOneX

如果 为 true,则此配置文件将使用 802.1X 身份验证连接到 WLAN。 否则为 false

 

完整的 WLAN 架构如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<xs:schema targetNamespace="http://www.microsoft.com/networking/CarrierControl/WLAN/v1"  
    elementFormDefault="qualified"  
    xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v1"  
    xmlns:xs="http://www.w3.org/2001/XMLSchema"  
    xmlns:base="http://www.microsoft.com/networking/CarrierControl/Base/v1">  
  <xs:import namespace="http://www.microsoft.com/networking/CarrierControl/Base/v1" />  
  
    <!-- WISPR Credentials in separate schema; uses xs:any tag below -->
  
    <xs:element name="WLANProfile" type="CarrierWLANProfile"/>

  <xs:complexType name="CarrierWLANProfile">  
    <xs:sequence>  
                    
      <!-- Profile name is required. -->        
      <xs:element name="name" type="base:NameType" />
  
      <xs:element name="Associated Plan" type="xs:string" minOccurs="0"/>

      <!-- SSIDs are required. -->        

      <xs:element name="SSIDConfig" maxOccurs="1">  
        <xs:complexType>  
          <xs:sequence>

      <xs:annotation>
         <xs:documentation>
            This element supports up to 25 SSIDs in the v1 namespace and up to additional 10000 SSIDs in the v2 namespace.
            The v2 namespace also supports SSID prefixes.
         </xs:documentation>
      </xs:annotation>

            <xs:element name="SSID" maxOccurs="25">  
              <xs:complexType>  

      <!-- Either Hex or named SSID must be present. -->
          
                <xs:choice>   
                  <xs:element name="hex">  
                    <xs:simpleType>  
                      <xs:restriction base="xs:hexBinary">  
                        <xs:minLength value="1" />  
                        <xs:maxLength value="32" />  
                      </xs:restriction>  
                    </xs:simpleType>  
                  </xs:element>  
  
                  <xs:element name="name">  
                    <xs:simpleType>  
                      <xs:restriction base="xs:string">  
                        <xs:minLength value="1" />  
                        <xs:maxLength value="32" />  
                      </xs:restriction>  
                    </xs:simpleType>  
                  </xs:element>  
                </xs:choice>  
              </xs:complexType>  
            </xs:element>  

      <!-- SSID and SSIDPrefix elements from v2 namespace can be set here.
        <xs:element name="SSID" minOccurrence="0" maxOccurrence="10000"
          namespace="http://www.microsoft.com/networking/WLAN/profile/v2"/> 
        <xs:element name="SSIDPrefix" minOccurrence="0" maxOccurrence="32"
          namespace="http://www.microsoft.com/networking/WLAN/profile/v2"/>
      -->      

      <!-- extension point for other namespaces -->
   
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />  
          </xs:sequence>  
        </xs:complexType>  
      </xs:element>  
  
      <!-- wireless LAN MSM settings -->

            <xs:element name="MSM" minOccurs="0">  
              <xs:complexType>  
                <xs:sequence>   

            <!-- security settings -->
                  <xs:element name="security" minOccurs="0">  
                    <xs:complexType>  
                      <xs:sequence>  
                        <xs:element name="authEncryption">  
                          <xs:complexType>  
                            <xs:sequence>
            <!-- valid authentication methods -->   
                              <xs:element name="authentication">  
                                <xs:simpleType>  
                                  <xs:restriction base="xs:string">  
                                    <xs:enumeration value="open" />  
                                    <xs:enumeration value="shared" />  
                                    <xs:enumeration value="WPA" />  
                                    <xs:enumeration value="WPAPSK" />  
                                    <xs:enumeration value="WPA2" />  
                                    <xs:enumeration value="WPA2PSK" />  
                                  </xs:restriction>  
                                </xs:simpleType>  
                              </xs:element>  
            
            <!-- valid encryption methods -->

                              <xs:element name="encryption">  
                                <xs:simpleType>  
                                  <xs:restriction base="xs:string">  
                                    <xs:enumeration value="none" />  
                                    <xs:enumeration value="WEP" />  
                                    <xs:enumeration value="TKIP" />  
                                    <xs:enumeration value="AES" />  
                                  </xs:restriction>  
                                </xs:simpleType>  
                              </xs:element>  

            <!-- flag indicating use of 802.1X -->

                              <xs:element name="useOneX" type="xs:boolean" minOccurs="0" />  

            <!-- extension point for other namespaces; allowed for OneX, etc. -->

                              <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />  
                            </xs:sequence>  
                          </xs:complexType>  
                        </xs:element>

            <!-- Optional MSM security settings. -->
            <!-- there is no default value for sharedKey if absent -->

                        <xs:element name="sharedKey" minOccurs="0">  
                          <xs:complexType>  
                            <xs:sequence>  
                              <xs:element name="keyType">  
                                <xs:simpleType>  
                                  <xs:restriction base="xs:string">  
                                    <xs:enumeration value="networkKey" />  
                                    <xs:enumeration value="passPhrase" />  
                                  </xs:restriction>  
                                </xs:simpleType>  
                              </xs:element>  
                              <xs:element name="protected" type="xs:boolean" />  
                              <xs:element name="keyMaterial" type="xs:string" />  
  
            <!-- extension point for other namespaces -->

                              <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />  
                            </xs:sequence>  
                          </xs:complexType>  
                        </xs:element>

            <!-- the default value is 0 when the shared key is present -->  
  
                        <xs:element name="keyIndex" minOccurs="0">  
                          <xs:simpleType>  
                            <xs:restriction base="xs:integer">  
                              <xs:minInclusive value="0" />  
                              <xs:maxInclusive value="3" />  
                            </xs:restriction>  
                          </xs:simpleType>  
                        </xs:element>  
 
            <!-- For WPA2, the default value is "enabled"
                 for all others, the default value is "disabled"
             -->

                        <xs:element name="PMKCacheMode" minOccurs="0">  
                          <xs:simpleType>  
                            <xs:restriction base="xs:string">  
                              <xs:enumeration value="disabled" />  
                              <xs:enumeration value="enabled" />  
                            </xs:restriction>  
                          </xs:simpleType>  
                        </xs:element>  
   
           <!-- the default value is 720 minutes -->

                        <xs:element name="PMKCacheTTL" minOccurs="0">  
                          <xs:simpleType>  
                            <xs:restriction base="xs:integer">  
                              <xs:minInclusive value="5" />  
                              <xs:maxInclusive value="1440" />  
                            </xs:restriction>  
                          </xs:simpleType>  
                        </xs:element>  
  
           <!-- the default value is 128 entries -->

                        <xs:element name="PMKCacheSize" minOccurs="0">  
                          <xs:simpleType>  
                            <xs:restriction base="xs:integer">  
                              <xs:minInclusive value="1" />  
                              <xs:maxInclusive value="255" />  
                            </xs:restriction>  
                          </xs:simpleType>  
                        </xs:element>  
  
           <!-- the default value is "disabled" -->

                        <xs:element name="preAuthMode" minOccurs="0">  
                          <xs:simpleType>  
                            <xs:restriction base="xs:string">  
                              <xs:enumeration value="disabled" />  
                              <xs:enumeration value="enabled" />  
                            </xs:restriction>  
                          </xs:simpleType>  
                        </xs:element>  

           <!-- the default value is 3 times -->
                        <xs:element name="preAuthThrottle" minOccurs="0">  
                          <xs:simpleType>  
                            <xs:restriction base="xs:integer">  
                              <xs:minInclusive value="1" />  
                              <xs:maxInclusive value="16" />  
                            </xs:restriction>  
                          </xs:simpleType>  
                        </xs:element>  
  
           <!-- extension point for other namespaces -->
           <!-- this is the insertion point for OneX and HotspotAuth namespaces -->

                        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />  
                      </xs:sequence>  
                    </xs:complexType>  
                  </xs:element>  

           <!-- extension point for other namespaces -->
               
                  <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />  
                </xs:sequence>  
              </xs:complexType>  
            </xs:element>  
  
    </xs:sequence>  
    <xs:attribute name="Priority" type="base:Priority" default="5"/>  
  </xs:complexType>  
  
  <xs:element name="WLANProfile" type="CarrierWLANProfile"/>  
</xs:schema>  

    <!-- provisioning_wlan_v2 -->
    <!-- The following shows the new elements in version 2  that can be included -->
 
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.microsoft.com/networking/CarrierControl/WLAN/v2"
    elementFormDefault="qualified"
    xmlns="http://www.microsoft.com/networking/CarrierControl/WLAN/v2"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>

  <xs:element name="SSID">
    <xs:complexType>
      <!-- Either Hex or named SSID must be present. -->
      <xs:choice>
        <xs:element name="hex">
          <xs:simpleType>
            <xs:restriction base="xs:hexBinary">
              <xs:minLength value="1" />
              <xs:maxLength value="32" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="name">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:minLength value="1" />
              <xs:maxLength value="32" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>

  <xs:element name="SSIDPrefix">
    <xs:complexType>
      <!-- Either Hex or named SSID must be present. -->
      <xs:choice>
        <xs:element name="hex">
          <xs:simpleType>
            <xs:restriction base="xs:hexBinary">
              <xs:minLength value="4" />
              <xs:maxLength value="32" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="name">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:minLength value="4" />
              <xs:maxLength value="32" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

SSIDPrefix

WLAN_v2 架构