Guest User

Untitled

a guest
Jul 6th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. #!/bin/bash
  2. # Environment variables with sanish defaults for command line overrides
  3. TEST_USER=${TEST_USER:-testuser}
  4. TEST_PASSWORD=${TEST_PASSWORD:-testpassword}
  5. SECRET_KEY=${SECRET_KEY:-foo}
  6. SECRET_VALUE=${SECRET_VALUE:-zoo}
  7. TOTP_PERIOD=${TOTP_PERIOD:-30}
  8. TOTP_KEYSIZE=${TOTP_KEYSIZE:-30}
  9. TOTP_ALGO=${TOTP_ALGO:-SHA256}
  10. TOTP_DIGITS=${TOTP_DIGITS:-6}
  11.  
  12. vault auth enable userpass
  13.  
  14. vault write sys/mfa/method/totp/my_totp \
  15. issuer=Vault \
  16. period=${TOTP_PERIOD} \
  17. key_size=${TOTP_KEYSIZE} \
  18. algorithm=${TOTP_ALGO} \
  19. digits=${TOTP_DIGITS}
  20.  
  21. vault policy write totp-policy -<<EOF
  22. # Support both v1 and v2 paths
  23. path "secret/${SECRET_KEY}" {
  24. capabilities = ["read"]
  25. mfa_methods = ["my_totp"]
  26. }
  27.  
  28. path "secret/data/${SECRET_KEY}" {
  29. capabilities = ["read"]
  30. mfa_methods = ["my_totp"]
  31. }
  32. EOF
  33.  
  34. vault kv put secret/${SECRET_KEY} password=${SECRET_VALUE}
  35.  
  36. vault write auth/userpass/users/${TEST_USER} \
  37. password=${TEST_PASSWORD} \
  38. policies=totp-policy
  39.  
  40. TOKEN=$(vault write -field=token auth/userpass/login/${TEST_USER} password=${TEST_PASSWORD})
  41.  
  42. ENTITY_ID=$(vault token lookup -format=json ${TOKEN} | jq -r .data.entity_id)
  43.  
  44. BARCODE=$(vault write -field=barcode sys/mfa/method/totp/my_totp/admin-generate entity_id=${ENTITY_ID})
  45.  
  46. echo "Paste the following into your browser to generate the TOTP image to import into your MFA device e.g. Google Authenticator"
  47.  
  48. echo "data:image/png;base64,${BARCODE}"
  49. echo
  50.  
  51. echo "Run the following commands to login and test"
  52. cat <<EOF
  53. unset VAULT_TOKEN
  54. vault login -method=userpass username=${TEST_USER} password=${TEST_PASSWORD}
  55. vault kv get -mfa=my_totp:\${CODE} secret/${SECRET_KEY}
  56. EOF
Add Comment
Please, Sign In to add comment