{
  "iface": "futoin.auth.backend",
  "version": "0.1",
  "ftn3rev": "1.4",
  "funcs": {
    "getClientInfo": {
      "params": {
        "session": {
          "type": "string",
          "desc": "Session token from futoin.auth.consumer.complete.ssn"
        }
      },
      "result": {
        "info": {
          "type": "map",
          "desc": "Map of Private Info fields, allowed by Client to be sent"
        }
      },
      "throws": [
        "InvalidSessionID"
      ]
    },
    "validate": {
      "params": {
        "session": {
          "type": "string",
          "desc": "Session token from futoin.auth.consumer.complete.essn"
        }
      },
      "result": {
        "constraints": {
          "type": "array",
          "desc": "Array of object sets of constraints"
        }
      },
      "throws": [
        "InvalidSessionID"
      ]
    },
    "validateBySecret": {
      "params": {
        "client_id": {
          "type": "string",
          "desc": "Unique Client ID"
        },
        "secret": {
          "type": "string",
          "desc": "Client secret"
        }
      },
      "result": {
        "constraints": {
          "type": "array",
          "desc": "Array of object sets of constraints"
        }
      },
      "throws": [
        "InvalidClientID",
        "InvalidSecret",
        "Blocked"
      ],
      "desc": "Authorize by ID/secret pair"
    }
  },
  "requires": [
    "SecureChannel"
  ],
  "desc": "AuthService Backend Provider interface"
}