78 lines
3.5 KiB
Plaintext
78 lines
3.5 KiB
Plaintext
|
/***********************************************************************
|
||
|
*
|
||
|
* README for libcasa_s_authtoken
|
||
|
*
|
||
|
***********************************************************************/
|
||
|
|
||
|
INTRODUCTION
|
||
|
|
||
|
libcasa_s_authtoken provides an API for the validation of CASA Authentication Tokens.
|
||
|
The API provides a means for obtaining identity information about authenticated
|
||
|
entities.
|
||
|
|
||
|
Applications should avoid calling directly into this library's APIs. Instead, applications
|
||
|
should code to the PAM API to validate authentication credentials or allow an external
|
||
|
module to perform the credential validation. To facilitate this, CASA Authentication
|
||
|
provides PAM, Apache, and JAAS modules that can be used to validate credentials containing
|
||
|
CASA Authentication tokens,
|
||
|
|
||
|
CONFIGURING TRUSTED AUTHENTICATION TOKEN SERVICES
|
||
|
|
||
|
tbd. Add info about the installation of public certificates and trusted certificate authorities.
|
||
|
|
||
|
CONFIGURING ADDITIONAL IDENTITY TOKEN PROVIDER MODULES
|
||
|
|
||
|
CASA Authentication Tokens contain Identity Tokens. The Identity Tokens contain the identity
|
||
|
information about the entity being authenticated. Identity Tokens can be of different types,
|
||
|
the type utilized for use with a particular service is configured at the time that the service
|
||
|
is configured for CASA Authentication. The default identity token type is CasaIdentityToken.
|
||
|
|
||
|
libcasa_s_authtoken supports different identity token types through an API that allows for the
|
||
|
configuration of different Identity Token Provider plug-ins. An Identity Token Provider plug-in
|
||
|
is configured by placing a configuration file for the plug-ins in the
|
||
|
/etc/opt/CASA/authtoken.d/modules.d folder. The name of the plug-in configuration file is related
|
||
|
to the identity token type in the following manner: IdentityTokenTypeName.conf.
|
||
|
|
||
|
Identity Token Provider plug-in configuration files must must contain a directive indicating the
|
||
|
path to the library implementing the Identity Token Provider plug-in (See the configuration file
|
||
|
for the CasaIdentityToken plug-in for an example).
|
||
|
|
||
|
SERVER APPLICATION PROGRAMMING NOTES
|
||
|
|
||
|
The Validate CASA Authentication Token API is defined in casa_s_authtoken.h.
|
||
|
|
||
|
The API consists of a call to validate authentication tokens. The caller must supply a service
|
||
|
name which must match the service name provided by the client when requesting the authentication
|
||
|
token. Successful calls to the validate authentication token API will return a handle to a principal
|
||
|
interface object. The principal interface object handle can be used to obtain identity information
|
||
|
about the authenticated entity as well as information about the authentication realm. The principal
|
||
|
interface object must be released after it is no longer needed. The amount and type of identity
|
||
|
information associated with the principal interface is dependent on what is configured at the
|
||
|
time that the service is enabled for CASA Authentication.
|
||
|
|
||
|
For examples of code which uses the Validate CASA Authentication Token API look at the implementations
|
||
|
of the CASA Authentication PAM module and the CASA Authentication Provider Apache module.
|
||
|
|
||
|
IDENTITY TOKEN PROVIDER PROGRAMMING NOTES
|
||
|
|
||
|
The Identity Token Provider API is defined in iden_token_provider.h.
|
||
|
|
||
|
For an example see the implementation of the CASA Identity Token Provider.
|
||
|
|
||
|
SECURITY CONSIDERATIONS
|
||
|
|
||
|
CASA Authentication Tokens when compromised can be used to either impersonate
|
||
|
a user or to obtain identity information about the user. Because of this it is
|
||
|
important that the tokens be secured by applications making use of them. It is
|
||
|
recommended that the tokens be transmitted using SSL.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|