Next: , Up: Mechanisms   [Contents][Index]


5.1 The EXTERNAL mechanism

The EXTERNAL mechanism is used to authenticate a user to a server based on out-of-band authentication. EXTERNAL is typically used over TLS authenticated channels. Note that in the server, you need to make sure that TLS actually authenticated the client successfully and that the negotiated ciphersuite and other parameters are acceptable. It is generally not sufficient that TLS is used, since TLS supports anonymous and other variants that generally provide less assurance than you normally want.

In the client, this mechanism is always enabled, and it will send the GSASL_AUTHZID property as the authorization name to the server, if the property is set. If the property is not set, an empty authorization name is sent. You need not implement a callback.

In the server, this mechanism will request the GSASL_VALIDATE_EXTERNAL callback property to decide whether the client is authenticated and authorized to log in. Your callback can retrieve the GSASL_AUTHZID property to inspect the requested authorization name from the client.

The EXTERNAL mechanism was initially specified in the core SASL framework RFC 2222 and later revised in RFC 4422.