Treat "Symantec VIP Access" as TOTP

Although not advertised as such, Symantec VIP Access is based on TOTP and
there is an open-source implementation for provisioning the tokens and
obtaining the TOTP secret at http://github.com/dlenski/python-vipaccess
This commit is contained in:
Daniel Lenski
2019-05-30 16:12:20 -07:00
parent c9944a15c8
commit fce587af61
2 changed files with 4 additions and 2 deletions
+1
View File
@@ -14,6 +14,7 @@ password = mypass
sms.okta = 0 sms.okta = 0
#totp.okta = ABCDEFGHIJKLMNOP #totp.okta = ABCDEFGHIJKLMNOP
#totp.google = ABCDEFGHIJKLMNOP #totp.google = ABCDEFGHIJKLMNOP
#totp.symantec = ABCDEFGHIJKLMNOP
gateway = Manual ny1-gw.example.com # optional hardcoded gateway gateway = Manual ny1-gw.example.com # optional hardcoded gateway
+3 -2
View File
@@ -172,7 +172,7 @@ def load_conf(cf):
return conf return conf
def mfa_priority(conf, ftype, fprovider): def mfa_priority(conf, ftype, fprovider):
if ftype == 'token:software:totp': if ftype == 'token:software:totp' or (ftype, fprovider) == ('token', 'symantec'):
ftype = 'totp' ftype = 'totp'
if ftype not in ['totp', 'sms', 'webauthn']: if ftype not in ['totp', 'sms', 'webauthn']:
return 0 return 0
@@ -382,7 +382,8 @@ def okta_mfa(conf, s, j):
for f in sorted(factors, key=lambda x: x.get('priority', 0), reverse=True): for f in sorted(factors, key=lambda x: x.get('priority', 0), reverse=True):
#print(f) #print(f)
ftype = f.get('type') ftype = f.get('type')
if ftype == 'token:software:totp': fprovider = f.get('provider')
if ftype == 'token:software:totp' or (ftype, fprovider) == ('token', 'symantec'):
r = okta_mfa_totp(conf, s, f, state_token) r = okta_mfa_totp(conf, s, f, state_token)
elif ftype == 'sms': elif ftype == 'sms':
r = okta_mfa_sms(conf, s, f, state_token) r = okta_mfa_sms(conf, s, f, state_token)