OATH-LDAP as ldapext WG item?
Michael Ströder <[email protected]> Tue, 24 Nov 2015 15:49:30 +0100
| Newsgroups | gmane.ietf.ldapext |
|---|---|
| Message-ID | <[email protected]> |
HI! Anyone here interested in co-authoring an I-D describing OATH-LDAP (presented at LDAPcon 2015)? Is there general interest to add this as ldapext WG item? I have a schema for HOTP/TOTP (see attachment) and a reference implementation for HOTP and some thoughts on operational considerations. TOTP schema might need some small work and I have to adapt the implementation. Ciao, Michael. _______________________________________________ Ldapext mailing list [email protected] https://www.ietf.org/mailman/listinfo/ldapext
oath-ldap.schema
(text/plain, 8.6 KB)
############################################################################ # Schema for OATH-LDAP # $Revision: 1.4 $ # # Author: Michael Ströder <[email protected]> # # This schema is meant to be used along with normal password authentication # therefore it does not replace 'userPassword' attribute values. # # +--------+ # | person |<-----------+ # +--------+ | # ^ +----+-----+ # | | account | # | +--+----+--+ # +-----+-----+ | | # | oathToken |<--------+ | # +-----+-----+ | # | | # V V # +-----+------+ +-----------+ # | oathParams | | pwdPolicy | # +------------+ +-----------+ # ############################################################################ # OID arc for OATH (RFC 4226 and RFC 6238) beneath stroeder-com-pub-ldap #----------------------------------------------------------------------- objectidentifier oath-ldap 1.3.6.1.4.1.5427.1.389.4226 objectidentifier oath-ldap-at oath-ldap:4 objectidentifier oath-ldap-oc oath-ldap:6 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # General #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Attribute types #---------------- attributetype ( oath-ldap-at:1 NAME 'oathSecret' DESC 'OATH-LDAP: Shared Secret' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY octetStringMatch SUBSTR octetStringSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{256} ) attributetype ( oath-ldap-at:2 NAME 'oathTokenSerialNumber' DESC 'OATH-LDAP: Proprietary hardware token serial number assigned by vendor' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP serialNumber ) # see spec at http://openauthentication.org/specification/tokenSpecs attributetype ( oath-ldap-at:3 NAME 'oathTokenIdentifier' DESC 'OATH-LDAP: Globally unique OATH token identifier' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP uniqueIdentifier ) attributetype ( oath-ldap-at:4 NAME 'oathParamsEntry' DESC 'OATH-LDAP: DN pointing to OATH parameter/policy object' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP distinguishedName ) attributetype ( oath-ldap-at:5 NAME 'oathOTPLength' DESC 'OATH-LDAP: Length of OTP (number of digits)' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( oath-ldap-at:6 NAME 'oathHMACAlgorithm' DESC 'OATH-LDAP: HMAC algorithm used for generating OTP values' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 ) attributetype ( oath-ldap-at:7 NAME 'oathTimestamp' DESC 'OATH-LDAP: Timestamp (not directly used).' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) attributetype ( oath-ldap-at:7.1 NAME 'oathLastFailure' DESC 'OATH-LDAP: Timestamp of last failed OATH validation' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathTimestamp ) attributetype ( oath-ldap-at:7.2 NAME 'oathLastLogin' DESC 'OATH-LDAP: Timestamp of last successful OATH validation' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathTimestamp ) attributetype ( oath-ldap-at:7.3 NAME 'oathSecretTime' DESC 'OATH-LDAP: Timestamp of generation of oathSecret attribute.' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathTimestamp ) attributetype ( oath-ldap-at:8 NAME 'oathSecretMaxAge' DESC 'OATH-LDAP: Time in seconds for which the shared secret (oathSecret) will be valid from oathSecretTime value.' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( oath-ldap-at:11 NAME 'oathSecretLength' DESC 'OATH-LDAP: Length of plain-text shared secret (number of bytes)' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( oath-ldap-at:9 NAME 'oathToken' DESC 'OATH-LDAP: DN pointing to OATH token object' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP distinguishedName ) attributetype ( oath-ldap-at:10 NAME 'oathCounter' DESC 'OATH-LDAP: Counter for OATH data (not directly used)' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( oath-ldap-at:10.1 NAME 'oathFailureCount' DESC 'OATH-LDAP: OATH failure counter' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathCounter ) attributetype ( oath-ldap-at:10.7 NAME 'oathMaxUsageCount' DESC 'OATH-LDAP: Maximum number of times a token can be used' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathCounter ) attributetype ( oath-ldap-at:10.5 NAME 'oathThrottleLimit' DESC 'OATH-LDAP: Failure throttle limit' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathCounter ) # Object classes #--------------- objectclass ( oath-ldap-oc:1 NAME 'oathUser' DESC 'OATH-LDAP: User Object' X-ORIGIN 'OATH-LDAP' ABSTRACT ) # This object class is used to specify general OATH policy parameters objectclass ( oath-ldap-oc:2 NAME 'oathParams' DESC 'OATH-LDAP: Parameter object' X-ORIGIN 'OATH-LDAP' ABSTRACT MUST ( oathOTPLength $ oathHMACAlgorithm ) MAY ( oathSecretMaxAge $ oathSecretLength $ oathMaxUsageCount $ oathThrottleLimit ) ) objectclass ( oath-ldap-oc:3 NAME 'oathToken' DESC 'OATH-LDAP: User Object' X-ORIGIN 'OATH-LDAP' ABSTRACT MAY ( oathSecret $ oathSecretTime $ oathLastLogin $ oathFailureCount $ oathLastFailure $ oathTokenSerialNumber $ oathTokenIdentifier ) ) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # HOTP (see RFC 4226) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Attribute types #---------------- attributetype ( oath-ldap-at:9.1 NAME 'oathHOTPToken' DESC 'OATH-LDAP: DN pointing to OATH/HOTP token object' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathToken ) attributetype ( oath-ldap-at:10.2 NAME 'oathHOTPCounter' DESC 'OATH-LDAP: Counter for HOTP' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathCounter ) attributetype ( oath-ldap-at:10.3 NAME 'oathHOTPLookAhead' DESC 'OATH-LDAP: Look-ahead window for HOTP' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathCounter ) attributetype ( oath-ldap-at:5.1 NAME 'oathHOTPParams' DESC 'OATH-LDAP: DN pointing to HOTP parameter object' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathParamsEntry ) attributetype ( oath-ldap-at:5.2 NAME 'oathTOTPParams' DESC 'OATH-LDAP: DN pointing to TOTP parameter object' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathParamsEntry ) # Object classes #--------------- objectclass ( oath-ldap-oc:1.1 NAME 'oathHOTPUser' DESC 'OATH-LDAP: HOTP user object' X-ORIGIN 'OATH-LDAP' AUXILIARY SUP oathUser MAY ( oathHOTPToken ) ) objectclass ( oath-ldap-oc:2.1 NAME 'oathHOTPParams' DESC 'OATH-LDAP: HOTP parameter object' X-ORIGIN 'OATH-LDAP' AUXILIARY SUP oathParams MUST ( oathHOTPLookAhead ) ) objectclass ( oath-ldap-oc:3.1 NAME 'oathHOTPToken' DESC 'OATH-LDAP: HOTP token object' X-ORIGIN 'OATH-LDAP' AUXILIARY SUP oathToken MAY ( oathHOTPParams $ oathHOTPCounter ) ) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # TOTP (see RFC 6238) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Attribute types #---------------- attributetype ( oath-ldap-at:9.2 NAME 'oathTOTPToken' DESC 'OATH-LDAP: DN pointing to OATH/TOTP token object' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathToken ) attributetype ( oath-ldap-at:4.1 NAME 'oathTOTPTimeStepPeriod' DESC 'OATH-LDAP: Time window for TOTP (seconds)' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributetype ( oath-ldap-at:10.6 NAME 'oathTOTPLastTimeStep' DESC 'OATH-LDAP: Last time step seen for TOTP (time/period)' X-ORIGIN 'OATH-LDAP' SINGLE-VALUE SUP oathCounter ) # Object classes #--------------- objectclass ( oath-ldap-oc:1.2 NAME 'oathTOTPUser' DESC 'OATH-LDAP: TOTP user object' X-ORIGIN 'OATH-LDAP' AUXILIARY SUP oathUser MUST ( oathTOTPToken ) ) objectclass ( oath-ldap-oc:2.2 NAME 'oathTOTPParams' DESC 'OATH-LDAP: TOTP parameter object' X-ORIGIN 'OATH-LDAP' AUXILIARY SUP oathParams MUST ( oathTOTPTimeStepPeriod ) ) objectclass ( oath-ldap-oc:3.2 NAME 'oathTOTPToken' DESC 'OATH-LDAP: TOTP token' X-ORIGIN 'OATH-LDAP' AUXILIARY SUP oathToken MAY ( oathTOTPParams $ oathTOTPLastTimeStep ) )
smime.p7s
(application/pkcs7-signature, 4.1 KB) - not displayed