




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、學習目標目標如下:在應用程序元素上設置權限。設計和創(chuàng)建安全策略。使用代碼安全框架保護不安全的應用程序編程接口 (API)。驗證從顯示方法返回的數(shù)據(jù)。簡介Dynamics AX 的一些更高級的安全功能。本章介紹6-1權限在Dynamics AX 2012 培訓課程的開發(fā) I 中了角色職責和。這些安全級別涉及對單個元素(例如,窗體和履行職責所需的元素組)的權限。開發(fā)負責通過對窗體中的表和控件設置權限,或者將執(zhí)行操作的類與權限相關聯(lián)來定義更精細的安全級別。窗體權限應用程序對象樹中的每個窗體都包含一個“權限”節(jié)點,該節(jié)點包含四個或五個子節(jié)點(“”、“更新”、“創(chuàng)建”、“刪除”和“糾正”)。只有在窗體中
2、的表具有有效日期數(shù)據(jù)時,才顯示“糾正”。在這些節(jié)點下面有四個附加節(jié)點(“控件”、“表”、“服務器方法”和 “關聯(lián)窗體”)。將表添加到窗體數(shù)據(jù)源時,表將自動添加到每個“Permis “表”節(jié)點?!氨怼惫?jié)點下的每個節(jié)點均具有 EffectiveAc性設置允許對表進行哪種s”子節(jié)點的s 屬性,該屬EffectiveAcs 屬性是基于數(shù)據(jù)源屬性自動設置的。如果數(shù)據(jù)源屬性AllowDelete 設置為“No”,則 EffectiveAcs 屬性將設置為“Update”。如果數(shù)據(jù)源屬性 AllowEdit 設置為“No”,則 EffectiveAc為“Read”。s 屬性將設置若要對窗體中的控件設置權限,
3、請將該控件的“Securable”屬性設置為“Yes”。然后,可以將該控件添加到每個“permis “Controls”節(jié)點。s”節(jié)點下的6-2圖 6.1 “供應商日志”窗體中的有效代權代碼權限是在 AOT 中通過“Security”“Code Permiss”手動創(chuàng)建的一組自定義權限。菜單項(特別是“操作”菜單項)可以通過將LinkedPermis LinkedPermisType 屬性設置為 CodePermis并將Object 設置為代碼權限的名稱來使用這些屬性。服務操作也可以通過設置“Service Operation”“Operation method”“Permiss”“Assot
4、ed Code Permiss”節(jié)點下的“CodePermis”屬性來使用代碼權限。安全安全策略使用可擴展數(shù)據(jù)安全 (XDS)。義以下定義與 XDS 結合使用。約束表:此表或多個表保存基于策略篩選的數(shù)據(jù)。主表:此表用于確定篩選數(shù)據(jù)的方式。例如,對于基于員工的篩選器,主表是 HcmWorker 表。策略查詢:此查詢用于從主表返回數(shù)據(jù),而主表則可用于篩選約束表中的數(shù)據(jù)。上下文:控制應用策略時所處的環(huán)境。有以下兩種類型的上下文:角色上下文是指在為用戶分配了角色的情況下應用策略。應用上下文是指基于應用程序設置的信息應用策略。6-3圖 6.2 “過帳普通的權限”框方案:制定 XDS 策略此過程將說明如何
5、創(chuàng)建限制用戶查看其他用戶的目標客戶的安全策略。在某些銷售環(huán)境中,銷售會嚴格保護其目標客戶的信息,并且不希望。其他銷售查看其目標目標客戶在 smmBusRelTable 中。對目標客戶負責的員工在MainContactWorker 字段中。員工通過 Dir當前用戶。和 DirUser 表連接到創(chuàng)建 XDS 策略有兩個階段:創(chuàng)建策略查詢和創(chuàng)建安全策略。過程:創(chuàng)建策略查詢創(chuàng)建策略查詢的步驟如下所示:1.在 AOT 中,創(chuàng)建一個新 Query,將該查詢重命名為 HcmWorkerUser。在第二個 AOT 中,找到表“Data Dictionary Tables HcmWorker”。2.3.4.將表
6、 HcmWorker 拖至該查詢的“Data Sou”節(jié)點。在 HcmWorker_1 數(shù)據(jù)源的“Fields”節(jié)點的屬性表中,將“Dynamic”屬性設置為“Yes”。在第二個 AOT 中,找到表“Data Dictionary Tables 5.Dir將表 Dir”。6.拖動到 HcmWorker_1 數(shù)據(jù)源的“DataSour”節(jié)點。7.在 Dir“Yes”。在 Dir_1 數(shù)據(jù)源的屬性表中,將“Relations”屬性設置為8._1 數(shù)據(jù)源的“Fields”節(jié)點的屬性表中,將“Dynamic”屬性設置為“Yes”。9.在第二個 AOT 中,將表 DirUser 拖動到 Dir_1 數(shù)據(jù)
7、源的“Data Sour”節(jié)點。10.在 DirUser_1 數(shù)據(jù)源的屬性表中,將“Relations”屬性設置為“Yes”。6-411. 在 DirUser_1 數(shù)據(jù)源的“Fields”節(jié)點的屬性表中,將“Dynamic”屬性設置為“Yes”。12. 右鍵單擊 DirUser_1 數(shù)據(jù)源的“Ranges”節(jié)點,然后選擇“新建 Range”。在新范圍的屬性表中,將“字段”屬性設置為“User”,將“值”屬性設置為 (currentUserId()。保存對查詢所做的更改。過程:創(chuàng)建安全策略按照以下步驟創(chuàng)建安全策略:1.2.3.在 AOT 中,展開“Security”節(jié)點。右鍵單擊“Policie
8、s”節(jié)點,然后選擇“新建 Security Policy”。在安全策略的屬性表中,將“Name”屬性設置為SmmBusRelUser,將“Label”屬性設置為“Limit Prospects byUser”,將“Primary Table”屬性設置為 HcmWorker,將“Query”屬性設置為 HcmWorkerUser,將 ContextType屬性設置為 RoleName,將 RoleName 屬性設置為TradeSalesRepresenive,并將“Enabled”屬性設置為“Yes”。展開 SmmBusRelUser 安全策略。右鍵單擊“Constrained Tables”節(jié)
9、點,然后依次選擇“新建”“按關系添加表”。4.5.6.在束表的屬性表中,將“Table”屬性設置為smmBusRelTable,將 TableRelation 屬性設置為MainContactWorker。保存對策略所做的更改。7.6-5圖 6.3 “策略查詢”框過程:測試安全策略使用以下步驟測試安全策略。1.以 NancyDynamics AX。為此,請在按住登錄到Shift 鍵的同時右鍵單擊快捷方式,然后選擇“以其他用戶運行”。2.3.4.輸入“Nancy”作為用戶并輸入Pa$w0rd。打開“銷售和市場 常用 目標客戶 所有目標客戶”。此時將僅顯示將 Nancy 設置為銷售代表的目標客戶。
10、代碼安全性Dynamics AX 代碼安全性由開發(fā)使用,用于防止安全API 被不受信任的代碼(非源自 AOT 的代碼)調用。代碼驗證以下內(nèi)容來完成此操作:安全性通過代碼斷言了調用堆棧上使用安全類的相應權限。斷言(使用安全類的請求)在受信任代碼中執(zhí)行并保存在AOT 中。斷言在安全類所在的層上執(zhí)行。代碼安全性只涉及服務器層上的安全類的使用。您無需修改或簡化安全類的僅客戶端調用。代碼安全性必須由安全類所有者和所有安全類使用者實施。所有者通過實現(xiàn)特定類型的權限類并調用該類的 demand() 方法來保護安全類。每個類使用者必須通過調用權限類的 assert() 方法來顯式請求調用安全類的權 限。除非這
11、兩個步驟已完成,否則應用程序代碼將中斷。在Dynamics AX 代碼安全性中有六組受保護的標準類:直接 SQLX+ 的運行時編譯和執(zhí)行受數(shù)據(jù)控制的 X+ 執(zhí)行文件處理Win32eropWindows API6-6注意:代碼安全性不保證傳遞給安全類的任何數(shù)據(jù)或參數(shù)的有效性。數(shù)據(jù)驗證仍為使用者的責任。示例:使用安全類此示例說明如何使用 TextBuffer 類。首先,代碼創(chuàng)建了一個新的FileIOPermis對象并傳遞文件名參數(shù),然后調用了 assert() 方法。6-7xserver void MyServerFunction()/CAS 權限對象。FileIOPermisfileIOPerm
12、is; TextBuffer txtb = new TextBuffer(); Filename filename =c:tempmyfile.txt;/ 斷言可以正常和寫入文件及/ 剪貼板,因為內(nèi)容來自靜態(tài)文件名。fileIOPermis= new FileIOPermis(filename, rw);fileIOPermis.assert();/ 從文件中進行將需要 CAS 權限() txtb.fromFile(filename); /文件中的文本/到剪貼板將需要 CAS 權限(寫入) txtb.toClipboard(); / 將內(nèi)容到剪貼板/ 對文件進行寫入將需要 CAS 權限(寫入)
13、 txtb.toFile(filename); / 將文本寫入文件示例:直接 SQL當直接 SQL 是通過 Connection 和 Sement 類使用時,它將受到 SQL 注入的。請注意,未在 S安全性。ement 類上強制實施級安全性和字段級顯示方法顯示方法或編輯方法用于顯示來自其他表的數(shù)據(jù)或計算出的值。理論上,顯示方法可以顯示來自任何表的任何數(shù)據(jù)。如果顯示方法返回其他表(或同一個表的其他行)中的數(shù)據(jù),它將導致。如果顯示方法返回同一行但是另一列中的數(shù)據(jù),它也會導致。例如,用戶可能無法查看其他人的月薪,但可以運行查詢來詢問年薪(計算出的值)。6-8sic void getCustomers
14、DirectSQL(Args _args)ConnectionuserConnection;Sementstmt;ssqlString;userConnection = new Connection();stmt = userConnection.createSement(); sqlString = select * from custTable;new SqlSementExecutePermis(sqlString).assert();stmt.exeeQuery(sqlString);CodeAcsPermis:revertAssert();示例:顯示方法以下示例來自 CustColl
15、ectionLetterJour 表。此方法同時驗證字段級安全性。權限和6-9/已BP 偏差displayAddressing collectionAddress()CustTable custTable;if (!hasFieldAcs(tableNum(LogisticstalAddress),fieldNum(LogisticsalAddress, Address), AcsType:View)throw error(SYS57330);if (CustTable:checkExist(this.AccountNum)custTable.recordLevelSecurity(true)
16、;selectonly Party from custTablewhere custTable.AccountNum = this.AccountNum;if (!custTable)throw error(SYS57330);return custTable.talAddress().Address;小結本章演示了如何創(chuàng)建 XDS 策略,以便基于預定義的篩選器保護數(shù)據(jù),如何斷言安全 API 的權限,以及如何保護顯示方法中的代碼。6-10知識測試回答以下問題,測驗您的知識掌握情況。1.由于 XDS 策略而被篩選出來的表稱為什么?( )( )( )( )主表 外表 篩選表約束表2.ExecutePermis類中的哪個方法告訴 AOS:程序員已了該命令后的代碼的可能安全影響并已通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45206-2025道地藥材生產(chǎn)技術規(guī)程丹參
- 幾分包合同范本
- 農(nóng)村耕地流轉合同范本
- 產(chǎn)品免責合同范本
- 倉儲臨時合同范本
- 化妝產(chǎn)品合同范本
- 信息驗收合同范例
- 書法裝裱售賣合同范本
- 農(nóng)村集體資源招租合同范本
- 免除追償工傷合同范本
- 2024年-ITSS新標準培訓學習材料
- 第2課《讓美德照亮幸福人生》第2框《做守家庭美德的好成員》-【中職專用】《職業(yè)道德與法治》同步課堂課件
- (正式版)SHT 3227-2024 石油化工裝置固定水噴霧和水(泡沫)噴淋滅火系統(tǒng)技術標準
- 2024屆廣東省深圳市中考物理模擬試卷(一模)(附答案)
- 前庭功能鍛煉科普知識講座
- 供應鏈戰(zhàn)略布局與區(qū)域拓展案例
- 上海話培訓課件
- 注塑車間績效考核方案
- 初中英語閱讀理解專項練習26篇(含答案)
- 誦讀經(jīng)典傳承文明課件
- 高中數(shù)學選擇性必修3 教材習題答案
評論
0/150
提交評論