UNPKG

@digitalpersona/enrollment

Version:
3 lines (2 loc) 7.36 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@digitalpersona/core"),require("u2f-api")):"function"==typeof define&&define.amd?define(["exports","@digitalpersona/core","u2f-api"],r):r(((e=e||self).dp=e.dp||{},e.dp.enrollment=e.dp.enrollment||{}),e.dp.core,e.u2fApi)}(this,function(e,r,n){"use strict";class t{constructor(e){if(this.context=e,!this.context)throw new Error("context")}_canEnroll(e){return this.context.enrollService.IsEnrollmentAllowed(new r.Ticket(this.context.securityOfficer||""),this.context.getUser(),e)}_enroll(e){return this.context.user instanceof r.User?this.context.enrollService.EnrollAltusUserCredentials(new r.Ticket(this.context.securityOfficer||""),this.context.user,e):this.context.enrollService.EnrollUserCredentials(new r.Ticket(this.context.securityOfficer||""),new r.Ticket(this.context.user),e)}_unenroll(e){return this.context.user instanceof r.User?this.context.enrollService.DeleteAltusUserCredentials(new r.Ticket(this.context.securityOfficer||""),this.context.user,e):this.context.enrollService.DeleteUserCredentials(new r.Ticket(this.context.securityOfficer||""),new r.Ticket(this.context.user),e)}}var s,l;!function(e){e[e.SendEmailVerificationRequest=16]="SendEmailVerificationRequest",e[e.SendSMSRequest=513]="SendSMSRequest",e[e.SendEmailRequest=514]="SendEmailRequest",e[e.UnlockActiveIdHardwareToken=515]="UnlockActiveIdHardwareToken"}(s||(s={}));!function(e){e[e.PasswordRandomization=4]="PasswordRandomization",e[e.PasswordReset=13]="PasswordReset"}(l||(l={}));class o extends t{constructor(e,r){if(super(e),!r)throw new Error("appId");this.appId=r}canEnroll(){return super._canEnroll(r.Credential.U2F)}enroll(){const e=this.appId,t=Math.round((new Date).getTime()/(1e3*o.TIME_WINDOW)),s=r.Base64Url.fromUtf16(t.toString()),l=[{version:"U2F_V2",appId:e,challenge:s}];return n.register(l,[],o.TIMEOUT).then(n=>super._enroll(new r.Credential(r.Credential.U2F,Object.assign({version:"U2F_V2",appId:e},n))))}unenroll(){return super._unenroll(new r.Credential(r.Credential.U2F))}}o.TIMEOUT=20,o.TIME_WINDOW=30,e.ContactlessCardEnroll=class extends t{constructor(e){super(e)}canEnroll(){return super._canEnroll(r.Credential.ContactlessCard)}enroll(e){return super._enroll(new r.Credential(r.Credential.ContactlessCard,e))}unenroll(){return super._unenroll(new r.Credential(r.Credential.ContactlessCard))}},e.EnrollmentContext=class{constructor(e,n,t){if(this.enrollService=e,this.user=n,this.securityOfficer=t,!this.enrollService)throw new Error("enrollService");if(!this.user)throw new Error("user");this.securityOfficer||this.user instanceof r.User||(this.securityOfficer=this.user)}isAuthenticated(){return!(this.user instanceof r.User)}getJWT(){return this.user instanceof r.User?"":this.user}getUser(){return this.user instanceof r.User?this.user:r.User.fromJWT(this.user)}},e.FaceEnroll=class extends t{constructor(e){super(e)}canEnroll(){return super._canEnroll(r.Credential.Face)}enroll(e){return super._enroll(new r.Credential(r.Credential.Face,e))}unenroll(){return super._unenroll(new r.Credential(r.Credential.Face))}},e.FingerprintsEnroll=class extends t{constructor(e){super(e)}getEnrolledFingers(){return this.context.enrollService.GetEnrollmentData(this.context.getUser(),r.Credential.Fingerprints).then(e=>JSON.parse(r.Utf8.fromBase64Url(e)).map(e=>r.Finger.fromJson(e)))}canEnroll(){return super._canEnroll(r.Credential.Fingerprints)}enroll(e,n){const t={position:e instanceof r.Finger?e.position:e,samples:n};return super._enroll(new r.Credential(r.Credential.Fingerprints,t))}unenroll(e){const n="number"==typeof e?[{position:e}]:e instanceof r.Finger?[e]:e instanceof Array?e.map(e=>e instanceof r.Finger?e.position:e):null;return super._unenroll(new r.Credential(r.Credential.Fingerprints,n))}},e.PasswordEnroll=class extends t{constructor(e){super(e)}canEnroll(){return super._canEnroll(r.Credential.Password)}enroll(e,n){return super._enroll(new r.Credential(r.Credential.Password,{oldPassword:n,newPassword:e}))}reset(e){return super._enroll(new r.Credential(r.Credential.Password,e))}randomize(){return this.context.enrollService.CustomAction(new r.Ticket(this.context.securityOfficer||""),this.context.getUser(),new r.Credential(r.Credential.Password),l.PasswordRandomization)}},e.PinEnroll=class extends t{constructor(e){super(e)}canEnroll(){return super._canEnroll(r.Credential.PIN)}enroll(e){return super._enroll(new r.Credential(r.Credential.PIN,e))}unenroll(){return super._unenroll(new r.Credential(r.Credential.PIN))}},e.ProximityCardEnroll=class extends t{constructor(e){super(e)}canEnroll(){return super._canEnroll(r.Credential.ProximityCard)}enroll(e){return super._enroll(new r.Credential(r.Credential.ProximityCard,e))}unenroll(){return super._unenroll(new r.Credential(r.Credential.ProximityCard))}},e.SecurityQuestionsEnroll=class extends t{constructor(e){super(e)}getEnrolledQuestions(){return this.context.enrollService.GetEnrollmentData(this.context.getUser(),r.Credential.SecurityQuestions).then(e=>JSON.parse(r.Utf8.fromBase64Url(e)).map(e=>r.Question.fromJson(e)))}canEnroll(){return super._canEnroll(r.Credential.SecurityQuestions)}enroll(e){const n=e.filter(e=>e.question.number===e.answer.number).filter((e,r,n)=>n.findIndex(r=>((e,r)=>e.question.number===r.question.number)(r,e))===r).sort((e,r)=>r.question.number-e.question.number);return super._enroll(new r.Credential(r.Credential.SecurityQuestions,n))}unenroll(){return super._unenroll(new r.Credential(r.Credential.SecurityQuestions))}},e.SmartCardEnroll=class extends t{constructor(e){super(e)}getEnrolledCards(){return this.context.enrollService.GetEnrollmentData(this.context.getUser(),r.Credential.SmartCard).then(e=>JSON.parse(r.Utf8.fromBase64Url(e)))}canEnroll(){return super._canEnroll(r.Credential.SmartCard)}enroll(e){return super._enroll(new r.Credential(r.Credential.SmartCard,e))}unenroll(e){return super._unenroll(new r.Credential(r.Credential.SmartCard,e))}},e.TimeOtpEnroll=class extends t{constructor(e){super(e)}createKeyUri(e){const n=this.context.getJWT(),t=r.JWT.claims(n);if(!t)return Promise.reject(new Error("NoClaims"));const s=t.dom||t.iss;if(!s)return Promise.reject(new Error("NoIssuer"));const l=t.uid||t.ad_guid,o=this.context.getUser().name,i=r.Base32.fromBytes(e);return this.context.enrollService.GetEnrollmentData(r.User.Anonymous(),r.Credential.OneTimePassword).then(e=>{const n=JSON.parse(e);if(!n)return Promise.reject(new Error("NoEnrollmentData"));const t=l&&n.pn_tenant_id;return new r.Url("otpauth://totp",`${s}:${o}`,{secret:i,issuer:s,apikey:n.pn_api_key,tenantid:t?n.pn_tenant_id:void 0,useruuid:t?l:void 0}).href})}sendVerificationCode(e,n){return this.context.enrollService.CustomAction(r.Ticket.None(),this.context.getUser(),new r.Credential(r.Credential.OneTimePassword,{key:r.Base64Url.fromBytes(e),phoneNumber:n}),s.SendSMSRequest).then()}enrollSoftwareOtp(e,n,t){return super._enroll(new r.Credential(r.Credential.OneTimePassword,{otp:e,key:r.Base64Url.fromBytes(n),phoneNumber:t}))}enrollHardwareOtp(e,n,t,s){return super._enroll(new r.Credential(r.Credential.OneTimePassword,{otp:e,serialNumber:n,counter:t,timer:s}))}unenroll(){return super._unenroll(new r.Credential(r.Credential.OneTimePassword))}},e.U2FEnroll=o,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=index.umd.min.js.map