⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 securitylevel3.idl

📁 MICO2.3.13 corba 环境平台
💻 IDL
📖 第 1 页 / 共 3 页
字号:
//tabstop=4//***********************************************************************// ORBAsec SL3                                                     // ----------------------------------------------------------------------// Copyright (C) 2001 Adiron, LLC.                                 //                    All rights reserved.                         // ----------------------------------------------------------------------// $Id$//***********************************************************************//// Marked modifications Copyright (C) 2002, 2003 ObjectSecurity Ltd.//#ifndef _SECURITY_LEVEL3_IDL_#define _SECURITY_LEVEL3_IDL_#include <mico/security/sl3pm.idl>#include <mico/security/sl3cm.idl>#include <mico/security/sl3aqargs.idl>//#include <mico/orb.idl>#include <mico/policy.idl>#include <mico/timebase.idl>#pragma prefix "adiron.com"/** * The Security Level 3 module contains the data definitions and * the Application Programmers Interface for dealing with the  * ORBAsec SL3 Security, and the new CSIv2 Security Protocol, which has * been adopted by the OMG. * <p> * The SecurityLevel3 interfaces and its security data structures * are based on the Principal Calculus. This is a mathematical * model of representing principals for the use of access control * and auditing. * <p> * The SecurityLevel3 Security Service is represented by two objects * that are returned by the ORB's resolve_initial_reference call. * Those two objects are the SecurityManager and the SecurityCurrent. * Other objects associated with the security service emanate from * these two objects. * <p> * The SecurityLevel3 Security Service has a Credentials model. This * model, which is heavily based on the Principal Calculus, yields * an API for accessing principal information. The credentials  * represent a principal's credentials, as well as the establishment * of security contexts between client and servers. * <p> * The SecurityLevel3 Security Service is currently CSIv2 Level 2 * compliant: * <ul> * <li> * It works over TLS and plain TCPIP. * <li> * It handles the GSSUP (Username/Password) mechanism for * CSI level Client Authentication. * <li> * It has the ability to "quote" an identity, i.e. CSIv2 * Identity Assertion. * <li> * It has the ability to "push" privileges, which it does * ATLAS enabled servers. * <li> * It has the ability to install your own authorization * token process that can allow for delegation. * </ul> * <p> * The Security Level 3 ORB Security Service does supports retention * of CSI state. Client Authentication information and Identity * assertion information is transmitted on each request. * <p> * The Security Level 3 ORB Security Service does not automatically * support endorsement at this time (CSIv2 Level 2 compliance), but * does give you facility to do so. */module SecurityLevel3 {    /**     * The Adiron VMCID, which is used in Minor Error Codes,      * Policy Tags, etc.     */    const unsigned long ADIRON_VMCID = 0xA11C000;        //-------------------------------------------------------------    //  Security Level 3 Application Users Interface    //    //-------------------------------------------------------------        //    // The Security Level 3 Credentials Model    //        /**     * The Initiator Type of the Initiator Side of the Credentials states     * the kind of Initiator it is. There are three types that mirror     * the type of Principal, Simple, Quoting, and Proxy, that the      * initiator intends to represent to a server while trying to      * establish a security context with the server.     */    typedef unsigned long InitiatorType;    /**     * The IT_None InitiatorType is a value that is defined for      * completeness, and has no real use.     */    const InitiatorType IT_None     = 0;    /**     * The IT_Simple InitiatorType is a value that states that the      * initiator is a "Simple" Principal.     */    const InitiatorType IT_Simple   = 1;    /**     * The IT_Quoting InitiatorType is a value that states that the      * initiator will quote another principal to the server. This     * principal is denoted in the Principal Calculus as (A|B), i.e.     * A quoting B.      */    const InitiatorType IT_Quoting  = 2;    /**     * The IT_Proxy InitiatorType is a value that states that the      * initiator will quote another principal to the server along with     * getting or providing proof to the server that it can act on     * behalf of the quoted principals. This     * principal is denoted in the Principal Calculus as (A for B).      */    const InitiatorType IT_Proxy    = 3;    /**     * The CredsInitiator object is an object that is directly a      * member of a particular OwnCredentials object. It represents     * the "initiator" side of the credentials.     */        local interface CredsInitiator {        /**         * The principal field contains a local view of the          * Principal that the Credentials intend to represent.         * Note that during context establishment, the actual establish         * client principal may be represented differently, especially         * with respect to environmental attributes. Some environmental          * attributes are a direct result of context establishment.         */        readonly attribute SL3PM::Principal        the_principal;        /**         * The supporting statements field contains a list of statements         * supporting the principal associated with this initiator.         */        readonly attribute SL3PM::StatementList    supporting_statements;        /**         * The restricted_resources field contains a list of          * resource names, by which the credentials initiator         * believes his authorizations apply.         */        readonly attribute SL3PM::ResourceNameList restricted_resources;	readonly attribute SL3PM::PrinAttributeList         environmental_attributes;        /**         * The initiator_type field signifies the intent of the         * initiator as to the principal it presents for the          * security context establishment. It should correspond         * to the type of the Principal. However, it might be slightly         * different, because using CSIv2 Client Authentication         * technically creates a "QuotingPrincipal" however, the          * initiator type will still be simple as no CSIv2 Identity         * Assertion will be used in establishing the security         * context.         */        readonly attribute InitiatorType    initiator_type;        /**         * The supports_embodiment field is true if these credentials         * can be directed by use of the CredsDirective, to give the         * the accepting end of a context establishment the ability         * to impersonate this initiator principal.         */        readonly attribute boolean          supports_embodiment;        /**         * The supports_endorsement field is true if these credentials         * can be directed by use of the CredsDirective, to endorse         * the accepting end of a context establishment to act         * on behalf of this initiator principal.         */        readonly attribute boolean          supports_endorsement;        /**         * The supports_quoting field is true if these credentials         * can be directed by use of the CredsDirective, to simply         * quote another principal on top of these credentials.         */        readonly attribute boolean          supports_quoting;        /**         * The expiry_time field denotes the time that these         * credentials expire.         */        readonly attribute TimeBase::UtcT   expiry_time;    };        /**     * The CredsAcceptor object is an object that is directly a      * member of a particular OwnCredentials object. It represents     * the "acceptor" side of the credentials.     */    local interface CredsAcceptor {        /**         * The principal field contains a local view of the          * Principal that the Credentials intend to represent.         * Note that during context establishment, the actual establish         * target principal may be represented differently, especially         * with respect to environmental attributes. Some environmental          * attributes are a direct result of context establishment.         */        readonly attribute SL3PM::Principal       the_principal;        /**         * The supporting_statements field contains a list of statements         * supporting the principal associated with this acceptor.         */        readonly attribute SL3PM::StatementList   supporting_statements;        /**         * The restricted_resources field contains a list of          * resource names, by which the credentials initiator         * believes his authorizations apply.         */        readonly attribute SL3PM::ResourceNameList                restricted_resources;	readonly attribute SL3PM::PrinAttributeList         environmental_attributes;        /**         * The accepts_endorsement field is true if these credentials         * support and accept CSIv2 endorsement information.         */        readonly attribute boolean                         accepts_endorsement;        /**         * The accepts_quoting field is true if these credentials         * support and accept CSIv2 Identity Assertion information.         */        readonly attribute boolean                         accepts_quoting;        /**         * The expiry_time field denotes the time that these         * credentials expire.         */        readonly attribute TimeBase::UtcT                  expiry_time;        };    /**     * This type is used to identify listeners for removal.     * A Listener identity will be assigned to a listener when     * it is assigned to a particular object.     */    // begin of ObjectSecurity removal//      typedef string ListenerId;    /**     * This local interface is used to notify the user when the credentials     * have been relinquished. When credentials are "released" they may     * stay around until their work is finished. At that point they     * will be relinquished. Also, if the underlying transport credentials     * are released, then the SecurityLevel3 Credentials get released     * as well. This listener will get informed of this event.     *///      local interface RelinquishedCredentialsListener {//          void relinquished_notify(//              in SL3CM::CredentialsId creds_id//          );//      };    // end of ObjectSecurity removal    /**     * The Credentials base interface contains the common items for      * the different types of credentials.     * @see OwnCredentials     * @see ClientCredentials     * @see TargetCredentials     */    local interface Credentials {        /**         * The creds_id attribute contains a system generated          * identifier with which can uniquely reference the credentials         * object.         */        readonly attribute SL3CM::CredentialsId    creds_id;        /**         * The creds_type stipulates the type of credentials, i.e.         * to which type of credentials it may be narrowed.         */        readonly attribute SL3CM::CredentialsType  creds_type;        /**         * The creds_usage field stipulates the intended usage of the         * credentials. For OwnCredentials, it will be one of          * CU_AcceptOnly, CU_Initiate, CU_InitiateAndAccept.          * For ClientCredentials and TargetCredentials it will be          * CU_None.         */        readonly attribute SL3CM::CredentialsUsage creds_usage;         /**         * The creds_state field contains the          * validity state of the credentials.         */        readonly attribute SL3CM::CredentialsState creds_state;        /**         * Add a listener that will get notified when the          * OwnCredentials are finally done with any pending         * work and are relinquished by the security service.         */	// begin of ObjectSecurity removal//          ListenerId add_relinquished_listener(//              in RelinquishedCredentialsListener listener//          );        /**         * Removes a listener. This function raises a BAD_PARAM         * exception if the listener is not registered.         *///          void remove_relinquished_listener(//              in ListenerId id//          );	// end of ObjectSecurity removal    };

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -