專利名稱:用于應(yīng)用程序和貿(mào)易伙伴集成的安全模型的制作方法
用于應(yīng)用程序和貿(mào)易伙伴集成的安全模型
些旦 Ff足
企業(yè)對企業(yè)(B2B)集成場景涉及一個企業(yè)中的應(yīng)用程序或用戶能夠訪問 由另一企業(yè)中的應(yīng)用程序提供的服務(wù)和數(shù)據(jù)。在應(yīng)用對應(yīng)用(A2A)場景中, 一企業(yè)中的應(yīng)用程序訪問同一企業(yè)中的另一應(yīng)用程序中的服務(wù)和數(shù)據(jù)。對這些 服務(wù)和數(shù)據(jù)的訪問造成了應(yīng)用程序的安全漏洞,惡意用戶可通過該安全漏洞攻 擊該應(yīng)用程序和/或盜取機密數(shù)據(jù)。
提供以上討論僅用作一般的背景信息,并且不旨在用于幫助確定所要求保 護的主題的范圍。
概述
提供了控制對受保護應(yīng)用程序的訪問的安全模型。在該模型之下,在用戶 提交一消息以使得應(yīng)用程序執(zhí)行一動作時認(rèn)證該提交用戶。然后使用該應(yīng)用程 序來確定該提交用戶是否被授權(quán)代表存儲在該消息中的源端點提交消息。然后 在扮演存儲在該消息中的源端點用戶的同時調(diào)用該應(yīng)用程序中的一種方法來 執(zhí)行該動作。
提供本概述以便以簡化形式介紹將在以下詳細(xì)描述中進一步描述的一些 概念。該概述不旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在 用于幫助確定所要求保護的主題的范圍。所要求保護的主題不限于解決在背景 中提及的任何或所有缺點的實現(xiàn)。
附圖簡述
圖1是示出安全端點和受保護應(yīng)用程序之間的連接的一般化框圖。
圖2是更詳細(xì)地示出圖1的各元素的更詳細(xì)的框圖。
圖3是用于使用一個實施例的安全模型來通過web服務(wù)傳遞消息的流程圖。
圖4是用于使用一個實施例的安全模型來通過消息通信網(wǎng)關(guān)傳遞消息的
5流程圖。
圖5是使用EDI服務(wù)器作為中介的示例配置的框圖。
圖6是使用自定義.NET應(yīng)用程序作為中介的配置的框圖。
圖7是使用服務(wù)器作為中介的配置的框圖。
圖8是其中自定義Win窗體應(yīng)用程序擔(dān)當(dāng)源端點的配置的框圖。
圖9是其中多個銷售代表擔(dān)當(dāng)源端點的配置的框圖。
圖IO提供了其中本地應(yīng)用程序擔(dān)當(dāng)源端點且.NET應(yīng)用程序擔(dān)當(dāng)中介的配置。
圖ii提供了其中本地應(yīng)用程序擔(dān)當(dāng)通過消息通信網(wǎng)關(guān)進行通信的源端點 的配置。
圖12提供了可包含一個或多個服務(wù)器或應(yīng)用程序的通用計算環(huán)境的框圖。
詳細(xì)描述
此處所提供的實施例提供了一種提供對應(yīng)用程序的受保護訪問的框架或 模型。圖l提供了示出在以下討論的實施例中構(gòu)想的一般交互的元素的框圖。
在圖1中,位于源端點100、源端點101或源端點103處的應(yīng)用程序或用 戶訪問受保護應(yīng)用程序102。源端點100和103被認(rèn)為是外部端點,因為它們 并不被信任來提供特定信息。源端點100通過網(wǎng)絡(luò)106和集成層108來訪問受 保護應(yīng)用程序102。源端點103通過集成層108來訪問受保護應(yīng)用程序102。 源端點101也通過集成層108來訪問受保護應(yīng)用程序102,但受到受保護應(yīng)用 程序102的信任。
集成層108認(rèn)證向集成層108提交消息的用戶并將消息傳送至受保護應(yīng)用 程序102的其他部分以供處理。在大多數(shù)實施例中,集成層108采用web服務(wù) 或消息通信網(wǎng)關(guān)的形式。集成層108還包括位于web服務(wù)或消息通信網(wǎng)關(guān)和源 端點100和103之間的可信中介。集成層108的一部分被認(rèn)為是受保護應(yīng)用程 序102的一部分,而其他部分可能在受保護應(yīng)用程序102的外部。
圖2提供了圖1的各元素的更詳細(xì)的框圖。在圖2中,源端點100由兩個 單獨的源端點260和280來描繪。這些源端點通過各自的外部網(wǎng)絡(luò)268和288
6連接至集成層108。在一個實施例中,網(wǎng)絡(luò)268和288是因特網(wǎng)。在其他實施 例中,每一個網(wǎng)絡(luò)都是不同的網(wǎng)絡(luò)連接。源端點101被描繪為源端點261和281。 源端點261和281直接或通過被稱為內(nèi)聯(lián)網(wǎng)的內(nèi)部網(wǎng)絡(luò)連接至集成層。源端點 103被描繪為源端點263和283并且也是直接或通過內(nèi)部網(wǎng)絡(luò)連接至集成層。
源端點261、 263和260使用網(wǎng)關(guān)消息通信來將消息發(fā)送至受保護應(yīng)用程 序104。這一網(wǎng)關(guān)消息通信可包括使用諸如文件共享和微軟消息排隊(MSMQ) 等網(wǎng)關(guān)傳輸。源端點261將消息通過內(nèi)部網(wǎng)絡(luò)(未示出)直接提供給網(wǎng)關(guān)傳輸 200。源端點263通過內(nèi)部網(wǎng)絡(luò)上的中介213將消息發(fā)送至網(wǎng)關(guān)傳輸200。源端 點260通過外部網(wǎng)絡(luò)268將消息發(fā)送至中介210。中介210直接或通過內(nèi)部網(wǎng) 絡(luò)(未示出)將消息發(fā)送至網(wǎng)關(guān)傳輸200。
中介210和213被授權(quán)代表其各自的源端點提交入站請求。中介可以是諸 如應(yīng)用程序或服務(wù)器等源端點和應(yīng)用程序之間受到該應(yīng)用程序信任的任何邏 輯"中間人"。中介210和213被信任來可靠地并準(zhǔn)確地指示誰向該中介提交 了請求。可信中介具有以下特性
a. 對應(yīng)于該可信中介的用戶帳戶(被稱為中介用戶)必須在允許該 可信中介提交請求的應(yīng)用程序中建立;
b. 該可信中介必須被配置成代表源端點提交;
c. 該可信中介必須使用某種形式的認(rèn)證來設(shè)置源端點用戶(將在以 下進一步描述)。
d. 對于單個源端點可以存在多個可信中介。
網(wǎng)關(guān)傳輸適配器202接受來自網(wǎng)關(guān)傳輸200的消息并將其置于網(wǎng)關(guān)隊列 204中。入站批處理器206周期性地掃描網(wǎng)關(guān)隊列204以査找新消息,檢索消 息并使用將在以下進一步描述的集成框架218來處理這些消息。
源端點281通過將消息直接發(fā)送至因特網(wǎng)信息服務(wù)器(IIS) 214以調(diào)用 web服務(wù)216來將消息發(fā)送至受保護應(yīng)用程序104。通常,源端點281在與IIS 214相同的內(nèi)部網(wǎng)絡(luò)上。源端點283通過經(jīng)由進而將消息發(fā)送至IIS 214的中介 223發(fā)送消息來將消息發(fā)送至受保護應(yīng)用程序104。源端點283和中介223都 在與IIS 214相同的內(nèi)部網(wǎng)絡(luò)上。源端點280通過經(jīng)由外部網(wǎng)絡(luò)288與中介220 進行通信來將消息發(fā)送至受保護應(yīng)用程序104。該中介然后將消息發(fā)送至IIS
7214以調(diào)用web服務(wù)216。通常,源端點220在與IIS 214相同的內(nèi)部網(wǎng)絡(luò)上。 web服務(wù)216與應(yīng)用程序104中的集成框架218進行通信以執(zhí)行與消息相 關(guān)聯(lián)的動作。集成框架218處理該消息以執(zhí)行該動作,如將在以下進一步描述 的。
在一個實施例中,到消息通信網(wǎng)關(guān)或到web服務(wù)的每一條入站消息都指 定以下消息首部數(shù)據(jù)源端點、目標(biāo)端點、源端點用戶(可任選)、動作和消 息ID。此外,每一條消息都必須具有相關(guān)聯(lián)的提交用戶。
源端點標(biāo)識與該入站消息的產(chǎn)生相關(guān)聯(lián)的伙伴或應(yīng)用程序。每一個源端點 都必須向受保護應(yīng)用程序注冊并且與該源端點相關(guān)的數(shù)據(jù)必須在注冊期間存 儲。該數(shù)據(jù)包括與源端點相關(guān)聯(lián)的源端點用戶帳戶、源端點可通過其傳遞它的 消息的可信中介用戶、以及源端點可激活的動作。
源端點用戶是與試圖執(zhí)行消息的凈荷中所描述的動作的源端點相關(guān)聯(lián)的 用戶帳戶。在執(zhí)行動作期間,將使用關(guān)于該源端點用戶的帳戶信息來代表該用 戶運行該應(yīng)用程序以使得與該消息的動作相關(guān)聯(lián)的數(shù)據(jù)庫中的改變可被記錄 為是由該源端點用戶執(zhí)行的,并且在某些實施例中使得可以實現(xiàn)行級安全措施 以限制源端點用戶對數(shù)據(jù)庫的訪問。
源端點用戶或者由中介設(shè)置或者被設(shè)置成匹配提交用戶,其是將消息提供 給網(wǎng)關(guān)傳輸或web服務(wù)的用戶帳戶。源端點不被允許直接設(shè)置源端點用戶。
目標(biāo)端點標(biāo)識受保護應(yīng)用程序中的、有時被稱為公司的帳戶。每一個帳戶 或公司都具有一組相關(guān)聯(lián)的數(shù)據(jù)庫條目和數(shù)據(jù)庫表結(jié)構(gòu)。每一條消息只被允許
影響與同該消息首部中的目標(biāo)端點相關(guān)聯(lián)的公司相關(guān)聯(lián)的數(shù)據(jù)。
源端點和目標(biāo)端點通常由源端點或由中介(如果使用中介的話)放置于首
部中。當(dāng)使用中介時,源端點用戶由該中介基于其對該源端點用戶的認(rèn)證來添
加。當(dāng)不使用中介時,源端點用戶被設(shè)置成匹配提交用戶。
動作指定將要由受保護應(yīng)用程序中的業(yè)務(wù)類來執(zhí)行的操作。每一個動作都
映射到一業(yè)務(wù)類和該類中將執(zhí)行該動作的方法。對于web服務(wù),每一種web
服務(wù)方法都與不同的動作相關(guān)聯(lián)。結(jié)果,調(diào)用web服務(wù)方法的動作導(dǎo)致選擇一
動作。在這些實施例中,動作不必在消息首部中列出。
消息ID為消息提供標(biāo)識符以允許冪等性(idempotency),以便確保消息只被處理一次。
提交用戶是向web服務(wù)提交消息或?qū)⑾⒎胖迷诰W(wǎng)關(guān)傳輸上的實體的用 戶名。例如,如果中介220將消息放置在web服務(wù)216中,則中介220在被稱 為中介用戶的、將被認(rèn)為是提交用戶的用戶帳戶下運行。如果源端點281向 web服務(wù)提交消息,則與源端點281相關(guān)聯(lián)的用戶帳戶將會是提交用戶。提交 用戶由IIS 214和網(wǎng)關(guān)傳輸200通過認(rèn)證過程來確定,且并非取自消息首部或 該消息的凈荷。用于認(rèn)證用戶的技術(shù)是公知的并且包括請求用戶名和諸如口令 (純文本、加密的或散列的)、該口令被存儲在該提交用戶所使用的機器上的 指示、或數(shù)字證書等某種形式的安全憑證。檢査安全憑證以確定其是否匹配對 應(yīng)于該用戶名存儲的安全憑證。如果它匹配,則該用戶名得到認(rèn)證。如果不匹 配,則該認(rèn)證過程失敗且源端點或中介被拒絕訪問1IS214或網(wǎng)關(guān)傳輸200。
消息的凈荷還可包括允許業(yè)務(wù)類208生成諸如伙伴標(biāo)識符或雇員標(biāo)識符 等源端點約束的信息。該約束幫助阻止其中與一個伙伴相關(guān)聯(lián)的源端點發(fā)送另 一伙伴的文檔的欺騙。因此,該文檔的凈荷必須與該源端點一致以便能夠提交 改變,如將在以下進一步討論的。
圖3提供了用于在其中消息通過web服務(wù)方法來傳遞的一個實施例中實 施安全模型的過程的流程圖。在步驟300中,IIS 214或者從諸如源端點281 等源端點或者從諸如中介220和223等中介接收消息。如上所述,用戶帳戶由 1IS214來認(rèn)證以確定該源端點或中介的用戶名。該用戶名是提交用戶。如果該 用戶帳戶無法得到認(rèn)證,則IIS 214返回一錯誤并且該過程結(jié)束。
一旦該提交用戶得到認(rèn)證,就在步驟302處激活與被發(fā)送至IIS 214的消 息相關(guān)聯(lián)的web服務(wù)方法。在步驟304處,web服務(wù)216通過使用該源端點的 用戶名作為參數(shù)來調(diào)用LogonAs API 240來作為源端點用戶登錄到受保護應(yīng)用 程序104。對于來自中介220和223的消息,源端點用戶己由中介放置于消息 的首部中。對于來自源端點281的消息,如果該源端點不指定源端點用戶,則 提交用戶被用作源端點用戶。如果該源端點指定源端點用戶,則源端點用戶必 須匹配提交用戶。
LogonAs API 240認(rèn)證web服務(wù)216在其下運行的代理用戶帳戶并且然后 設(shè)置應(yīng)用程序104中的參數(shù)以使得應(yīng)用程序104中的業(yè)務(wù)類如同LogonAs調(diào)用
9中所提供的用戶已經(jīng)直接登錄到應(yīng)用程序104那樣運行。
這種類型的登錄此處被稱為扮演源端點用戶。在某些實施中,LogonAs240 不需要源端點用戶的口令。由此,web服務(wù)216能夠作為源端點用戶登錄到受 保護應(yīng)用程序104而無需該源端點用戶的口令。如果源端點用戶未被授權(quán)訪問 該應(yīng)用程序,則對LogonAs API 240的調(diào)用將會失敗。
在步驟310處,web服務(wù)216將首部、消息正文和提交用戶傳入到受保護 應(yīng)用程序104中的集成框架218中。在許多實施例中,web服務(wù)216使用文檔 上下文參數(shù)來指定消息首部數(shù)據(jù)。因此,文檔上下文參數(shù)包括對應(yīng)于源端點、 目標(biāo)端點、源端點用戶、消息ID和動作的字段。提交用戶作為一單獨的參數(shù) 來傳遞。
在步驟312處,集成框架218使用目標(biāo)端點來選擇帳戶或公司。消息的確 認(rèn)然后使用與所選公司相關(guān)聯(lián)的屬性來執(zhí)行。
在步驟314處,集成框架218定位帳戶/公司數(shù)據(jù)242以確定所指定的源 端點對該公司是否有效。如果對該公司無效,則返回一錯誤。如果該源端點是 有效的,則該過程在步驟316處繼續(xù),在步驟316中,集成框架218檢索源端 點數(shù)據(jù)244并確定源端點用戶、中介用戶(如果有的話)和動作對該源端點是 否有效。確認(rèn)源端點用戶和中介用戶(如果有的話)通過首先檢査提交用戶是 否與該源端點用戶不同來執(zhí)行。如果該提交用戶是不同的,則該過程確定該提 交用戶是否被配置為對于該源端點的可信中介。如果該提交用戶與該源端點用 戶相同,則該過程確定該用戶是否被配置為該源端點的源端點用戶。如果這些 確認(rèn)中的任一個失敗,則向源端點返回一錯誤并且不執(zhí)行動作。
在步驟318處,集成框架218調(diào)用業(yè)務(wù)類208中的方法來處理與消息相關(guān) 聯(lián)的動作。在某些實施例中,當(dāng)調(diào)用業(yè)務(wù)類208時,該業(yè)務(wù)類激活對于其訪問 的表的行級安全措施。行級安全措施控制特定用戶能夠讀取、寫入或創(chuàng)建什么 數(shù)據(jù)。因為受保護應(yīng)用程序104在源端點用戶帳戶下運行,所以該行級安全措 施將基于授予該源端點用戶的許可來做出安全判定。因此,如果一特定用戶不 被允許査看表中的特定記錄,則打開行級安全措施將導(dǎo)致試圖訪問這些記錄的 動作失敗或僅返回該源端點用戶被允許接收的數(shù)據(jù)。
在處理期間,業(yè)務(wù)類208基于消息的凈荷來標(biāo)識約束。在步驟320處,業(yè)務(wù)類208將這些約束連同響應(yīng)一起返回至集成框架。在步驟322處,集成框架 218將從業(yè)務(wù)類接收到的約束與存儲在源端點數(shù)據(jù)244中的約束列表進行比較 以確定是否提交由業(yè)務(wù)類208做出的改變或是否回退由業(yè)務(wù)類208做出的改 變。與該約束列表的比較可包括在業(yè)務(wù)類返回表示不存在約束的值的情況下指 示一令人滿意的比較,基于對應(yīng)于列表中的特定約束屬性和由業(yè)務(wù)類返回的約 束的各個值之間的匹配來指示一令人滿意的比較,以及在涉及對應(yīng)于多個約束 屬性的值的復(fù)雜布爾表達(dá)式返回真值的情況下指示一令人滿意的比較。如果該 比較并不令人滿意,則回退這些改變并將向源端點返回一錯誤。如果該比較是 令人滿意的,則提交由業(yè)務(wù)類做出的改變。
在步驟324處,集成框架218將對動作的響應(yīng)返回至web服務(wù)216,其將 該響應(yīng)返回至源端點。集成框架218還更新日志246以示出所采取的動作、源 端點用戶、源端點、目標(biāo)端點、消息Id、以及提交用戶。稍后可使用該信息來 標(biāo)識安全措施違背方面的可能的嘗試。
通過允許提交用戶與源端點用戶不同,同時始終在IIS 214處認(rèn)證該提交 用戶,各實施例允許應(yīng)用程序的功能通過中介展示給外部伙伴而不使該應(yīng)用程 序暴露給嚴(yán)重的安全威脅。此外,將中介用戶連系到源端點幫助防止源端點欺 騙中介,因為即使源端點能夠克服該中介處的安全措施,本發(fā)明各實施例的安 全模型也不會在該中介用戶未被配置成代表該源端點提交的情況下處理消息。
圖4提供了在其中消息使用網(wǎng)關(guān)消息通信來傳遞的一個實施例中用于實 施安全模型的過程的流程圖。在圖4的步驟400中,網(wǎng)關(guān)傳輸200認(rèn)證或者是 源端點用戶或者是中介用戶的提交用戶。基于該認(rèn)證,網(wǎng)關(guān)傳輸200接受來自 該提交用戶的消息并用該提交用戶的用戶名來對該消息加戳。在步驟401處, 網(wǎng)關(guān)傳輸適配器202從該傳輸讀取消息和提交用戶并將該消息和提交用戶放置 于網(wǎng)關(guān)隊列204中。
在步驟402處,入站批處理器206從網(wǎng)關(guān)隊列204加載消息。在步驟404 處,批處理器206選擇一消息及其相應(yīng)的提交用戶。在步驟406處,入站批處 理器206確定該源端點用戶的用戶名。對于來自中介的消息,源端點用戶從消 息首部中提取。對于直接來自源端點的消息,源端點用戶被設(shè)置成提交用戶。 批處理器然后調(diào)用用戶ID轉(zhuǎn)換239,其將外部源端點用戶憑證映射到內(nèi)部應(yīng)
11用程序用戶ID。該批處理器然后調(diào)用RunAsAPI248;其允許該入站批處理器 使用該內(nèi)部應(yīng)用程序用戶ID來作為源端點用戶運行。在該上下文中,該批處 理器扮演源端點用戶。注意,如果源端點用戶未被授權(quán)調(diào)用應(yīng)用程序,則RunAs API將會失敗。
在步驟407處,入站批處理器206將消息、消息首部和提交用戶傳遞給集 成框架218。
集成框架218在步驟408處基于消息首部中的目標(biāo)端點來選擇帳戶/公司 并且在步驟410處使用帳戶/本地公司數(shù)據(jù)242來檢査源端點對該帳戶/公司是 否有效。如果該源端點對該帳戶/公司是無效的,則該過程結(jié)束并返回一錯誤。
在步驟412處,集成框架218使用源端點數(shù)據(jù)244來檢查源端點用戶、中 介用戶和動作對源端點是否有效。確認(rèn)源端點用戶和中介用戶(如果有的話) 通過首先檢査提交用戶是否與該源端點用戶不同來執(zhí)行。如果該提交用戶是不 同的,則該過程確定該提交用戶是否被配置為對于該源端點的可信中介。如果 該提交用戶與該源端點用戶相同,則該過程確定該用戶是否被配置為該源端點 的源端點用戶。如果這些確認(rèn)中的任一個失敗,則該過程結(jié)束并返回一錯誤。
在步驟416處,集成框架218調(diào)用業(yè)務(wù)類208中的方法來執(zhí)行在消息首部 中發(fā)現(xiàn)的動作。在某些實施例中,業(yè)務(wù)類208為其訪問的每一張表設(shè)置行級安 全措施以使得對表中的記錄的訪問基于授予源端點用戶的許可。業(yè)務(wù)類208還 在執(zhí)行動作期間基于消息來提取約束。
在步驟418處,集成框架218從業(yè)務(wù)類208接收約束以及對動作的響應(yīng)。 在步驟420處,集成框架218將這些約束與在對應(yīng)于源端點的源端點數(shù)據(jù)244 中發(fā)現(xiàn)的約束列表進行比較。如果該比較是令人滿意的,則集成框架218提交 由業(yè)務(wù)類208做出的改變。如果該比較不令人滿意,則集成框架218回退由業(yè) 務(wù)類208做出的改變。
在步驟422處,集成框架218用源端點、目標(biāo)端點、源端點用戶、提交用 戶、消息W和所執(zhí)行的動作來更新日志246。集成框架218將對動作的響應(yīng)返 回至批處理器206,其將該響應(yīng)寫入到網(wǎng)關(guān)隊列204中。
在步驟424處,批處理器206確定是否存在更多消息要處理。如果存在更 多消息,則該過程返回至步驟404并對消息執(zhí)行步驟406至422。當(dāng)不存在更
12多消息時,該過程在步驟426處繼續(xù),其中一單獨的出站批處理器(未示出)
發(fā)送來自網(wǎng)關(guān)隊列204的響應(yīng)消息。
圖5提供了其中可以使用本發(fā)明的安全模型的環(huán)境的示例。在圖5中,一 組貿(mào)易伙伴500、 502、 504、和506通過增值網(wǎng)絡(luò)508連接至位于應(yīng)用程序房 屋(premises)上的電子數(shù)據(jù)交換(EDI)服務(wù)器510。貿(mào)易伙伴500具有一組 分支位置514、 516和518。在圖5中,分支位置514中的源端點將購買定單 520通過增值網(wǎng)絡(luò)508發(fā)送至EDI服務(wù)器510。
EDI服務(wù)器510如上所述地認(rèn)證該用戶并確定源端點用戶是
"Extranet\NW—User"?;谠撜J(rèn)證,EDI服務(wù)器510能夠確定該源端點是
"Northwind" 。 EDI服務(wù)器510還能夠基于購買定單520或源端點和存儲在 EDI服務(wù)器510中的目標(biāo)端點之間的關(guān)聯(lián)中的信息來將該目標(biāo)端點標(biāo)識為
"MyAxapta" 。 EDI服務(wù)器還基于購買定單520來確定動作"CreateSO"。通 過使用該信息,EDI服務(wù)器510生成具有包括消息ID、源端點用戶、源端點、 目標(biāo)端點和動作的消息首部的消息524。消息524還在該消息的正文中包括來 自購買定單520的信息。
消息524被供給IIS和web服務(wù)526,其認(rèn)證EDI服務(wù)器510以確定提交 用戶的用戶名是"IntraneAEDI—Sys"。然后將該提交用戶和消息轉(zhuǎn)發(fā)給集成框 架528,如以上所討論的。
集成框架528確認(rèn)該消息以確保源端點"Northwind"對目標(biāo)端點
"MyAxapta"是有效的。集成框架528還確定源端點用戶"ExtraneANW—User"、 中介用戶"Intranet\EDI—Sys"和動作"CreateSO"對源端點"Northwind"是否 有效。
集成框架528調(diào)用業(yè)務(wù)類530中的方法來執(zhí)行動作"CreateSO"。業(yè)務(wù)類 530執(zhí)行該動作并返回響應(yīng)和集成框架528針對約束列表檢查的約束532。集 成框架528然后返回該響應(yīng)并更新日志。
圖6提供了其中可以使用本發(fā)明的安全模型的另一環(huán)境的示例。在圖6 中,貿(mào)易伙伴600、 602、 604和606各自具有相應(yīng)的FTP文件夾610、 612、 614和616。在貿(mào)易伙伴600的分支位置618處的用戶在被FTP服務(wù)器認(rèn)證之 后將購買定單620存儲在FTP文件夾610中。基于該認(rèn)證,該購買定單用將該購買定單放置于FTP文件夾610中的用戶的用戶名來加戳。
自定義.NET應(yīng)用程序622從FTP文件夾610中檢索購買定單620并使用 它來形成消息624。具體而言,.NET應(yīng)用程序622創(chuàng)建消息624中的首部,其 包括取自加戳在該消息上的用戶名的源端點用戶"Extranet\NW_user"的標(biāo)識、 以及基于FTP文件夾的身份來確定的源端點"Northwind"和目標(biāo)端點
"MyAxapta"的標(biāo)識。.NET應(yīng)用程序622還基于存儲在該FTP文件夾中的消 息類型來將動作字段填為"CreateSO" 。 .NET應(yīng)用程序622使用該購買定單 來形成消息624的正文。
.NET應(yīng)用程序622駐留在應(yīng)用程序房屋626上,其還包含應(yīng)用程序628 及IIS和web服務(wù)630。消息624被提供給IIS和web服務(wù)630,其將.NET應(yīng) 用程序622的用戶名認(rèn)證為"Intranet/CustApp_Sys"。在該配置中,該用戶名 被指定為提交用戶和中介用戶。web服務(wù)630將提交用戶
"Intranet/CustApp_Sys"和消息624提供給應(yīng)用程序628中的集成框架632。 集成框架632通過確定源端點"Northwind"對于目標(biāo)端點帳戶"MyAxapta" 是否被允許,以及源端點用戶"Extranet\NW_User "、中介用戶
"Intranet\CustApp—Sys"和動作"CreateSO"對于源端點"Northwind"是否被 允許來認(rèn)證該消息。在該消息得到確認(rèn)之后,集成框架632調(diào)用基于該消息的 正文來檢索約束的業(yè)務(wù)類634。在圖6的示例中,消息正文中的顧客ID "NT East"由業(yè)務(wù)類634用來檢索約束"C-Nol"。集成框架632將該約束與約束 列表進行比較以確定是提交還是回退由業(yè)務(wù)類634做出的改變。集成框架632 然后記錄源端點用戶、源端點、目標(biāo)端點、提交用戶、消息Id和動作,并通 過IIS和web服務(wù)630將來自業(yè)務(wù)類634的響應(yīng)返回至自定義.NET應(yīng)用程序 622。
圖7提供了其中可以使用本發(fā)明的安全模型的另一環(huán)境的示例。在圖7 中,外部伙伴702、 704、 706和708與服務(wù)器700進行通信,其在一個實施例 中是來自微軟公司的BIZTAL^品牌服務(wù)器。服務(wù)器700位于房屋710上, 房屋710還包含應(yīng)用程序712。外部伙伴702包括遠(yuǎn)程位置714、 716和718。
遠(yuǎn)程位置718處的用戶將購買定單720發(fā)送至服務(wù)器700。服務(wù)器700將 該用戶認(rèn)證為"Extranet/NW一User"并確定該用戶與源端點"Northwind"和目標(biāo)端點"MyAxapta"相關(guān)聯(lián)。服務(wù)器700創(chuàng)建消息722的正文并基于購買定單 720的內(nèi)容標(biāo)識動作"CreateSO"。服務(wù)器700將消息ID、源端點用戶的身份、 源端點、目標(biāo)端點和動作放置于消息722的消息首部中。
服務(wù)器700與應(yīng)用程序712中的傳輸適配器740進行通信。傳輸適配器 740將與服務(wù)器700相關(guān)聯(lián)的用戶帳戶"Intranet\BTS_Sys"標(biāo)識為提交用戶。 傳輸適配器將該消息和提交用戶放置于網(wǎng)關(guān)隊列742上。批處理器744從網(wǎng)關(guān) 隊列取得該消息和提交用戶并調(diào)用RunAs API來代表源端點用戶 "Extranet\NW—User"運行。批處理器744然后將該消息和提交用戶傳遞給集 成框架724。
集成框架724確定源端點"Northwind"對目標(biāo)端點"MyAxapta"是否有 效。集成框架724還確定源端點用戶"Extranet\NW—User"、中介用戶 "Intranet\BTS—Sys"和動作"CreateSO"對源端點"Northwind"是否有效。
如果這些消息參數(shù)是有效的,則集成框架724調(diào)用業(yè)務(wù)類726,其執(zhí)行該 動作并返回響應(yīng)和約束728。集成框架724將該約束與約束列表進行比較以確 定是提交還是回退這些改變。集成框架724然后更新日志并將該響應(yīng)返回至處 理器744。處理器744然后將該響應(yīng)放置于網(wǎng)關(guān)隊列中,適配器740將該響應(yīng) 從該網(wǎng)關(guān)隊列發(fā)送至服務(wù)器700。服務(wù)器700還將該響應(yīng)返回至遠(yuǎn)程位置718。
圖8提供了其中銷售輸入員工808代表一個或多個伙伴800、 802、 804 和806行動的配置的框圖。例如,銷售輸入員工808可從伙伴800的位置812 接收電話呼叫并可基于該電話呼叫創(chuàng)建購買定單810。
銷售輸入員工808使用自定義Win窗體應(yīng)用程序814來輸入購買定單信 息。自定義Win窗體814認(rèn)證銷售輸入員工808并將銷售輸入員工808的用戶 名"Intranet\Clerk—user"指定為源端點用戶并將"WinFormsApp"指定為源端 點?;谟射N售輸入員工808置于購買定單810中的信息,Win窗體應(yīng)用程序 814標(biāo)識目標(biāo)端點"MyAxapta"和動作"CreateSO"。該信息被置于消息816 的首部中并且該消息的正文是基于購買定單810中的其他信息來生成的。
自定義Win窗體814將消息816發(fā)送至IIS和web服務(wù)818。IIS 818將銷 售員工808認(rèn)證為消息816的提交用戶。因此,銷售輸入員工808既是提交用 戶又是源端點用戶。在這種情況下,指定該消息上的源端點用戶是可任選的,因為該源端點用戶與提交用戶相同。當(dāng)沒有在該消息上指定時,源端點用戶被
設(shè)置成與提交用戶相同。IIS和web服務(wù)818將提交用戶和消息816傳入到應(yīng) 用程序822中的集成框架820中。
集成框架820確定源端點"WinFormsApp"對目標(biāo)端點"MyAxapta"是 否有效,并且還確定源端點用戶"Intranet\Clerk_user"和動作"CreateSO"對 源端點"WinFormsApp"是否有效。如果這些參數(shù)都是有效的,則集成框架820 調(diào)用業(yè)務(wù)類824來執(zhí)行該消息中所表示的動作。業(yè)務(wù)類824返回響應(yīng)和集成框 架820針對"WinFormsApp"的約束列表進行比較的約束826。集成框架820 然后更新日志并通過IIS和web服務(wù)818將響應(yīng)返回至銷售輸入員工。
圖9提供了其中貿(mào)易伙伴900、 902、 904和906與多個銷售代表908、 910 和912中的一個進行通信的配置。每一個銷售代表都用自定義Win窗體應(yīng)用程 序914來工作以生成銷售定單920。例如,與貿(mào)易伙伴900相關(guān)聯(lián)的遠(yuǎn)程位置 918處的用戶連系代表他們生成銷售定單920的銷售代表908。
自定義Win窗體應(yīng)用程序914認(rèn)證該銷售代表并將該銷售代表的用戶名
"Intranet\RepA"設(shè)置為源端點用戶并將源端點設(shè)置為"SalesRepA"。自定義 Win窗體應(yīng)用程序914還使用銷售定單920中的信息來將目標(biāo)端點標(biāo)識為
"MyAxapta"并將動作標(biāo)識為"CreateSO"。通過使用該信息和購買定單920 中的其他信息,自定義Win窗體914生成消息922,其在該消息的正文中包括 銷售定單信息并包括指示源端點的身份、源端點用戶、目標(biāo)端點、動作和消息 ID的首部。
自定義Win窗體914將該消息發(fā)送至IIS和web服務(wù)916。IIS 916將銷售 代表908的用戶名"Intranet\RepA"認(rèn)證為提交用戶。因此,提交用戶和源端 點用戶是相同的。web服務(wù)916將該消息和提交用戶的身份提供給應(yīng)用程序926 中的集成框架924。
集成框架924驗證源端點"SalesRepA"對目標(biāo)端點"MyAxapta"是否有 效。集成框架924還驗證源端點用戶"Intranet\RepA"和動作"CreateSO"對 源端點"SalesRepA"是否有效。集成框架924然后激活業(yè)務(wù)類926以執(zhí)行該 動作。業(yè)務(wù)類926返回響應(yīng)和應(yīng)用程序接口針對源端點"SalesRepA"的約束 列表進行比較的約束928。集成框架924然后記錄該交易并通過IIS和web服務(wù)916將該響應(yīng)返回至銷售代表908。
圖10提供了其中位于與應(yīng)用程序1004相同的房屋1002上的本地應(yīng)用程 序1000是源端點的配置。
在圖10中,本地應(yīng)用程序1000由包含文件夾1008和.NET應(yīng)用程序1010 的服務(wù)器來認(rèn)證。本地應(yīng)用程序1000然后將銷售定單1006存儲在文件夾1008 中。在該存儲過程期間,購買定單1006用用戶名"lntraneALocalApp"來加戳。
.NET應(yīng)用程序1010從文件夾1008中檢索購買定單1006并使用購買定單 1006中的信息來構(gòu)造消息1012。具體而言,.NET應(yīng)用程序1010將源端點用 戶設(shè)置成本地應(yīng)用程序1000的用戶名"IntraneALocalApp"并基于加戳在該消 息上的用戶名來將源端點設(shè)置成"LocalApp" 。 .NET應(yīng)用程序1010或者基于 源端點或者基于銷售定單1006的內(nèi)容來將目標(biāo)端點設(shè)置成"MyAxapta"并基 于銷售定單1006的內(nèi)容將動作設(shè)置成"CreateSO"。
消息1012被提供給IIS和web服務(wù)1014,其將與.NET應(yīng)用程序1010相 關(guān)聯(lián)的用戶名"Intranet\Local—Sys"認(rèn)證為提交用戶。web服務(wù)1014將提交用 戶和消息1012提供給應(yīng)用程序1004中的集成框架1016。集成框架1016驗證 源端點"LocalApp"對目標(biāo)端點"MyAxapta"是否有效,并驗證中介用戶 "Intranet\Local—Sys"、源端點用戶"Intranet\LocalApp"和動作"CreateSO" 對源端點"LocalApp"是否有效。集成框架1016然后激活業(yè)務(wù)類1018來處理 該動作。
業(yè)務(wù)類1018返回響應(yīng)和集成框架1016針對源端點的約束列表進行比較的 約束1020。如果在約束和約束列表之間做出的比較是令人滿意的,則集成框架 1016提交由業(yè)務(wù)類1018做出的改變并記錄該交易。集成框架1016然后通過 web服務(wù)1014將該響應(yīng)返回至應(yīng)用程序1010。
圖11提供了其中位于與應(yīng)用程序1104相同的房屋1102上的本地應(yīng)用程 序1100是源端點并且直接傳送至消息網(wǎng)關(guān)的配置。
在圖11中,本地應(yīng)用程序1100由擔(dān)當(dāng)網(wǎng)關(guān)傳輸?shù)?、包含文件夾1108的 服務(wù)器來認(rèn)證。本地應(yīng)用程序1100然后將消息1112存儲在文件夾1108中。 消息1112由本地應(yīng)用程序1100來創(chuàng)建并包括指示"LocalApp"是源端點、 "MyAxapta"是目標(biāo)端點并且"createSO"是動作的消息首部。注意,源端點用戶并不在該消息首部中指定,因為源端點用戶的指定在不使用中介時是可任 選的。在該存儲過程期間,消息1112用作為提交用戶的、與應(yīng)用程序1100相
關(guān)聯(lián)的用戶名"Intranet\LocalApp"來加戳。
將消息1112和提交用戶提供給應(yīng)用程序1104中的傳輸適配器1114。傳 輸適配器1114將消息1112和提交用戶存儲在網(wǎng)關(guān)隊列1116中。批處理器1118 然后從網(wǎng)關(guān)隊列1116中移除該消息并調(diào)用RunAs API以便在源端點用戶下運 行。
批處理器1118將提交用戶和消息1112提供給集成框架1120。集成框架 1120驗證源端點"LocalApp"對目標(biāo)端點"MyAxapta"是否有效,并驗證源 端點用戶"Intranet\LocalApp"和動作"CreateSO"對源端點"LocalApp"是否 有效。集成框架1120然后激活業(yè)務(wù)類1122來處理該動作。
業(yè)務(wù)類1122返回響應(yīng)和集成框架1120針對源端點的約束列表進行比較的 約束1124。如果在約束和約束列表之間做出的比較是令人滿意的,則集成框架 1120提交由業(yè)務(wù)類1122做出的改變并記錄該交易。集成框架1120然后將該響 應(yīng)返回至批處理器1118,其將該響應(yīng)放置在網(wǎng)關(guān)隊列1116上。該響應(yīng)然后被 傳遞回本地應(yīng)用程序1100。
圖12示出了可在其上實現(xiàn)各實施例的合適計算系統(tǒng)環(huán)境1200的示例。計 算系統(tǒng)環(huán)境1200僅為合適的操作環(huán)境的一個示例,并非旨在對所要求保護的 主題的使用范圍或功能提出任何局限。也不應(yīng)該把計算環(huán)境1200解釋為對示 例性操作環(huán)境1200中示出的任一組件或其組合有任何依賴性或要求。
各實施例可用于各種其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置。適合在各實施 例中使用的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個人計算 機、服務(wù)器計算機、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、 機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機、大型計算機、電話系統(tǒng)、 包含上述系統(tǒng)或設(shè)備中的任一個的分布式計算環(huán)境等。
各實施例可在諸如程序模塊等由計算機執(zhí)行的計算機可執(zhí)行指令的通用 上下文中描述。 一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類 型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。 一些實施例被設(shè)計為在其中任務(wù) 由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來執(zhí)行的分布式計算環(huán)境中實施。在分布
18式計算環(huán)境中,程序模塊位于包括存儲器存儲設(shè)備的本地和遠(yuǎn)程計算機存儲介 質(zhì)中。
參考圖12,用于實現(xiàn)一些實施例的示例性系統(tǒng)包括計算機1210形式的通
用計算設(shè)備。計算機1210的組件可以包括,但不限于,處理單元1220、系統(tǒng) 存儲器1230和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元1220的 系統(tǒng)總線1221。
計算機1210通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能由 計算機1210訪問的任何可用介質(zhì),而且包含易失性、非易失性介質(zhì)以及可移 動和不可移動介質(zhì)。作為示例而非局限,計算機可讀介質(zhì)可以包括計算機存儲 介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù) 結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失 性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括,但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它 光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所需 信息且可以由計算機1210訪問的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或 其它傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊 或其它數(shù)據(jù),并包括任意信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指的是其一 個或多個特征以在信號中編碼信息的方式被設(shè)定或更改的信號。作為示例而非 限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì), 諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)。以上的任何組合也應(yīng)包括在計算機可 讀介質(zhì)的范圍內(nèi)。
系統(tǒng)存儲器1230包括易失性和/或非易失性存儲器形式的計算機存儲介 質(zhì),如只讀存儲器(ROM) 1231和隨機存取存儲器(RAM) 1232?;据斎?/輸出系統(tǒng)1233 (BIOS)包括如在啟動時幫助在計算機1210內(nèi)的元件之間傳 輸信息的基本例程,它通常儲存在ROM 1231中。RAM 1232通常包含處理單 元1220可以立即訪問和/或目前正在其上操作的數(shù)據(jù)和/或程序模塊。作為示例 而非局限,圖12示出了操作系統(tǒng)1234、應(yīng)用程序1235、其它程序模塊1236 和程序數(shù)據(jù)1237。
計算機1210還可以包括其它可移動/不可移動、易失性/非易失性計算機存
19儲介質(zhì)。僅作為示例,圖12示出了從不可移動、非易失性磁介質(zhì)中讀取或向
其寫入的硬盤驅(qū)動器1241,從可移動、非易失性磁盤1252中讀取或向其寫入 的磁盤驅(qū)動器1251,以及從諸如CDROM或其它光學(xué)介質(zhì)等可移動、非易失 性光盤1256中讀取或向其寫入的光盤驅(qū)動器1255??梢栽谑纠圆僮鳝h(huán)境中 使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但不限于, 磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。 硬盤驅(qū)動器1241通常由不可移動存儲器接口,諸如接口 1240連接至系統(tǒng)總線 1221,磁盤驅(qū)動器1251和光盤驅(qū)動器1255通常由可移動存儲器接口,諸如接 口 1250連接至系統(tǒng)總線1221。
上文討論并在圖12中示出的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算 機1210提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。在 圖12中,例如,硬盤驅(qū)動器1241被示為存儲操作系統(tǒng)1244、應(yīng)用程序1245、 其它程序模塊1246和程序數(shù)據(jù)1247。注意,這些組件可以與操作系統(tǒng)1234、 應(yīng)用程序1235、其它程序模塊1236和程序數(shù)據(jù)1237相同,也可以與它們不同。 操作系統(tǒng)1244、應(yīng)用程序1245、其它程序模塊1246和程序數(shù)據(jù)1247在這里 被標(biāo)注了不同的標(biāo)號是為了說明至少它們是不同的副本。
用戶可以通過諸如鍵盤1262、話筒1263和定點設(shè)備1261等輸入設(shè)備將 命令和信息輸入至計算機1210中,定點設(shè)備161諸如是鼠標(biāo)、跟蹤球或觸摸 墊。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口 1260連接至 處理單元1220,但也可以由其它接口或總線結(jié)構(gòu),諸如并行端口、游戲端口或 通用串行總線(USB)連接。監(jiān)視器1291或其它類型的顯示設(shè)備也經(jīng)由接口, 諸如視頻接口 1290連接至系統(tǒng)總線1221。除監(jiān)視器以外,計算機也可以包括 其它外圍輸出設(shè)備,諸如揚聲器1297和打印機1296,它們可以通過輸出外圍 接口 1295連接。
計算機1210使用到諸如遠(yuǎn)程計算機1280等一個或多個遠(yuǎn)程計算機的邏輯 連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計算機1280可以是個人計算機、手持設(shè)備、 服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,且一般包括以 上關(guān)于計算機1210描述的多個或所有的元件。圖12中所示的邏輯連接包括局 域網(wǎng)(LAN) 1271和廣域網(wǎng)(WAN) 1273,但也可以包括其它網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機1210通過網(wǎng)絡(luò)接口或適配器1271 連接至LAN 1270。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機1210通常包括調(diào)制 解調(diào)器1272或用于通過諸如因特網(wǎng)等WAN 1273建立通信的其它裝置。調(diào)制 解調(diào)器1272可以是內(nèi)置或外置的,它可以通過用戶輸入接口 1260或其它適當(dāng) 的機制連接至系統(tǒng)總線1221。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機1210所描述的 程序模塊或其部分可被儲存在遠(yuǎn)程存儲器存儲設(shè)備中。作為示例,而非限制, 圖12示出了遠(yuǎn)程應(yīng)用程序1285駐留在遠(yuǎn)程計算機1280上。可以理解,所示 的網(wǎng)絡(luò)連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手段。
盡管用對結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解, 所附權(quán)利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體 特征和動作是作為實現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1.一種方法,包括在用戶提交消息以使得應(yīng)用程序執(zhí)行動作時認(rèn)證提交用戶(300、400);使用所述應(yīng)用程序來確定所述提交用戶是否被授權(quán)代表存儲在所述消息中的源端點提交消息(316、412);以及在扮演存儲在所述消息中的源端點用戶(304、406)時調(diào)用所述應(yīng)用程序中的一種方法來執(zhí)行所述動作(318、416)。
2. 如權(quán)利要求1所述的方法,其特征在于,所述提交用戶與所述源端點用 戶不同。
3. 如權(quán)利要求l所述的方法,其特征在于,還包括確定來自所述源端點的消息對存儲在所述消息中的目標(biāo)端點是否有 效(314、 410)。
4. 如權(quán)利要求3所述的方法,其特征在于,所述目標(biāo)端點表示所述應(yīng)用程 序中的帳戶。
5. 如權(quán)利要求3所述的方法,其特征在于,還包括確定所述源端點用戶對 所述源端點是否有效(316、 412)。
6. 如權(quán)利要求5所述的方法,其特征在于,還包括確定所述動作對所述源 端點是否有效(316、 412)。
7. 如權(quán)利要求1所述的方法,其特征在于,還包括使用對于所述源端點用 戶的許可來在所述應(yīng)用程序中實施行級安全措施(318、 416)。
8. 如權(quán)利要求1所述的方法,其特征在于,還包括從所述方法接收至少一個約束(320、 418)并將所述至少一個約束與約束列表進行比較以確定是否提 交由所述方法做出的改變(322、 420)。
9. 如權(quán)利要求8所述的方法,其特征在于,所述約束列表與在所述消息中 發(fā)現(xiàn)的源端點相關(guān)聯(lián)。
10. —種具有用于執(zhí)行以下步驟的計算機可執(zhí)行指令的計算機可讀介質(zhì),所述步驟包括從提交用戶接收消息(300、 400),所述消息包括目標(biāo)端點和源端點; 確定所述消息中的源端點對所述消息中的目標(biāo)端點是否適當(dāng)(314、410);以及確定所述提交用戶是否被允許為給定源端點提交所述消息(316、412)。
11. 如權(quán)利要求10所述的計算機可讀介質(zhì),其特征在于,所述提交用 戶是源端點用戶。
12. 如權(quán)利要求10所述的計算機可讀介質(zhì),其特征在于,所述提交用 戶是中介用戶,并且其中所述中介用戶與中介(210、 213、 220、 223)相關(guān)聯(lián), 所述中介基于由源端點發(fā)送至所述中介的信息來生成所述消息。
13. 如權(quán)利要求12所述的計算機可讀介質(zhì),其特征在于,所述中介(210、 213、 220、 223)在生成所述消息之前認(rèn)證所述源端點用戶(263、 260、 283、 280)。
14. 如權(quán)利要求12所述的計算機可讀介質(zhì),其特征在于,還包括確定 所述源端點用戶是否是針對所述源端點來配置的(316、 412)。
15. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,還包括作為所述源端點用戶來訪問應(yīng)用程序(304、 406)。
16. 如權(quán)利要求15所述的計算機可讀介質(zhì),其特征在于,還包括執(zhí)行 所述應(yīng)用程序中的一種方法以使得所述方法基于所述消息的正文中的信息來 提供至少一個約束(320、 418),并將所述至少一個約束與同所述源端點相關(guān) 聯(lián)的約束列表進行比較(322、 420)。
17. —種方法,包括接收具有源端點用戶、目標(biāo)端點和源端點的消息(300、 400);確定所述源端點用戶是否被允許訪問與所述消息相關(guān)聯(lián)的應(yīng)用程序 (304、 406);確定所述源端點是否是針對所述目標(biāo)端點來配置的(314、 410);以及確定所述源端點用戶是否是針對所述源端點來配置的(316、 412)。
18. 如權(quán)利要求17所述的方法,其特征在于,還包括從不同于所述源 端點用戶的提交用戶接收所述消息,將所述提交用戶認(rèn)證為中介用戶(300、 400),以及確定所述中介用戶對所述源端點是否有效(316、 412)。
19. 如權(quán)利要求17所述的方法,其特征在于,還包括調(diào)用所述應(yīng)用程 序中的一種方法來執(zhí)行與所述消息相關(guān)聯(lián)的動作(318、 416),從所述方法接 收至少一個約束(320、 418),將所述至少一個約束與同所述源端點相關(guān)聯(lián)的 約束列表進行比較(322、 420),以及基于所述至少一個約束和所述約束列表 之間的比較來確定是否提交由所述方法做出的改變(322、 420)。
20. 如權(quán)利要求17所述的方法,其特征在于,還包括確定與所述消息 相關(guān)聯(lián)的動作對所述源端點是否有效(316、 412)。
全文摘要
提供了控制對受保護應(yīng)用程序的訪問的安全模型。在該安全模型之下,在用戶提交一消息以使得應(yīng)用程序執(zhí)行一動作時認(rèn)證該提交用戶。然后使用該應(yīng)用程序來確定該提交用戶是否被授權(quán)代表存儲在該消息中的源端點提交消息。然后在扮演存儲在該消息中的源端點用戶時調(diào)用該應(yīng)用程序中的一種方法來執(zhí)行該動作。
文檔編號G06F21/00GK101496022SQ200780028595
公開日2009年7月29日 申請日期2007年7月26日 優(yōu)先權(quán)日2006年7月28日
發(fā)明者A·斯里尼瓦桑, J·科默斯科特, V·庫馬 申請人:微軟公司