WebAuth::Token::App - WebAuth app tokens
my $token = WebAuth::Token::App->new;
$token->subject ('user');
$token->expiration (time + 3600);
print $token->encode ($keyring), "\n";
A WebAuth application token, used by a WebAuth Application Server
to store data, such as the identity of an authenticated user or the session
key for that identity information.
There are two basic forms of this token: one that contains only
the session_key attribute and one that contains the other attributes. The
first form is used to communicate the session key for WebKDC communication
across a pool of WebAuth Application Servers that the user may visit
interchangeably while accessing the same URL. The second form is used to
record the authenticated identity of the user for a session on a WebAuth
Application Server.
- new ()
- Create a new, empty WebAuth::Token::App. At least some attributes will
have to be set using the accessor methods described below before the token
can be used.
As with WebAuth module functions, failures are signaled by
throwing WebAuth::Exception rather than by return status.
- encode (KEYRING)
- Generate the encoded and encrypted form of this token using the provided
KEYRING. The encryption key used will be the one returned by the
best_key() method of WebAuth::Keyring on that KEYRING.
- subject
([SUBJECT])
- Get or set the subject, which holds the authenticated identity of the user
holding this token.
- authz_subject
([SUBJECT])
- Get or set the authorization subject, which holds the asserted
authorization identity of the user holding this token. The authorization
identity may not match the authenticated identity. It represents a request
to use the authorization identity instead of the authentication subject
when applying ACLs or determining identity in the application.
- last_used
([TIMESTAMP])
- Get or set the last-used timestamp in seconds since epoch, which is
updated each time the token is presented to the WebAuth Application
Server. This is used to implement inactivity timeouts.
- session_key
([DATA])
- Get or set the session key for communication with the WebKDC. An app token
containing a session key is used to allow any system in a pool of WebAuth
Application Servers sharing the same private key can decrypt this app
token and then use the key to decrypt the tokens returned from the WebKDC.
The data contained in this attribute is only the raw key material, not a
WebAuth::Key object.
If this attribute is present, none of the other attributes
will be present.
- initial_factors
([FACTORS])
- Get or set a comma-separated list of authentication factors used by the
user during initial authentication (the single sign-on transaction). For a
list of possible factors and their meaning, see the WebAuth protocol
specification.
- session_factors
([FACTORS])
- Get or set a comma-separated list of authentication factors used by the
user to authenticate this session (this particular visit to this WebAuth
Application Server). For a list of possible factors and their meaning, see
the WebAuth protocol specification.
- loa ([LOA])
- Get or set the level of assurance established for this user
authentication. This is a number whose values are site-defined but for
which increasing numbers represent increasing assurance for the
authentication.
- creation
([TIMESTAMP])
- Get or set the creation timestamp for this token in seconds since epoch.
If not set, the encoded token will have a creation time set to the time of
encoding.
- expiration
([TIMESTAMP])
- Get or set the expiration timestamp for this token in seconds since
epoch.
Russ Allbery <eagle@eyrie.org>