NAME

Authen::NZRealMe::LogonStrength - Manipulate NZ RealMe Login service AuthnContextClassRef values

DESCRIPTION

The NZ RealMe Login service supports the notion of logon strength. For example a user session authenticated with a username and password is a 'low strength' logon. Whereas authenticating with a user, password and SecurID token will result in a moderate strength logon. The different logon strengths are represented by URNs which will be present in the initial SAML AuthnRequest message as well as the assertion in the resulting ArtifactResponse.

This class is used to encapsulate the URNs and to provide methods for comparing the strength of one URN to another.

CONSTANTS

The following constants are defined for referring to URNs:

Authen::NZRealMe::LogonStrength::STRENGTH_LOW
Authen::NZRealMe::LogonStrength::STRENGTH_MODERATE
Authen::NZRealMe::LogonStrength::STRENGTH_MODERATE_SID
Authen::NZRealMe::LogonStrength::STRENGTH_MODERATE_SMS

METHODS

new( strength )

Creates an object from the named strength identifier which might be a word (e.g.: 'low'), a URN (see the RealMe Login service SAML v2.0 Messaging Specification), or a URN fragment matching the last portion of a URN (e.g.: 'OTP:Token:SID').

urn( )

Returns the URN for the selected logon strength.

score( )

Returns the strength score (currently either 10 or 20) which is used when comparing strengths using the 'minimum' match type.

assert_match( required_strength, strength_match )

This method returns if the provided logon strength matches the required strength, or dies if the strength does not meet the specified requirement.

The required_strength will default to 'low' if not provided.

The strength_match parameter must be 'exact' or 'minimum' (default 'minimum'). When comparing different logon strengths, the rules outlined in the RealMe Login service SAML v2.0 Messaging Specification are used.

SEE ALSO

See Authen::NZRealMe for documentation index.

LICENSE AND COPYRIGHT

Copyright (c) 2010-2022 Enrolment Services, New Zealand Electoral Commission

Written by Grant McLean <grant@catalyst.net.nz>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.