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”參數。
示例:
- 訪問 map-china400/rest 服務:
http://localhost:8090/iserver/services/map-china400/rest.rjson?token=NZkILm9Tl2FGzwK_nUh9krlHOtO0ds83lDoARA85_rMveuTyK0TyGcYV-5rn3wUYE-MSNPlw6wKnewy8jek_JQ..
- 訪問 tileImage 資源獲取地(dì / de)圖切片:
http://localhost:8090/iserver/services/map-china400/rest/maps/China/tileImage.png?token=NZkILm9Tl2FGzwK_nUh9krlHOtO0ds83lDoARA85_rMveuTyK0TyGcYV-5rn3wUYE-MSNPlw6wKnewy8jek_JQ..
- 注冊服務(通過 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 資源。