SuperMap iServer 服務管理器中提供安全模塊,通過基于(yú)用戶身份識别的(de)認證和(hé / huò)授權,實現對服務的(de)訪問控制。開啓服務安全後,服務就(jiù)受到(dào)了(le/liǎo)保護,隻有授權的(de)角色所對應的(de)用戶才能訪問受保護的(de)服務資源。

此外,SuperMap iServer 提供了(le/liǎo)一(yī / yì /yí)種基于(yú) Token(令牌)的(de)用戶身份驗證機制,使在(zài)訪問受保護的(de)服務資源時(shí)僅需提供 Token,而(ér)不(bù)需要(yào / yāo)提供用戶名和(hé / huò)密碼。用戶憑借合法的(de)用戶名和(hé / huò)密碼即可獲取 Token,然後可攜帶 Token 訪問相應的(de)已授權的(de)服務。SuperMap iServer 提供的(de) GIS 服務(詳見GIS 服務資源層次結構)、OGC 服務、服務管理(服務管理資源層次結構)和(hé / huò)門戶(門戶資源層次結構)的(de)所有資源,均支持通過 Token 來(lái)訪問,隻需在(zài)訪問時(shí)添加“token”參數即可。需要(yào / yāo)注意的(de)是(shì),訪問受保護的(de)服務中的(de)每一(yī / yì /yí)個(gè)資源時(shí),都要(yào / yāo)攜帶“token”參數。

示例:

  1. 訪問 map-china400/rest 服務:

http://localhost:8090/iserver/services/map-china400/rest.rjson?token=NZkILm9Tl2FGzwK_nUh9krlHOtO0ds83lDoARA85_rMveuTyK0TyGcYV-5rn3wUYE-MSNPlw6wKnewy8jek_JQ..

  1. 訪問 tileImage 資源獲取地(dì / de)圖切片:

http://localhost:8090/iserver/services/map-china400/rest/maps/China/tileImage.png?token=NZkILm9Tl2FGzwK_nUh9krlHOtO0ds83lDoARA85_rMveuTyK0TyGcYV-5rn3wUYE-MSNPlw6wKnewy8jek_JQ..

  1. GIS 服務的(de)快速發布(通過 REST API)
  1. 注冊服務(通過 REST API)

SuperMap iPortal 的(de) REST API 提供了(le/liǎo)注冊服務的(de)功能,可以(yǐ)通過 services 資源的(de) POST 請求來(lái)實現。

對于(yú)門戶中所有受保護的(de)資源,通過 REST 方式訪問和(hé / huò)使用時(shí)需要(yào / yāo)攜帶驗證信息,比如可以(yǐ)在(zài) HTTP 請求頭中攜帶Cookie 信息,或者可以(yǐ)基于(yú) Token 訪問受保護的(de) REST 服務資源。其中 Cookie 信息可以(yǐ)在(zài)登錄時(shí)獲取,而(ér) SuperMap Token 可以(yǐ)通過 token 資源獲取

通過 services 資源注冊單個(gè)服務,不(bù)需要(yào / yāo)提供用戶名和(hé / huò)密碼,僅需攜帶令牌 token=9jD451OhUlsDSJkJe9Wb34AkFS5k8I6FMy2UriguJkS2X-qXofeME0gSDTgW6003REFso7YhS3E5TNdzUoQWXg..。

對 services 資源發送 POST 請求:

http://localhost:8090/iportal/web/services.rjson?token=9jD451OhUlsDSJkJe9Wb34AkFS5k8I6FMy2UriguJkS2X-qXofeME0gSDTgW6003REFso7YhS3E5TNdzUoQWXg..

注冊一(yī / yì /yí)個(gè) SuperMap REST 服務,傳入 rjson 請求體如下:

{

    "type": "SUPERMAP_REST",

    "tags": [

        "China"

    ],

    "authorizeSetting": [

        {

            "entityName": "GUEST",

            "entityType": "USER",

            "permissionType": "READ"

        }

    ],

    "metadata": {

        "mdContact": {

            "rpIndName": "",

            "rpOrgName": "",

            "rpPosName": "",

            "rpCntInfo": {

                "cntAddress": {

                    "delPoint": "",

                    "city": "",

                    "adminArea": "",

                    "postCode": "",

                    "country": "",

                    "eMailAdd": ""

                },

                "voiceNum": "",

                "faxNum": ""

            }

        },

        "dataIdInfo": {

            "dataIdent": {

                "idCitation": {

                    "resTitle": "map"

                },

                "idAbs": ""

            }

        },

        "distInfo": {

            "onLineSrc": {

                "linkage": "http://192.168.112.217:8090/iserver/services/map-china400/rest"

            }

        }

    }

}

其中:

  • type:必選參數,需要(yào / yāo)注冊的(de)服務的(de)類型。目前支持用戶申請注冊 SuperMap REST 服務、OGC 服務(WMS、WMTS、WFS、WCS、WPS)、ArcGIS REST 服務以(yǐ)及其他(tā)類型的(de)服務。
  • tags:必選參數,需要(yào / yāo)注冊的(de)服務的(de)标簽。
  • authorizeSetting:必選參數,需要(yào / yāo)注冊的(de)服務的(de)權限類型,包括:DELETE(隻有服務注冊者可查看/編輯/删除)、READ(所有人(rén)可查看或者指定用戶可查看)。
  • metadata:需要(yào / yāo)注冊的(de)服務的(de)元信息,其中 "resTitle" 服務名稱和(hé / huò) "linkage" 服務地(dì / de)址爲(wéi / wèi)必選參數。

上(shàng)述 POST 請求發送後,服務端返回注冊的(de)服務如下所示:

{

    "newResourceID": "115",

    "newResourceLocation": "http://localhost:8090/iportal/web/services/115",

    "succeed": true

}

即爲(wéi / wèi)申請注冊的(de)服務的(de) ID 和(hé / huò)服務地(dì / de)址,此時(shí)還需要(yào / yāo)管理員的(de)審核,審核通過後才能注冊到(dào) iPortal 中。關于(yú)管理員的(de)服務審核資源可以(yǐ)訪問 servicesCheckStatus 資源

用戶可以(yǐ)通過 REST API 以(yǐ)多種表述格式申請 Token,詳見 tokens 資源。