Method: Login to StoredSafe
Description
Authenticate to StoredSafe using username, passphrase and a valid token, could be a Yubico OTP, a TOTP or a smartcard. Returns a token used for subsequent calls to the API.
URL Syntax
/api/{version}/auth
HTTP Method
POST
Successful HTTP Response
200
Parameters
| Parameter name | Description | Parameter type | Type | Mandatory | Comment | 
|---|---|---|---|---|---|
| username | StoredSafe username | JSON-encoded | String | yes | |
| keys | Passphrase, API-key and Yubico OTP | JSON-encoded | String | Yubico OTP | Only valid for Yubico OTP | 
| passphrase | Passphrase | JSON-encoded | String | TOTP, SMC | |
| otp | OTP | JSON-encoded | String | TOTP | Only valid for TOTP | 
| apikey | API-key | JSON-encoded | String | TOTP, SMC | |
| logintype | Either the string “totp” or “smc_rest” (smartcard) | JSON-encoded | String | TOTP, SMC | 
Response Attributes
| Attribute | Description | Type | Comment | 
|---|---|---|---|
| CALLINFO.errorcodes | Number of errors | Integer | |
| CALLINFO.errors | Number of errors | Integer | |
| CALLINFO.general | Information | Array | |
| CALLINFO.handler | Handler used | String | |
| CALLINFO.status | SUCCESS or FAIL | String | |
| CALLINFO.token | StoredSafe Token to be used for subsequent calls | String | |
| CALLINFO.fingerprint | PGP fingerprint of logged in user | String | |
| CALLINFO.userid | Numerical user-id | String | |
| CALLINFO.password | Pass phrase of logged in user | String | |
| CALLINFO.userstatus | Status bits for logged in user | String | |
| CALLINFO.username | Username of logged in user | String | |
| CALLINFO.fullname | Full name of logged in user | String | |
| CALLINFO.timeout | How long the token is valid (in microseconds) | Integer | |
| CALLINFO.filesupport | If file handling supported, how many templates use file storage | String | |
| CALLINFO.audit.violations | Any system violations | Array | |
| CALLINFO.audit.warnings | Any system related warnings | Array | |
| CALLINFO.version | StoredSafe version and build number | Array | |
| DATA.username | Supplied username | String | |
| DATA.keys | Supplied Passphrase, API-key and Yubico OTP | String | Only valid for Yubico OTP | 
| DATA.passphrase | Supplied passphrase | String | Only valid for TOTP or SMC | 
| DATA.otp | Supplied OTP | String | Only valid for TOTP | 
| DATA.apikey | Supplied API key | String | Only valid for TOTP or SMC | 
| DATA.logintype | The string “totp” or “smc_rest” (smartcard) | String | Only valid for TOTP or SMC | 
| PARAMS | PARAMS (empty) | Object | 
Example using HOTP
Login to StoredSafe and obtain a token used for latter communication.
Request
POST /api/1.0/auth
{
  "username":"foo@example.com",
  "keys":"ThisIsAPrettyLousyPassPhraseMy-API-KeyOhMyCouldThisReallyBeAnOTP"
}
Response
HTTP/2 200
Content-Type: application/json
{
    "CALLINFO": {
        "audit": {
            "violations": [],
            "warnings": []
        },
        "errorcodes": 0,
        "errors": 0,
        "fingerprint": "<PGP fingerprint>",
        "userid": "42",
        "password": "ThisIsAPrettyLousyPassPhrase",
        "userstatus": "396",
        "username": "sven",
        "fullname": "Sven Test",
        "timeout": 3600000,
        "filesupport": 3,
        "general": [
            "Your passphrase is weak and should be changed"
        ],
        "handler": "AuthHandler",
        "status": "SUCCESS",
        "token": "rotated_storedsafe_token",
        "version": "2.1.0"
    },
    "DATA": {
        "apikey": "abcde12345",
        "username": "foo@example.com",
        "keys": "ThisIsAPrettyLousyPassPhraseMy-API-KeyOhMyCouldThisReallyBeAnOTP"
    },
    "HEADERS": {
        "Accept": "*/*",
        "Content-Length": "107",
        "Content-Type": "application/x-www-form-urlencoded",
        "Host": "safe.domain.cc",
        "User-Agent": "curl/7.64.1"
    },
    "PARAMS": []
}
Example using TOTP
Login to StoredSafe and obtain a token used for latter communication.
Request
POST /api/1.0/auth
{
  "username":"foo@example.com",
  "passphrase":"ThisIsAPrettyLousyPassPhrase",
  "otp":"123456",
  "apikey":"My-API-Key",
  "logintype":"totp"
}
Response
HTTP/2 200
Content-Type: application/json
{
    "CALLINFO": {
        "audit": {
            "violations": [],
            "warnings": []
        },
        "errorcodes": 0,
        "errors": 0,
        "token": "your_storedsafe_token",
        "fingerprint": "<PGP fingerprint>",
        "userid": "42",
        "password": "ThisIsAPrettyLousyPassPhrase",
        "userstatus": "396",
        "username": "sven",
        "fullname": "Sven Test",
        "timeout": 3600000,
        "filesupport": 3,
        "general": [
            "Your passphrase is weak and should be changed"
        ],
        "handler": "AuthHandler",
        "status": "SUCCESS",
        "version": "2.1.0"
    },
    "DATA": {
        "username": "foo@example.com",
        "passphrase":"ThisIsAPrettyLousyPassPhrase",
        "otp":"123456",
        "apikey":"My-API-Key",
        "logintype":"totp"
    },
    "HEADERS": {
        "Accept": "*/*",
        "Content-Length": "107",
        "Content-Type": "application/x-www-form-urlencoded",
        "Host": "safe.domain.cc",
        "User-Agent": "curl/7.64.1"
    },
    "PARAMS": []
}