|
使用
輸入命令行
使用
如果注解出現(xiàn)
annotate BrowseBooksService with @(requires: 'authenticated-user');annotate ShopService.Books with @(requires: ['Vendor', 'ProcurementManager']);annotate ShopService.ReplicationAction with @(requires: 'system-user'); 在此示例中,BrowseBooksService 服務對經(jīng)過身份驗證的用戶開放,但對匿名用戶不開放。 具有 Vendor 或 ProcurementManager 角色的用戶可以訪問 ShopService.Books 實體。 未綁定操作 ShopService.ReplicationAction 只能由技術(shù)用戶觸發(fā)。 當通過 @requires 限制服務訪問時,服務的元數(shù)據(jù)端點(即 /$metadata 以及服務根 /)默認也受到限制。 如果需要公共元數(shù)據(jù),可以分別通過 config cds.env.odata.protectMetadata = false (Node.js) 或 cds.security.openMetadataEndpoints = true (Java) 禁用檢查。 看個具體的例子,AdminService 只有用戶
在 api path 下,只有
運行時的 basic Authorization 字段:
使用 ctrl+shift+n 打開隱身窗口,可以避免 Chrome 自動附帶 credentials 的問題。 看到下圖的 Sign in 按鈕,說明權(quán)限控制生效了:
cds 模型里的 Authorization 信息,會寫入 使用如下命令行自動生成: cds compile service.cds --to xsuaa > xs-security.json. 一個例子文件: {
"xsappname": "bookshop", "tenant-mode": "dedicated",
"scopes": [
{ "name": "$XSAPPNAME.admin", "description": "admin" }
],
"attributes": [
{ "name": "level", "description": "level", "valueType": "s" }
],
"role-templates": [
{ "name": "admin", "scope-references": [ "$XSAPPNAME.admin" ], "description": "generated" }
]}這個文件的語法在 SAP 官網(wǎng)可以查到。
范圍大多是“本地的”; 也就是說,特定于應用程序。 本地范圍由應用程序自己的應用程序路由器檢查或在應用程序的運行時容器內(nèi)以編程方式檢查。 如果應用程序需要代表當前用戶訪問其他 SAP HANA XS 服務,則提供的訪問令牌需要包含必要的“外部”范圍。 應用程序本身不提供外部范圍; 它們由應用程序上下文之外的其他來源檢查。 在 xs-security.json 文件中,“本地”范圍必須以變量
|
|
|
來自: 汪子熙 > 《JavaScript》