使用客戶端授權的角色
您可以使用角色型安全性來建立授權原則,判斷要讓哪個用戶端或用戶端使用哪些授權單位。 您決定誰應該能夠執行哪些動作並存取哪些資源。
每當用戶嘗試存取任何應用程式資源時,角色都會做為叫用的訪問控制機制,來促進這項功能。 角色基本上是使用者清單,更精確地說是共用相同安全性許可權的用戶符號類別。 當您將角色指派給應用程式資源時,您會將該資源的訪問許可權授與該角色的成員。
因此,您可以將它宣告為角色,然後將角色指派給特定資源,以定義非常特定的安全性許可權。 部署應用程式時,系統管理員可以使用實際的使用者和使用者群組填入角色。 當應用程式執行時,COM+ 會藉由執行角色檢查來強制執行原則。
基本上,角色有助於保護您的程序代碼,也就是 COM+ 應用程式的用戶端可以呼叫的方法。 每當客戶端嘗試呼叫應用程式中元件公開的方法時,就會檢查角色成員資格。 如果呼叫者位於指派給所呼叫方法或資源的角色中,呼叫就會成功;否則,它會失敗。
宣告式角色型安全性
使用宣告式角色型安全性時,您會使用元件服務系統管理工具或 管理員 函式,以系統管理方式將角色宣告為應用程式資源。 設定宣告式安全性的位置和方式,將決定為您的應用程式繪製安全性界限的位置。 如需詳細資訊,請參閱 安全性界限。
您可以將指定的角色指派給整個應用程式、特定元件、元件中的特定介面,或指派給介面上的特定方法。 角色指派會繼承至包含的自然鏈結,也就是說,如果您將角色指派給元件,則會隱含地指派給該元件所公開的每個介面和方法。
透過方法層級角色指派的可用性,您可以有效地協助保護尚未考慮安全性的元件和介面。 不過,如果方法本身不是宣告式角色指派的安全性實體,您可能需要進行程序設計角色檢查。 決定如何透過方法考慮商務功能時,通常最好記住安全性:否則,您可能會發現自己會在最後一分鐘新增與安全性相關的程序代碼。
如需設定角色型安全性的詳細程式,請參閱 設定角色型安全性。
程式設計安全性
在某些情況下,您可能會想要將安全性邏輯放入元件,同時仍使用角色型安全性。 可能是您無法透過方法決定所有存取決策,或選擇不決定。 例如,您可能有私人應用程式資源,可能是特定資料庫,您想要只允許方法的某些呼叫端存取,同時排除其他呼叫者。 或者,您可能有單一 TransferMoney 方法,並想要限制某些呼叫端可以轉移的數量。
在這種情況下,您可以在程式代碼中執行角色檢查。 提供簡單的 API,可讓您檢查安全性是否已開啟,以及呼叫者或特定使用者是否處於指定角色。 只有在啟用角色型安全性時,才能使用此功能。 這表示您仍然可以利用宣告式角色型安全性,並在需要時以程序設計方式將其擴充至更精細的粒度層級。
此外,當您使用角色型安全性時,您可以以程序設計方式存取元件之呼叫鏈結中所有上游呼叫端的相關信息。 當您想要保留詳細的稽核線索時,這特別有用。
如需如何執行程式碼中角色檢查以及如何存取安全性呼叫內容資訊的說明,請參閱 程式設計元件安全性。
授權和驗證
有意義的授權假設您確信客戶端實際上是他們所說的用戶端。 用戶端身分識別的驗證會由驗證服務分開處理。 如果沒有驗證,您基本上會在榮譽系統上讓來電者。 如需影響 COM+ 應用程式之驗證的描述,請參閱 客戶端驗證。
相關主題