home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-cat-xgssapi-acc-cntrl-01.txt < prev    next >
Text File  |  1996-07-05  |  51KB  |  1,428 lines

  1.  
  2.  
  3. Internet-Draft                                                        
  4.  
  5.                                                       Tom Parker , ICL 
  6.                                                    Denis Pinkas  , Bull
  7. IETF Common Authentication Technology WG
  8. <draft-ietf-cat-xgssapi-acc-cntrl-01.txt>                  July 5, 1996
  9.    
  10.    
  11.    
  12.              Extended Generic Security Service APIs: XGSS-APIs
  13.                  Access control and delegation extensions
  14.    
  15.    
  16. 1. STATUS OF THIS MEMO
  17.    
  18.    This document is an Internet Draft. Internet Drafts are working
  19.    documents of the Internet Engineering Task Force (IETF), its Areas,
  20.    and its Working Groups. Note that other groups may also distribute
  21.    working documents as Internet Drafts. Internet Drafts are draft
  22.    documents valid for a maximum of six months. Internet Drafts may be
  23.    updated, replaced, or obsoleted by other documents at any time. It
  24.    is not appropriate to use Internet Drafts as reference material or
  25.    to cite them other than as a "working draft" or "work in progress."
  26.    Please check the I-D abstract listing contained in each Internet
  27.    Draft directory to learn the current status of this or any other
  28.    Internet Draft.
  29.    
  30.    Comments on this document should be sent to "cat-ietf@MIT.EDU", the
  31.    IETF Common Authentication Technology WG discussion list.
  32.    
  33. 2. ABSTRACT
  34.    
  35.    The Generic Security Service Application Program Interface (GSS-
  36.    API), as defined in RFC-1508, provides security services to callers
  37.    in a generic fashion, supportable with a range of underlying
  38.    mechanisms and technologies and hence allowing source-level
  39.    portability of applications to different environments. It defines
  40.    GSS-API services and primitives at a level independent of underlying
  41.    mechanism and programming language environment.
  42.    
  43.    The GSSAPI allows a caller application to authenticate a principal
  44.    identity associated with a peer application, to delegate rights to a
  45.    peer, and to apply security services such as confidentiality and
  46.    integrity on a per-message basis.
  47.    
  48.    The primitives of the GSS-API do not currently allow support of
  49.    security attributes other than a single identity and do not allow
  50.    fine control of delegation.
  51.    
  52.    The additional primitives described in this document provide support
  53.    for:
  54.    
  55.    * the exchange of a variety of security attributes, and the
  56.    construction of authorization functions using these attributes,
  57.    including delegated ones, (attribute handling support functions),
  58.  
  59.  
  60. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 1]
  61. Internet-Draft                                             July 5, 199
  62. 6
  63.  
  64.    * fine control over delegation by allowing specification of the
  65.    delegation method, the acceptor(s) of a security context, their type
  66.    and the restrictions that may apply (acceptor control and support
  67.    functions).
  68.    
  69. 3. SECURITY ATTRIBUTES
  70.    
  71.    A security attribute is defined as:
  72.    
  73.     SecAttribute :: {
  74.           attributeType     OBJECT IDENTIFIER,
  75.           definingAuthority OCTET STRING        OPTIONAL,
  76.           securityValue     OCTET STRING }
  77.     
  78.      attributeType
  79.      
  80.      Defines the type of the attribute. Attributes of the same type
  81.      have the same authorization semantics.
  82.      
  83.      definingAuthority
  84.      
  85.      It indicates the authority responsible for defining the value
  86.      within the attribute type. Some policies demand that multiple
  87.      sources of values for a given attribute type be supported (e.g. a
  88.      policy accepting attribute values defined outside the security
  89.      domain), These policies give rise to a risk of value clashes. The
  90.      definingAuthority field is used to separate these values. When not
  91.      present, the value defaults to the name of the authority that
  92.      issued the attribute.
  93.      
  94.      securityValue
  95.      
  96.      The value of the security attribute. Its syntax is determined by
  97.      the attribute type.
  98.    
  99.    Security attributes are composed of principal attributes and of
  100.    qualifier attributes.
  101.    
  102. 3.1. PRINCIPAL ATTRIBUTES
  103.    
  104.    Principal attributes are composed of security privileges and
  105.    miscellaneous attributes.
  106.    
  107. 3.1.1. PRIVILEGES ATTRIBUTES
  108.    
  109.    Security privileges are defined as security attributes attached to a
  110.    principal, and only usable for access control purposes. Ones defined
  111.    here are: access identity, group memberships, clearance and
  112.    capability. The use of OBJECT IDENTIFIERS allows for other types to
  113.    be standardised.
  114.    
  115.  
  116.  
  117.  
  118.  
  119. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 2]
  120. Internet-Draft                                             July 5, 199
  121. 6
  122.  
  123. 3.1.2. MISCELLANEOUS ATTRIBUTES
  124.    
  125.    Miscellaneous attributes are defined as security attributes attached
  126.    to a principal, which are not security privileges. They are used for
  127.    a variety of purposes. Ones defined here are: the domain name of the
  128.    issuer of the security attributes, an audit identity, restrictions
  129.    and validity time periods.
  130.    
  131. 3.2. QUALIFIER ATTRIBUTES
  132.    
  133.    Qualifier attributes describe the context acceptors for which
  134.    controls are to apply. Ones defined here are: acceptor name and
  135.    application trust group.
  136.    
  137. 3.3. ATTRIBUTES DEFINITIONS
  138.    
  139. 3.3.1. PRIVILEGE ATTRIBUTES
  140.    
  141.    A privilege attribute is attached to a principal and is only usable
  142.    for access control purposes. Privileges are defined under the OID:
  143.    
  144.    privilege-attribute    OBJECT IDENTIFIER ::
  145.    { iso(1) identified-organisation(3) icd-ecma(012) technical-report(1)
  146.    security-in-open-systems(046) privilege-attribute(4) }
  147.    
  148. 3.3.1.1. ROLE ATTRIBUTE
  149.    
  150.    The role attribute represents the principal's role. The type of this
  151.    attribute is:
  152.    
  153.    { privilege-attribute 1 }
  154.    
  155.    The type and the value of this attribute can be set and returned.
  156.    
  157. 3.4.1.2. ACCESS IDENTITY
  158.    
  159.    The access identity represents an identity to be used for access
  160.    control purposes. A security context or a credential may not contain
  161.    more than a single access identity for a given principal. This attri-
  162.    bute does not need to be present. The type of this attribute is :
  163.    
  164.    { privilege-attribute 2 }
  165.    
  166.    The type and the value of this attribute can be set and returned.
  167.    
  168. 3.4.1.3. PRIMARY GROUP
  169.    
  170.    The primary group represents a uniquely prominent group to which a
  171.    principal belongs. A security context or a credential may not
  172.    contain more than one primary group for a given principal. The type
  173.    of this attribute is :
  174.    
  175.    { privilege-attribute 3 }
  176.  
  177.  
  178. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 3]
  179. Internet-Draft                                             July 5, 199
  180. 6
  181.  
  182.    
  183.    The type and the value of this attribute can be set and returned.
  184.    
  185. 3.4.1.4. GROUP
  186.    
  187.    A group represents a characteristic common to several principals.
  188.    A security context or a credential may contain more than one group
  189.    for a given principal. The type of this attribute is :
  190.    
  191.    { privilege-attribute 4 }
  192.    
  193.    The type and the value of this attribute can be set and returned.
  194.    
  195. 3.4.1.5. CAPABILITY
  196.    
  197.    A capability nominates a resource and the operation(s) that can be
  198.    performed on that resource. The type of this attribute is :
  199.    
  200.    { privilege-attribute 5 }
  201.    
  202.    The type and the value of this attribute can be set and returned.
  203.    
  204. 3.3.2. MISCELLANEOUS ATTRIBUTES
  205.    
  206.    Miscellaneous attributes are defined under the OID:
  207.    
  208.    misc-attributeOBJECT IDENTIFIER ::
  209.    { iso(1) identified-organisation(3) icd-ecma(012) technical-report(1)
  210.    security-in-open-systems(046) misc-attribute(3) }
  211.    
  212. 3.4.2.1. AUDIT IDENTITY
  213.    
  214.    The access identity represents the principal's identity to be used
  215.    for audit purposes. The type of this attribute is :
  216.    
  217.    { misc-attribute 2 }
  218.    
  219.    Only the type of this attribute can be set and both the type and the
  220.    value can be returned.
  221.    
  222. 3.4.2.2. ISSUER DOMAIN NAME
  223.    
  224.    The issuer domain name represents the name of the domain that has
  225.    issued the security attributes. It cannot be set by a call to
  226.    GSS_Set_cred_attributes. The type of this attribute is :
  227.    
  228.    { misc-attribute 10 }
  229.    
  230.    Only the type of this attribute can be set and both the type and the
  231.    value can be returned. This attribute may always be returned by a
  232.    call to GSS_Get_cred_attributes.
  233.    
  234.  
  235.  
  236.  
  237. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 4]
  238. Internet-Draft                                             July 5, 199
  239. 6
  240.  
  241. 3.4.2.3. VALIDITY PERIODS
  242.    
  243.    The validity periods represent a list of the time periods within
  244.    which the security attributes are valid. The type of this attribute
  245.    is :
  246.    
  247.    { misc-attribute 11 }
  248.    
  249.    The type and the values of this attribute can be set and returned.
  250.    
  251. 3.4.2.4. OPTIONAL RESTRICTIONS
  252.    
  253.    The Optional restrictions represent restrictions that apply to the
  254.    security context. The context may be accepted, even if the 
  255.    application is unable to understand the optional restrictions.
  256.    The type of this attribute is :
  257.    
  258.    { misc-attribute 12 }
  259.    
  260.    The type and the values of this attribute can be set and returned.
  261.    
  262. 3.4.2.5. MANDATORY RESTRICTIONS
  263.    
  264.    The mandatory restrictions represent restrictions that apply to the
  265.    security context. The context must not be accepted if the
  266.    application is unable to understand the mandatory restrictions. The
  267.    type of this attribute is :
  268.    
  269.    { misc-attribute 13 }
  270.    
  271.    The type and the values of this attribute can be set and returned.
  272.    
  273. 3.3.3. QUALIFIER ATTRIBUTES
  274.    
  275.    Qualifier attributes are security attributes which define which
  276.    applications are authorized to be a security context acceptor. In
  277.    addition to the qualifier attribute it is possible to specify
  278.    whether delegation is authorized or not for the context acceptor.
  279.    
  280.    Qualifier attributes describe the context acceptors for which
  281.    controls are to apply. Qualifier attributes are defined under the
  282.    OID:
  283.    
  284.    qualifier-attribute    OBJECT IDENTIFIER ::
  285.    { iso(1) identified-organisation(3) icd-ecma(012) technical-report(1)
  286.    security-in-open-systems(046) qualifier-attribute(5) }
  287.    
  288. 3.4.3.1. ACCEPTOR NAME
  289.    
  290.    An acceptor name represents the name of an application that can
  291.    potentially accept the security context. The type of this attribute
  292.    is :
  293.    
  294.  
  295.  
  296. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 5]
  297. Internet-Draft                                             July 5, 199
  298. 6
  299.  
  300.    { qualifier-attribute 1 }
  301.    
  302. 3.4.3.2. APPLICATION TRUST GROUP
  303.    
  304.    An application trust group represents a group of acceptors, defined
  305.    by the security administrator, that mutually trust each other not to
  306.    spoof each others' identity. The type of this attribute is :
  307.    
  308.    { qualifier-attribute 2 }
  309.    
  310. 4. ATTRIBUTE SET REFERENCE
  311.    
  312.    Attribute set references are defined under the OID:
  313.    
  314.    attribute-set-reference     OBJECT IDENTIFIER ::
  315.    { iso(1) identified-organisation(3) icd-ecma(012) technical-report(1)
  316.    security-in-open-systems(046) attribute-set-reference (9)
  317.    
  318.    An Attribute set reference is used to select a set of security
  319.    attributes and acceptor controls according to policy. At present
  320.    only a role name is defined.
  321.    
  322. 4.1. ROLE NAME
  323.    
  324.    The role name is an attribute set reference used to select a set of
  325.    security attributes. The type of this attribute is :
  326.    
  327.    { attribute-set-reference 1 }
  328.    
  329.    The type and the values of this reference can only be set.
  330.    
  331. 6. INTERFACE DESCRIPTIONS
  332.    
  333.    The interfaces are split between attribute handling support
  334.    functions and context acceptor control and support functions.
  335.    
  336. 6.1. ATTRIBUTE HANDLING SUPPORT FUNCTIONS
  337.    
  338.    Three attribute handling support functions are defined :
  339.    
  340. 6.1.1. GSS_Set_cred_attributes
  341.    
  342.    To enable a GSS-API context initiator to specify security
  343.    attributes, i.e. security privileges and miscellaneous security
  344.    attributes to be included in the caller credentials in order to
  345.    become part of a security context.
  346.    
  347. 6.1.2. GSS_Get_sec_attributes
  348.    
  349.    To extract security attributes, either from a GSS-API context, or
  350.    from a credential handle. Both privilege attributes and
  351.    miscellaneous attributes can be retrieved. The function can be
  352.    invoked either by a context initiator or by a context acceptor. When
  353.  
  354.  
  355. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 6]
  356. Internet-Draft                                             July 5, 199
  357. 6
  358.  
  359.    applied to a GSS-API context and invoked by a context acceptor, if
  360.    delegation is being used, the privilege and miscellaneous attributes
  361.    which are returned and only those of the initiator, i.e. the
  362.    initiator of the delegation chain.
  363.    
  364. 6.2. CONTEXT ACCEPTOR SUPPORT FUNCTION
  365.    
  366.    There is a single function.
  367.    
  368. 6.2.1. GSS_Get_received_creds
  369.    
  370.    To extract credential handles from a GSS-API context (established
  371.    with GSS_Accept_sec_context function). This is only applicable for
  372.    some forms of delegation supporting multiple incoming credentials,
  373.    and can only be invoked by a context acceptor. A call to
  374.    GSS_Get_received_creds is an intermediary step for an acceptor,
  375.    before extracting the security attributes of each set of credentials
  376.    with a call to GSS_Get_sec_attributes. The credential handles are
  377.    ordered. They start with the credentials of the first initiator and
  378.    finish with the the credentials of the immediate invoker.
  379.    
  380. 6.3. CONTEXT ACCEPTOR CONTROL FUNCTIONS
  381.    
  382.    These functions enable a GSS-API context initiator to impose
  383.    constraints on the security context to be established via
  384.    GSS_Init_sec_context function, and enable a GSS-API context acceptor
  385.    to retrieve the control information that applies to a security
  386.    context established using the GSS_Accept_sec_context function, and
  387.    to build credentials from others.
  388.    
  389.    Three context acceptor control functions are defined:
  390.    
  391. 6.3.1. GSS_Set_cred_controls function
  392.    
  393.    To enable a GSS-API context initiator to specify acceptor controls
  394.    to be included in the caller's credentials in order to be part of a
  395.    security context. The controls determine the context acceptors with
  396.    which valid security contexts can be established using the
  397.    associated credentials, and whether they can act only as targets
  398.    only, delegates only as or as delegate/targets.
  399.    
  400.      * an acceptor designated as being a target only may use the
  401.      privileges attributes in the received credentials when authorising
  402.      access to its own protected resources and may not forward them.
  403.      
  404.      * an acceptor designated as being a delegate only may use the
  405.      privilege attributes in the received credentials to forward them
  406.      but should not use them when authorising access to its own
  407.      protected resources.
  408.      
  409.        Note:    Only the acceptor system's AEF (Access Enforcement
  410.        Facility as described in ISO/IEC 10181-3: The Access Control
  411.        Framework) can prevent an acceptor permitting access based on
  412.  
  413.  
  414. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 7]
  415. Internet-Draft                                             July 5, 199
  416. 6
  417.  
  418.        attributes not intended for it. However it is not in the
  419.        interests of an acceptor or its AEF to permit access to
  420.        resources under their control on the basis of attributes that
  421.        are explicitly stated as not being appropriate.
  422.      
  423.      * an acceptor designated as being both a target and a delegate may
  424.      use the privilege attributes in the received credentials when
  425.      authorising access to its own protected resources and may also
  426.      forward them.
  427.    
  428.    Restrictions over the operations that are authorised under the
  429.    context can also be specified.
  430.    
  431. 6.3.2. GSS_Get_sec_controls function
  432.    
  433.    To enable a GSS-API context initiator or a GSS-API context acceptor
  434.    to extract acceptor control information either from a credential
  435.    handle or from a security context.
  436.    
  437. 6.3.3. GSS_Compound_creds function
  438.    
  439.    To enable a delegate (which is acting as a GSS-API target for a
  440.    context initiator, and as a GSS-API context initiator for another
  441.    delegate or target) to build new credentials made from received
  442.    credentials and its own credentials.
  443.    
  444. 7. DETAILED DESCRIPTION OF THE CALLS
  445.    
  446. 7.1. ATTRIBUTE HANDLING CALLS
  447.    
  448. 7.1.1. GSS_Set_cred_attributes call
  449.    
  450.    Input :
  451.    
  452.    - cred_handle                OCTET STRING,
  453.    - required_attributes        SET OF SecAttribute,
  454.    - new_cred_req               BOOLEAN
  455.    - commit_cred_req            BOOLEAN
  456.    
  457.    Output :
  458.    
  459.    - output_cred_handle    OCTET STRING
  460.    
  461.    Return major_status code:
  462.    
  463.    - GSS_S_COMPLETE             indicates that the nominated
  464.                                 attributes are permitted to
  465.                                 the caller and have been set.
  466.    - GSS_S_CREDENTIALS_EXPIRED  indicates that the specified
  467.                                 credentials have expired.
  468.    - GSS_S_DEFECTIVE_CREDENTIAL indicates that defective
  469.                                 credentials have been detected.
  470.    - GSS_S_FAILURE              indicates a failure,unspecified
  471.                                 at the GSS-API level.
  472.  
  473. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 8]
  474. Internet-Draft                                             July 5, 199
  475. 6
  476.  
  477.  
  478.    - GSS_S_UNAUTHORIZED         indicates that the function, or
  479.                                 an argument of the function was
  480.                                 not authorised.
  481.    - GSS_S_UNAVAILABLE          indicates that the operation is
  482.                                 not supported.
  483.    
  484.    This function enables a caller to request a set of privileges and
  485.    miscellaneous attributes, optionally replacing existing credentials
  486.    or creating a new set. The effect of this interface is not
  487.    cumulative, the requested attributes replace any existing attributes
  488.    in the credentials claimed.
  489.    
  490.    Parameters for GSS_Set_cred_attributes:
  491.    
  492.    cred_handle
  493.    
  494.    Handle for credentials claimed, cred_handle refers to an
  495.    authenticated principal. Supply NULL to use default credentials.
  496.    
  497.    required_attributes
  498.    
  499.    A set of required privilege and miscellaneous attributes. NULL
  500.    specifies default attributes to be requested. Otherwise, only the
  501.    privilege and miscellaneous attributes specified will be present.
  502.    
  503.    If a specified attribute is provided with a NULL value field, the
  504.    value allocated to the attribute will be the default for the
  505.    specified attribute available to the authenticated principal
  506.    according to the prevailing security policy. Otherwise the value
  507.    specified will be that present. If a value specified clashes with
  508.    policy, an error is returned.
  509.    
  510.    If an attribute set reference (e.g.a role name) is specified as a
  511.    single attribute required, and policy permits the principal to use
  512.    it, it will be used as an attribute set reference to select a set of
  513.    attributes and acceptor controls according to policy.
  514.    
  515.    If an attribute set reference (e.g.a role name) is specified along
  516.    with other required attributes, and policy permits the principal to
  517.    use the role name, the attributes potentially available for the
  518.    authenticated principal are taken from a set compounded of the
  519.    principal's authorised attributes, and the attributes associated
  520.    with the role name.
  521.    
  522.    new_cred_req
  523.    
  524.    TRUE for a new credentials set, FALSE replaces the original.
  525.    
  526.    commit_cred_req
  527.    
  528.    TRUE for immediate attribute acquisition, FALSE for deferred
  529.    attribute acquisition.
  530.  
  531.  
  532. Parker, Pinkas         Document Expiration: 5 January, 1997    [Page 9]
  533. Internet-Draft                                             July 5, 199
  534. 6
  535.  
  536.    
  537.    output_cred_handle
  538.    
  539.    The credentials handle for the changed or new credentials.
  540.    GSS_Set_cred_attributes produces a modified version of the input
  541.    credentials (cred_handle). The original credentials are changed if
  542.    new_cred_req is FALSE, otherwise the output_cred_handle references a
  543.    new, and different, copy of the original input credentials (which
  544.    remain untouched). GSS_Release_cred can be used when the caller is
  545.    finished with any new credentials created by this function.
  546.    
  547. 7.1.2. GSS_Get_sec_attributes call
  548.    
  549.    Input :
  550.    
  551.    - cred_handle                OCTET STRING,
  552.    - context_handle             INTEGER,
  553.    - attribute_types_required   SET OF OBJECT IDENTIFIER
  554.    
  555.    Output :
  556.    
  557.    - priv_attributes            SET OF SecAttribute
  558.    - misc_attributes            SET OF SecAttribute
  559.    - other_cred_present         BOOLEAN
  560.    
  561.    Return major_status code :
  562.    
  563.    - GSS_S_COMPLETE             indicates that retrieval of
  564.                                 attributes is supported and
  565.                                 that all, some, or none of the
  566.                                 requested attribute types have
  567.                                 been returned.
  568.    - GSS_S_CONTEXT_EXPIRED      indicates that the specified
  569.                                 security
  570.                                 context has expired.
  571.    - GSS_S_CREDENTIALS_EXPIRED  indicates that the specified
  572.                                 credentials have expired.
  573.    - GSS_S_DEFECTIVE_CREDENTIAL indicates that defective
  574.                                 credentials have been detected.
  575.    - GSS_S_FAILURE              indicates a failure,
  576.                                 unspecified at the GSS-API
  577.                                 level.
  578.    - GSS_S_UNAVAILABLE          indicates that the operation is
  579.                                 not supported.
  580.    
  581.    This function can be used by context initiators and context
  582.    acceptors to query attributes in credentials or security contexts.
  583.    If the credentials or security context represents a delegation
  584.    chain, attributes are retrieved only from the initiator of the
  585.    chain. If the attribute_types_required parameter is not supplied,
  586.    then all attribute types are returned. This option could allow
  587.    clients of this interface to query all attributes and pass privilege
  588.    attributes to a separate authorization service to make a decision.
  589.  
  590.  
  591. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 10]
  592. Internet-Draft                                             July 5, 199
  593. 6
  594.  
  595.    To obtain security attributes from intermediates in a delegation
  596.    chain, the caller should first call GSS_Get_received_creds (see
  597.    section 5.2.1 and section 6.2.1).
  598.    
  599.    Parameters for GSS_Get_sec_attributes:
  600.    
  601.    cred_handle
  602.    
  603.    Handle to credentials, cred_handle refers to an authenticated
  604.    principal. Supply NULL to use default credentials, or a context
  605.    handle. Note that NULL, without a context handle, is only used for
  606.    obtaining the caller's own attributes.
  607.    
  608.    context_handle
  609.    
  610.    GSS-API security context handle, context_handle refers to an
  611.    established security context. Context_handle is ignored if a non-
  612.    NULL cred_handle is presented. (Note: it is typically only necessary
  613.    to use a context_handle parameter rather than cred_handle for the
  614.    case when a security context is emitted by gss_accept_sec_context,
  615.    but not with an accompanying set of delegated credentials).
  616.    
  617.    attribute_types_required
  618.    
  619.    A set of security attribute types. If the default (NULL) is
  620.    specified, then all miscellaneous and privilege attribute types are
  621.    returned.
  622.    
  623.    This standard does not specify which attributes must be supported,
  624.    but some common security attributes are defined in section 2.
  625.    
  626.    priv_attributes
  627.    
  628.    A set of privilege attributes. Response is conditional on the
  629.    "attribute_types_required" input.
  630.    
  631.    misc_attributes
  632.    
  633.    A set of miscellaneous attributes. Response is conditional on the
  634.    "attribute_types_required" input.
  635.    
  636.    other_cred_present
  637.    
  638.    TRUE when the caller is a context acceptor querying a security
  639.    context and when more than one set of credentials is present. If
  640.    interested in the other credential(s), the caller should next call
  641.    GSS_Get_received_creds,
  642.    
  643.    FALSE when either the caller is a context initiator or when the
  644.    caller is a context acceptor querying a security context and when no
  645.    other credential is present.
  646.    
  647. 7.2. CONTEXT ACCEPTOR SUPPORT FUNCTION
  648.  
  649.  
  650. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 11]
  651. Internet-Draft                                             July 5, 199
  652. 6
  653.  
  654.    
  655. 7.2.1. GSS_Get_received_creds call
  656.    
  657.    Input :
  658.    
  659.    - context_handle             INTEGER,
  660.    
  661.    Output :
  662.    
  663.    - received_creds             SEQUENCE OF OCTET STRING
  664.    
  665.    Return major_status code :
  666.    
  667.    - GSS_S_COMPLETE             indicates that the requested
  668.                                 delegate
  669.                                 credentials were retrieved.
  670.    - GSS_S_CONTEXT_EXPIRED      indicates that the specified
  671.                                 security
  672.                                 context has expired.
  673.    - GSS_S_FAILURE              indicates a failure,
  674.                                 unspecified at the GSS-API
  675.                                 level.
  676.    - GSS_S_UNAUTHORIZED         indicates that the function, or
  677.                                 an argument of the function was
  678.                                 not authorised.
  679.    - GSS_S_UNAVAILABLE          indicates that the operation is
  680.                                 not supported.
  681.    
  682.    This function supports the retrieval of all credentials received by
  683.    an acceptor. It is intended for context acceptors that require not
  684.    only the initiator's credentials, but also delegates' credentials,
  685.    to apply their local security policy. A typical example is the
  686.    retrieval of delegate credentials to subsequently obtain delegate
  687.    privilege attributes (using GSS_Get_sec_attributes) for use in
  688.    authorization decisions.
  689.    
  690.    Parameters for GSS_Get_received_creds:
  691.    
  692.    context_handle
  693.    
  694.    GSS-API security context handle, context_handle refers to a security
  695.    context that is part of an established association. A default
  696.    context is assumed if no context_handle is supplied.
  697.    
  698.    received_creds
  699.    
  700.    Contains an ordered list of credentials for the original initiator
  701.    and for each of the intermediate delegates (if any) between the
  702.    original initiator and this context acceptor, the first of these
  703.    being the credentials of the original initiator, and the last being
  704.    of the immediately preceding delegate. It is expected that the
  705.    normal use for such credentials would merely be inspection via
  706.    GSS_Get_sec_attributes as most known mechanisms would not permit
  707.  
  708.  
  709. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 12]
  710. Internet-Draft                                             July 5, 199
  711. 6
  712.  
  713.    such delegate credentials to be directly used for initiating further
  714.    security contexts. Note that it is the caller's responsibility to
  715.    free any received credentials returned from gss_get_received_creds
  716.    via gss_release_cred.
  717.    
  718. 7.3. ACCEPTOR CONTROL HANDLING CALLS
  719.    
  720.    The following construct is used in both the GSS_Set_cred_controls
  721.    and GSS_Get_sec_controls calls:
  722.    
  723.    AcceptorControl ::  SEQUENCE {
  724.         targetOnly        SEQUENCE OF SecAttribute OPTIONAL,
  725.         delegateOnly      SEQUENCE OF SecAttribute OPTIONAL,
  726.         delegateTarget    SEQUENCE OF SecAttribute OPTIONAL,
  727.         delegationMode    DelegationMode OPTIONAL,}
  728.    
  729.    DelegationMode ::  ENUMERATED {
  730.         default           (0),
  731.         simple            (1),
  732.         composite         (2),
  733.         traced            (3),}
  734.    
  735.    The fields targetOnly, delegateOnly and delegateTarget specify one
  736.    or several qualifier attributes describing the acceptors (as
  737.    targets, delegates or delegate/targets) for which controls are to
  738.    apply.
  739.    
  740.      * the targetOnly specifies that the qualifier(s) are identifying
  741.      one or more targets, none of which may use the credentials as a
  742.      delegate.
  743.      
  744.      *   the delegateOnly choice specifies that the qualifier(s) are
  745.      identifying one or more delegates, none of which should use the
  746.      privilege attributes in the credentials when authorising access to
  747.      their own protected resources, but which may use the received
  748.      credentials as a delegate.
  749.      
  750.      *   the delegateTarget choice specifies that the qualifier is
  751.      identifying one or more delegate/targets any of which can use the
  752.      received credentials as a delegate and can also use the privileges
  753.      attributes in the the credentials when authorising access to its
  754.      own protected resources.
  755.    
  756.    delegationMode
  757.    
  758.    Indicates the mode of delegation required.
  759.    
  760.    Currently three delegation modes and one default are specified:
  761.    
  762.    - default: whatever mode of delegation has been set as default (this
  763.    may be no delegation).
  764.    
  765.    - simple: only the original initiator's credentials have to be
  766.  
  767.  
  768.  
  769. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 13]
  770. Internet-Draft                                             July 5, 199
  771. 6
  772.  
  773.    forwarded in the security context being established,
  774.    
  775.    - composite: the credentials of the original initiator and of the
  776.    immediate caller have to be forwarded,
  777.    
  778.    - traced: the credentials of the original initiator, of all the
  779.    delegates, including the immediate caller have to be forwarded.
  780.    
  781.    
  782. 7.3.1. GSS_Set_cred_controls call
  783.    
  784.    Input :
  785.    
  786.    - cred_handle                OCTET STRING,
  787.    - required_acceptor_control  AcceptorControl,
  788.    - replace_old_controls       BOOLEAN
  789.    - new_cred_req               BOOLEAN
  790.    - commit_cred_req            BOOLEAN
  791.    
  792.    Output :
  793.    
  794.    - output_cred_handle         OCTET STRING
  795.    
  796.    Return major_status code:
  797.    
  798.    - GSS_S_COMPLETE             indicates that the controls
  799.                                 have been set.
  800.    - GSS_S_CREDENTIALS_EXPIRED  indicates that the specified
  801.                                 credentials have expired.
  802.    - GSS_S_DEFECTIVE_CREDENTIAL indicates that defective
  803.                                 credentials have been detected.
  804.    - GSS_S_FAILURE              indicates a failure,
  805.                                 unspecified at the GSS-API
  806.                                 level.
  807.    - GSS_S_UNAUTHORIZED         indicates that the function, or
  808.                                 an argument of the function was
  809.                                 not authorised.
  810.    - GSS_S_UNAVAILABLE          indicates that the operation is
  811.                                 not supported.
  812.    
  813.    This function supports requests to set context acceptor controls,
  814.    optionally replacing existing credentials controls or creating a new
  815.    set of credentials with new controls. The effect of this interface
  816.    is either cumulative or not depending on the value of the
  817.    replace_old_controls parameter.
  818.    
  819.    Parameters for GSS_Set_cred_controls:
  820.    
  821.    cred_handle
  822.    
  823.    Handle for credentials claimed, it refers to an authenticated
  824.    principal. Supply NULL to use default credentials.
  825.    
  826.  
  827.  
  828.  
  829. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 14]
  830. Internet-Draft                                             July 5, 199
  831. 6
  832.  
  833.    required_acceptor_control
  834.    
  835.    The control settings required.
  836.    
  837.    replace_old_controls
  838.    
  839.    TRUE to replace acceptor controls existing in original credentials.
  840.    FALSE to specify additional controls.
  841.    
  842.    new_cred_req
  843.    
  844.    TRUE for a new credentials set, FALSE to modify the original.
  845.    
  846.    commit_cred_req
  847.    
  848.    TRUE for immediate action, FALSE for deferred action.
  849.    
  850.    output_cred_handle
  851.    
  852.    GSS_Set_cred_controls produces a modified version of the input
  853.    credentials (cred_handle). The original credentials are directly
  854.    changed if duplicate_cred_req is FALSE, otherwise the
  855.    output_cred_handle references a new, and potentially different, copy
  856.    of the original input credentials (which remain untouched).
  857.    gss_release_cred can be used when the caller is finished with any
  858.    new credentials created by this function.
  859.    
  860. 7.3.2. GSS_Get_sec_controls call
  861.    
  862.    Input :
  863.    
  864.    - cred_handle                OCTET STRING,
  865.    - context_handle             INTEGER,
  866.    
  867.    Output :
  868.    
  869.    - acceptor_controls          SET OF AcceptorControl,
  870.    
  871.    Return major_status code :
  872.    
  873.    - GSS_S_COMPLETE             indicates that the acceptor
  874.                                 control
  875.                                 information has been returned
  876.    - GSS_S_CREDENTIALS_EXPIRED  indicates that the specified
  877.                                 credentials have expired.
  878.    - GSS_S_DEFECTIVE_CREDENTIAL indicates that defective
  879.                                 credentials have been detected.
  880.    - GSS_S_FAILURE              indicates a failure,
  881.                                 unspecified at the GSS-API
  882.                                 level.
  883.    - GSS_S_UNAVAILABLE          indicates that the operation is
  884.                                 not supported.
  885.    
  886.  
  887.  
  888. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 15]
  889. Internet-Draft                                             July 5, 199
  890. 6
  891.  
  892.    This function enables a caller to enquire the current value of the
  893.    acceptor controls in the specified credentials or context.
  894.    This function can be used by context initiators and context
  895.    acceptors to query acceptor controls in credentials or security
  896.    contexts.
  897.    
  898.    Parameters for GSS_Get_sec_controls:
  899.    
  900.    cred_handle
  901.    
  902.    Handle to credentials. It refers to an authenticated principal.
  903.    Supply NULL to use default credentials, or a context handle.
  904.    
  905.    context_handle
  906.    
  907.    GSS-API security context handle, context_handle refers to a security
  908.    context that is part of an established association. Context_handle
  909.    is ignored if a non-NULL cred_handle is presented. (Note: it is
  910.    typically only necessary to use a context_handle parameter rather
  911.    than cred_handle for the case when a security context is emitted by
  912.    gss_accept_sec_context, but not with an accompanying set of
  913.    delegated credentials).
  914.    
  915.    acceptor_controls
  916.    
  917.    A set of acceptor controls. Acceptor controls are described in
  918.    section 6.2.
  919.    
  920. 7.3.3. GSS_Compound_creds call
  921.    
  922.    Input :
  923.    
  924.    - delegated_cred_handle      OCTET STRING
  925.    - cred_handle                OCTET STRING,
  926.    
  927.    Output :
  928.    
  929.    - cred_handle_new            OCTET STRING
  930.    
  931.    Return major_status code :
  932.    
  933.      GSS_S_COMPLETE             indicates that the credentials
  934.                                 were successfully compounded
  935.    - GSS_S_CREDENTIALS_EXPIRED  indicates that one or more of
  936.                                 the specified credentials have
  937.                                 expired.
  938.    - GSS_S_DEFECTIVE_CREDENTIAL indicates that defective
  939.                                 credentials have been detected.
  940.    - GSS_S_FAILURE              indicates a failure,
  941.                                 unspecified at the GSS-API
  942.                                 level.
  943.    - GSS_S_UNAVAILABLE          indicates that the operation is
  944.                                 not supported.
  945.  
  946.  
  947. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 16]
  948. Internet-Draft                                             July 5, 199
  949. 6
  950.  
  951.    
  952.    Parameters for gss_compound_cred:
  953.    
  954.    delegated_cred_handle
  955.    
  956.    A handle to the credentials being delegated, it refers to one or
  957.    several authenticated principals.
  958.    
  959.    cred_handle
  960.    
  961.    A handle to claimed credentials of the caller, cred_handle refers to
  962.    an authenticated principal.
  963.    
  964.    cred_handle_new
  965.    
  966.    A handle to the compounded set of credentials.
  967.    
  968. 8. C-LANGUAGE BINDINGS
  969.    
  970.    This section specifies C language bindings for the extended GSS-API
  971.    functions.
  972.    
  973. 8.1. DATA TYPES AND CALLING CONVENTIONS
  974.    
  975.    The following data types :
  976.    
  977.    =FA    OM_uint32,
  978.    =FA    gss_buffer_t,
  979.    =FA    gss_OID,
  980.    =FA    gss_OID_set,
  981.    =FA    gss_cred_id_t,
  982.    =FA    gss_ctx_id_t,
  983.    
  984.    are defined in [RFC-1508], along with the calling conventions.
  985.    
  986. 8.1.1. SECURITY ATTRIBUTES
  987.    
  988.    A security attribute (see section 2) has the following data
  989.    structure:
  990.    
  991.    typedef struct gss_sec_attr_desc  {
  992.           gss_OID              attribute_type;
  993.           gss_buffer_t         defining_authority;
  994.                                /* specify GSS_C_NO_BUFFER when
  995.                                non present */
  996.           gss_buffer_t         security_value;
  997.           } gss_sec_attr;
  998.    
  999. 8.1.2. SECURITY ATTRIBUTE SETS
  1000.    
  1001.    A set of security attributes has the following structure:
  1002.    
  1003.  
  1004.  
  1005.  
  1006. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 17]
  1007. Internet-Draft                                             July 5, 199 
  1008. 6
  1009.  
  1010.    typedef struct gss_sec_attr_set_desc  {
  1011.           OM_uint32               attribute_count;
  1012.           gss_sec_attr*           attributes;
  1013.           } gss_sec_attr_set;
  1014.    
  1015.    The attribute_count field contains the number of security attributes
  1016.    in the set.
  1017.    
  1018. 8.1.3. CREDENTIALS LIST
  1019.    
  1020.    A list of credentials has the following structure:
  1021.    
  1022.    typedef struct  {
  1023.           OM_uint3                cred_count;
  1024.           gss_cred_id_t*          cred_list;
  1025.           } gss_cred_list;
  1026.    
  1027.    The cred_count field contains the number of credentials in the list.
  1028.    
  1029. 8.1.4. ACCEPTOR CONTROL
  1030.    
  1031.    Acceptor control has the following structure:
  1032.    
  1033.    typedef struct gss_acceptor_control_desc  {
  1034.           gss_sec_attr      target_only;
  1035.                             /* specify GSS_C_NULL_SEC_ATTR when
  1036.                             non present */
  1037.           gss_sec_attr      delegate_only;
  1038.                             /* specify GSS_C_NULL_SEC_ATTR when
  1039.                             non present */
  1040.           gss_sec_attr      delegate_target;
  1041.                             /* specify GSS_C_NULL_SEC_ATTR when
  1042.                             non present */
  1043.           OM_uint32         delegation_mode;
  1044.                             /* specify NULL when non present */
  1045.           } gss_acceptor_control;
  1046.    
  1047. 8.1.5. ACCEPTOR CONTROL SET
  1048.    
  1049.    A set of Acceptor Control has the following structure :
  1050.    
  1051.    typedef struct gss_control_set_desc  {
  1052.           OM_uint32               control_count;
  1053.           gss_acceptor_control*   acceptor_controls;
  1054.           } gss_control_set;
  1055.    
  1056.    The control_count field contains the number of acceptor controls in
  1057.    the set.
  1058.    
  1059. 8.1.6. IDENTIFIER
  1060.    
  1061.    Identifiers have the following data structure:
  1062.    
  1063.  
  1064.  
  1065. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 18]
  1066. Internet-Draft                                             July 5, 199 
  1067. 6
  1068.  
  1069.    typedef struct  {
  1070.           gss_type_en             id_type
  1071.           gss_value               id_value;
  1072.           } gss_id;
  1073.    
  1074.    Where id_type identifies the syntax within the Identifier type:
  1075.    typedef enum  {
  1076.           gss_oid_t,              /* for OID */
  1077.           gss_integer,            /* for Integer */
  1078.           gss_string,             /* for character string */
  1079.           gss_uuid,               /* for DCE UUID */
  1080.           gss_buffer_t;           /* for gss_buffer */
  1081.           } gss_type_en;
  1082.    
  1083.    And where id_value is the actual value of the data of type
  1084.    Identifier:
  1085.    
  1086.    struct union  {
  1087.           gss_OID                 OID;
  1088.           OM_uint32*              integer;
  1089.           char*                   string;
  1090.           uuid_t*                 uuid;
  1091.           gss_buffer_t            buffer;
  1092.           } gss_value;
  1093.    
  1094.    This C type is applicable for the following types of attribute:
  1095.    access identity, primary group, capability, audit identity, issuer
  1096.    domain name, and role name.
  1097.    
  1098.    When one of these attributes is handled in a call, the
  1099.    security_value field of the gss_sec_attr structure for this
  1100.    attribute contains a pointer to the gss_id structure.
  1101.    
  1102. 8.1.7. IDENTIFIER SET
  1103.    
  1104.    Identifier sets have the following data structure:
  1105.    
  1106.    typedef struct gss_id_set_desc  {
  1107.           OM_uint32               id_count;
  1108.           gss_id*                 ids;
  1109.           } gss_id_set;
  1110.    
  1111.    The id_count field contains the number of Identifiers in the set.
  1112.    
  1113.    This C type is applicable for the following types of attribute:
  1114.    group, role, optional restrictions, mandatory restrictions, acceptor
  1115.    name and application trust group.
  1116.    
  1117.    When one of these attributes is handled in a call, the
  1118.    security_value field of the gss_sec_attr structure for this
  1119.    attribute contains a pointer to the gss_id_set structure.
  1120.    
  1121.  
  1122.  
  1123.  
  1124. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 19]
  1125. Internet-Draft                                             July 5, 199 
  1126. 6
  1127.  
  1128. 8.1.8. TIME PERIOD
  1129.    
  1130.    A time period has the following structure:
  1131.    
  1132.    typedef struct gss_time_period_desc  {
  1133.         time_t           start_time;
  1134.                          /* NULL for unconstrained start time */
  1135.         time_t           end_time;
  1136.                          /* NULL for unconstrained end time */
  1137.         } gss_time_period;
  1138.    
  1139. 8.1.9. TIME PERIODS LIST
  1140.    
  1141.    Time period lists have the following data structure:
  1142.    
  1143.    typedef struct gss_period_list _desc  {
  1144.         OM_uint32                 period_count;
  1145.         gss_time_period*          periods;
  1146.         } gss_period_list;
  1147.    
  1148.    The period_count field contains the number of time periods in the
  1149.    list.
  1150.    
  1151.    This C type is applicable for the miscellaneous attribute: time
  1152.    period.
  1153.    
  1154.    When a list of time periods is returned by a GSS_Get_sec_attributes
  1155.    call, or set by a GSS_Set_cred_attributes call, the security_value
  1156.    field of the gss_sec_attr structure in gss_sec_attr_set contains a
  1157.    pointer to the gss_period_list_structure.
  1158.    
  1159. 8.2. XGSS-API ROUTINE DESCRIPTIONS
  1160.    
  1161. 8.2.1. gss_set_cred_attributes
  1162.    
  1163.    /* set attributes values in credentials */
  1164.    OM_uint32 gss_set_cred _attributes (
  1165.           gss_cred_id_t           cred_handle,                /* IN */
  1166.           gss_sec_attr_set        required_attributes,        /* IN */
  1167.           OM_uint32               new_cred_req,               /* IN */
  1168.           OM_uint32               commit_cred_req,            /* IN */
  1169.           OM_uint32*              minor_status,               /* OUT*/
  1170.           gss_cred_id_t*          output_cred_handle);        /* OUT*/
  1171.    
  1172. 8.2.2. gss_get_sec_attributes
  1173.    
  1174.    /* get attributes associated with credentials or security context */
  1175.    OM_uint32 gss_get_sec_attributes (
  1176.           gss_cred_id_t           cred_handle,                /* IN */
  1177.           gss_ctx_id_t            context_handle,             /* IN */
  1178.           gss_OID_set             attribute_types_required,   /* IN */
  1179.           OM_uint32*              minor_status,               /* OUT*/
  1180.           gss_sec_attr_set**      priv_attributes,            /* OUT*/
  1181.  
  1182.  
  1183. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 20]
  1184. Internet-Draft                                             July 5, 199 
  1185. 6
  1186.  
  1187.           gss_sec_attr_set**      misc_attributes);           /* OUT*/
  1188.           OM_uint32               other_cred_present          /* OUT*/
  1189.    
  1190. 8.2.3. gss_get_received_creds
  1191.    
  1192.    /* get received credentials associated with a security context */
  1193.    OM_uint32 gss_get_received_creds (
  1194.           gss_ctx_id_t            context_handle,             /* IN */
  1195.           OM_uint32*              minor_status,               /* OUT*/
  1196.           gss_cred_list**         received_creds);            /* OUT*/
  1197.    
  1198. 8.2.4. gss_set_cred_controls
  1199.    
  1200.    /* Set acceptor controls in credentials for context establishment
  1201.    */
  1202.    OM_uint32 gss_set_cred_controls (
  1203.           gss_cred_id_t           cred_handle,                /* IN */
  1204.           gss_ control_set        required_control,           /* IN */
  1205.           OM_uint32               replace_old_controls,       /* IN */
  1206.           OM_uint32               new_cred_req,               /* IN */
  1207.           OM_uint32               commit_cred_req,            /* IN */
  1208.           OM_uint32*              minor_status,               /* OUT*/
  1209.           gss_cred_id_t*          output_cred_handle);        /* OUT*/
  1210.    
  1211. 8.2.5. gss_get_sec_controls
  1212.    
  1213.    /* set context acceptor controls on credentials */
  1214.    OM_uint32 gss_get_sec_controls (
  1215.           gss_cred_id_t           cred_handle,                /* IN */
  1216.           gss_ctx_id_t            context_handle,             /* IN */
  1217.           OM_uint32*              minor_status,               /* OUT*/
  1218.           gss_control_set*        acceptor_controls);         /* OUT*/
  1219.    
  1220. 8.2.6. gss_compound_cred
  1221.    
  1222.    /* compound credentials for delegation */
  1223.    OM_uint32 gss_compound_cred (
  1224.           gss_cred_id_t           delegated_cred_handle,      /* IN */
  1225.           gss_cred_id_t           cred_handle,                /* IN */
  1226.           OM_uint32*              minor_status,               /* OUT*/
  1227.           gss_cred_id_t           cred_handle_new);           /* OUT*/
  1228.    
  1229. 9. ACKNOWLEDGEMENTS
  1230.    
  1231.    Acknowledgements are due to the following people : Eric Baize,
  1232.    Belinda Fairthorne, Stephen Farell, Jacques Lebastard and Tom Parker
  1233.    for providing material for the construction of this document and/or
  1234.    providing useful inputs.
  1235.    
  1236. 10. SECURITY CONSIDERATIONS
  1237.    
  1238.    Security issues are discussed throughout this memo.
  1239.    
  1240.  
  1241.  
  1242. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 21]
  1243. Internet-Draft                                             July 5, 199 
  1244. 6
  1245.  
  1246. 11. REFERENCES
  1247.    
  1248.    [RFC 1508] Generic Security Service API, J Linn,
  1249.               September 1993
  1250.    
  1251.    [RFC 1509] Generic Security Service API : C-bindings, J Wray,
  1252.               September 1993
  1253.    
  1254. 12. AUTHORS'S ADDRESSES
  1255.  
  1256.    Tom Parker       Internet email: t.a.parker(a)win0199.wins.icl.co.uk
  1257.    ICL Enterprises                           Telephone: +44.1344.472169
  1258.    59 Old Road,                               Fax     : +44.1249.822703
  1259.    Derry Hill,
  1260.    Calne,
  1261.    Wiltshire  SN11 9NF,
  1262.    United Kingdom
  1263.  
  1264.    Denis Pinkas                 Internet email: D.Pinkas@frcl.bull.fr
  1265.    Bull                                  Telephone: +33 1 30 80 34 87
  1266.    Rue Jean-Jaures                             Fax: +33 1 30 80 33 21
  1267.    BP 68
  1268.    78340 Les Clayes-sous-Bois
  1269.    FRANCE
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 22]
  1302. Internet-Draft                                             July 5, 199 
  1303. 6
  1304.  
  1305. 13. CONTENT LIST
  1306. 1. STATUS OF THIS MEMO                                           1
  1307. 2. ABSTRACT                                                      1
  1308. 3. SECURITY ATTRIBUTES                                           2
  1309.      3.1. PRINCIPAL ATTRIBUTES                                   2
  1310.            3.1.1. PRIVILEGES ATTRIBUTES                          2
  1311.            3.1.2. MISCELLANEOUS ATTRIBUTES                       3
  1312.      3.2. QUALIFIER ATTRIBUTES                                   3
  1313.      3.3. ATTRIBUTES DEFINITIONS                                 3
  1314.            3.3.1. Privilege attributes                           3
  1315.               3.3.1.1. Role attribute                            3
  1316.               3.4.1.2. Access identity                           3
  1317.               3.4.1.3. Primary group                             3
  1318.               3.4.1.4. Group                                     4
  1319.               3.4.1.5. Capability                                4
  1320.            3.3.2. Miscellaneous attributes                       4
  1321.               3.4.2.1. Audit identity                            4
  1322.               3.4.2.2. Issuer domain name                        4
  1323.               3.4.2.3. Validity periods                          5
  1324.               3.4.2.4. Optional restrictions                     5
  1325.               3.4.2.5. Mandatory restrictions                    5
  1326.            3.3.3. QUALIFIER ATTRIBUTES                           5
  1327.               3.4.3.1. Acceptor name                             5
  1328.               3.4.3.2. Application trust group                   6
  1329. 4. ATTRIBUTE SET REFERENCE                                       6
  1330.      4.1. ROLE NAME                                              6
  1331. 6. INTERFACE DESCRIPTIONS                                        6
  1332.      6.1. ATTRIBUTE HANDLING SUPPORT FUNCTIONS                   6
  1333.            6.1.1. GSS_Set_cred_attributes                        6
  1334.            6.1.2. GSS_Get_sec_attributes                         6
  1335.      6.2. CONTEXT ACCEPTOR SUPPORT FUNCTION                      7
  1336.            6.2.1. GSS_Get_received_creds                         7
  1337.      6.3. CONTEXT ACCEPTOR CONTROL FUNCTIONS                     7
  1338.            6.3.1. GSS_Set_cred_controls function                 7
  1339.            6.3.2. GSS_Get_sec_controls function                  8
  1340.            6.3.3. GSS_Compound_creds function                    8
  1341. 7. DETAILED DESCRIPTION OF THE CALLS                             8
  1342.      7.1. Attribute handling calls                               8
  1343.            7.1.1. GSS_Set_cred_attributes call                   8
  1344.            7.1.2. GSS_Get_sec_attributes call                   10
  1345.      7.2. CONTEXT ACCEPTOR SUPPORT FUNCTION                     11
  1346.            7.2.1. GSS_Get_received_creds call                   12
  1347.      7.3. ACEPTOR CONTROL handling calls                        13
  1348.            7.3.1. GSS_Set_cred_controls call                    14
  1349.            7.3.2. GSS_Get_sec_controls call                     15
  1350.            7.3.3. GSS_Compound_creds call                       16
  1351. 8. C-LANGUAGE BINDINGS                                          17
  1352.      8.1. DATA TYPES AND CALLING CONVENTIONS                    17
  1353.            8.1.1. Security attributes                           17
  1354.            8.1.2. Security attribute sets                       17
  1355.            8.1.3. Credentials list                              18
  1356.            8.1.4. Acceptor control                              18
  1357.            8.1.5. Acceptor control set                          18
  1358.  
  1359.  
  1360. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 23]
  1361. Internet-Draft                                             July 5, 199 
  1362. 6
  1363.  
  1364.            8.1.6. Identifier                                    18
  1365.            8.1.7. Identifier set                                19
  1366.            8.1.8. Time period                                   20
  1367.            8.1.9. Time periods list                             20
  1368.      8.2. XGSS-API ROUTINE DESCRIPTIONS                         20
  1369.            8.2.1. gss_set_cred_attributes                       20
  1370.            8.2.2. gss_get_sec_attributes                        20
  1371.            8.2.3. gss_get_received_creds                        21
  1372.            8.2.4. gss_set_cred_controls                         21
  1373.            8.2.5. gss_get_sec_controls                          21
  1374.            8.2.6. gss_compound_cred                             21
  1375. 9. ACKNOWLEDGEMENTS                                             21
  1376. 10. SECURITY CONSIDERATIONS                                     21
  1377. 11. REFERENCES                                                  22
  1378. 12. AUTHORS'S ADDRESSES                                         22
  1379. 13. CONTENT LIST                                                23
  1380.    
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419. Parker, Pinkas         Document Expiration: 5 January, 1997   [Page 24]
  1420. --
  1421.  
  1422.  
  1423.       Denis Pinkas                        E-mail : D.Pinkas@frcl.bull.fr
  1424.       Bull S.A.                                                          
  1425.       Rue Jean Jaures  B.P. 68                Phone : (33-1) 30 80 34 87
  1426.       78340 Les Clayes sous Bois. FRANCE       Fax  : (33-1) 30 80 33 21
  1427.  
  1428.