2.2.1.1.9 Impersonation Level

For secure calls, the higher-level layer protocols often specify the impersonation level. Various impersonation levels, listed in the following table, allow the higher-layer protocols to control the capabilities of the client's identity that are available to the server. While building the security context (section 3.1.1.1.1), the client implementation passes this to the security provider on the first call to the implementation-specific equivalent of the abstract GSS_Init_sec_context call, as specified in [RFC2743].

Client implementations of this extension MUST support the following impersonation levels. Note that the impersonation level does not itself appear in any RPC message and, hence, the numeric values of the following constants are implementation-specific. However, the values affect the token returned by the implementation-specific equivalent of the abstract GSS_Init_sec_context_call, as specified in [RFC2743].

Value

Meaning

RPC_C_IMPL_LEVEL_IDENTITY

The server can obtain information about the security context of the client but cannot impersonate the client's security context.

The client MUST pass the GSS_C_IDENTITY_FLAG (defined in [RFC4757] section 7.1, which extends [RFC2743]) to the implementation-specific equivalent of the abstract GSS_Init_sec_context_call.

RPC_C_IMPL_LEVEL_IMPERSONATE

The server can impersonate the client's security context on the server system but cannot make requests to remote machines using the client security context.

This is the default behavior, as specified in [RFC2743].

RPC_C_IMPL_LEVEL_DELEGATE

The server can impersonate the client's security context on the server system and can make requests to remote machines using the client's security context.

The client MUST pass the implementation-specific equivalent of the deleg_req_flag, as specified in [RFC2743] section 2.2.1.

If the higher-level protocol does not specify an impersonation level, RPC_C_IMPL_LEVEL_IMPERSONATE MUST be used as the default.