2017-01-29 00:33:48 +00:00
define ( { "api" : [
{
2017-05-25 13:09:29 +00:00
"type" : "get" ,
"url" : "/" ,
"title" : "First factor page" ,
"name" : "Login" ,
2017-01-29 00:33:48 +00:00
"group" : "Authentication" ,
"version" : "1.0.0" ,
"success" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 200" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 200" ,
"type" : "String" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "Content" ,
"description" : "<p>The content of the first factor page.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Serves the login page and create a create a cookie for the client.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "Authentication"
} ,
{
"type" : "get" ,
"url" : "/logout" ,
"title" : "Serves logout page" ,
"name" : "Logout" ,
"group" : "Authentication" ,
"version" : "1.0.0" ,
"parameter" : {
2017-01-29 00:33:48 +00:00
"fields" : {
2017-05-25 13:09:29 +00:00
"Parameter" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Parameter" ,
2017-01-29 00:33:48 +00:00
"type" : "String" ,
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "redirect" ,
"description" : "<p>Redirect to this URL when user is deauthenticated.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"success" : {
2017-01-29 00:33:48 +00:00
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 302" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 302" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "redirect" ,
"description" : "<p>Redirect to the URL.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
2017-05-25 13:09:29 +00:00
} ,
"description" : "<p>Log out the user and redirect to the URL.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "Authentication"
2017-01-29 00:33:48 +00:00
} ,
{
"type" : "get" ,
2017-05-25 13:09:29 +00:00
"url" : "/secondfactor" ,
"title" : "Second factor page" ,
"name" : "SecondFactor" ,
2017-01-29 00:33:48 +00:00
"group" : "Authentication" ,
"version" : "1.0.0" ,
"success" : {
"fields" : {
"Success 200" : [
{
"group" : "Success 200" ,
"type" : "String" ,
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "Content" ,
"description" : "<p>The content of second factor page.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Serves the second factor page</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "Authentication"
2017-01-29 00:33:48 +00:00
} ,
{
"type" : "post" ,
2017-05-25 13:09:29 +00:00
"url" : "/1stfactor" ,
"title" : "Bind user against LDAP" ,
2017-01-29 00:33:48 +00:00
"name" : "ValidateFirstFactor" ,
"group" : "Authentication" ,
"version" : "1.0.0" ,
"parameter" : {
"fields" : {
"Parameter" : [
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
"field" : "username" ,
"description" : "<p>User username.</p>"
} ,
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
"field" : "password" ,
"description" : "<p>User password.</p>"
}
]
}
} ,
"success" : {
"fields" : {
"Success 204" : [
{
"group" : "Success 204" ,
"optional" : false ,
"field" : "status" ,
"description" : "<p>1st factor is validated.</p>"
}
]
}
} ,
"error" : {
"fields" : {
"Error 401" : [
{
"group" : "Error 401" ,
"type" : "none" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>1st factor is not validated.</p>"
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
} ,
"description" : "<p>Verify credentials against the LDAP.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-01-29 00:33:48 +00:00
"groupTitle" : "Authentication" ,
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
}
} ,
{
"type" : "post" ,
2017-05-25 13:09:29 +00:00
"url" : "/reset-password/request" ,
"title" : "Finish password reset request" ,
"name" : "FinishPasswordResetRequest" ,
"group" : "PasswordReset" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Start password reset request.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "PasswordReset" ,
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
}
]
}
} ,
2017-01-29 00:33:48 +00:00
"parameter" : {
"fields" : {
"Parameter" : [
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "identity_token" ,
"description" : "<p>The one-time identity validation token provided in the email.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"success" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 200" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 200" ,
"type" : "String" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "content" ,
"description" : "<p>The content of the page.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Error 403" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Error 403" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "AccessDenied" ,
"description" : "<p>Access is denied.</p>"
2017-01-29 00:33:48 +00:00
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
2017-05-25 13:09:29 +00:00
}
} ,
{
"type" : "get" ,
"url" : "/password-reset/request" ,
"title" : "Request username" ,
"name" : "ServePasswordResetPage" ,
"group" : "PasswordReset" ,
"version" : "1.0.0" ,
"description" : "<p>Serve a page that requires the username.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "PasswordReset" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
}
} ,
{
2017-05-25 13:09:29 +00:00
"type" : "post" ,
"url" : "/api/password-reset" ,
"title" : "Set new password" ,
"name" : "SetNewLDAPPassword" ,
"group" : "PasswordReset" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
"parameter" : {
"fields" : {
"Parameter" : [
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "password" ,
"description" : "<p>New password</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Set a new password for the user.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "PasswordReset" ,
"header" : {
2017-01-29 00:33:48 +00:00
"fields" : {
2017-05-25 13:09:29 +00:00
"Header" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Header" ,
2017-01-29 00:33:48 +00:00
"type" : "String" ,
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "Cookie" ,
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
2017-05-25 13:09:29 +00:00
}
2017-01-29 00:33:48 +00:00
} ,
{
"type" : "get" ,
2017-05-25 13:09:29 +00:00
"url" : "/password-reset/identity/start" ,
"title" : "Start password reset request" ,
"name" : "StartPasswordResetRequest" ,
"group" : "PasswordReset" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Start password reset request.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "PasswordReset" ,
"header" : {
2017-01-29 00:33:48 +00:00
"fields" : {
2017-05-25 13:09:29 +00:00
"Header" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Header" ,
2017-01-29 00:33:48 +00:00
"type" : "String" ,
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "Cookie" ,
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"success" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 204" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 204" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "status" ,
"description" : "<p>Identity validation has been initiated.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"error" : {
"fields" : {
"Error 403" : [
{
"group" : "Error 403" ,
"optional" : false ,
"field" : "AccessDenied" ,
"description" : "<p>Access is denied.</p>"
}
] ,
"Error 400" : [
{
"group" : "Error 400" ,
"optional" : false ,
"field" : "InvalidIdentity" ,
"description" : "<p>User identity is invalid.</p>"
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
}
2017-01-29 00:33:48 +00:00
} ,
{
"type" : "get" ,
2017-05-25 13:09:29 +00:00
"url" : "/secondfactor/totp/identity/finish" ,
"title" : "Finish TOTP registration identity validation" ,
"name" : "FinishTOTPRegistration" ,
"group" : "TOTP" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Serves the TOTP registration page that displays the secret. The secret is a QRCode and a base32 secret.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "TOTP" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"parameter" : {
"fields" : {
"Parameter" : [
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
"field" : "identity_token" ,
"description" : "<p>The one-time identity validation token provided in the email.</p>"
}
]
}
} ,
"success" : {
"fields" : {
2017-01-29 00:45:12 +00:00
"Success 200" : [
2017-01-29 00:33:48 +00:00
{
2017-01-29 00:45:12 +00:00
"group" : "Success 200" ,
"type" : "String" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-01-29 00:45:12 +00:00
"field" : "content" ,
"description" : "<p>The content of the page.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
"Error 403" : [
{
"group" : "Error 403" ,
"optional" : false ,
"field" : "AccessDenied" ,
"description" : "<p>Access is denied.</p>"
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
}
} ,
{
"type" : "get" ,
2017-05-25 13:09:29 +00:00
"url" : "/secondfactor/totp/identity/start" ,
"title" : "Start TOTP registration identity validation" ,
"name" : "StartTOTPRegistration" ,
"group" : "TOTP" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Initiates the identity validation</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "TOTP" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"success" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 204" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 204" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "status" ,
"description" : "<p>Identity validation has been initiated.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
"Error 403" : [
{
"group" : "Error 403" ,
"optional" : false ,
"field" : "AccessDenied" ,
"description" : "<p>Access is denied.</p>"
}
] ,
2017-05-25 13:09:29 +00:00
"Error 400" : [
{
"group" : "Error 400" ,
"optional" : false ,
"field" : "InvalidIdentity" ,
"description" : "<p>User identity is invalid.</p>"
}
] ,
2017-01-29 00:33:48 +00:00
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
}
} ,
{
"type" : "post" ,
2017-05-25 13:09:29 +00:00
"url" : "/api/totp" ,
"title" : "Complete TOTP authentication" ,
"name" : "ValidateTOTPSecondFactor" ,
"group" : "TOTP" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-05-25 13:09:29 +00:00
"parameter" : {
"fields" : {
"Parameter" : [
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
"field" : "token" ,
"description" : "<p>TOTP token.</p>"
}
]
}
} ,
2017-01-29 00:33:48 +00:00
"success" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 302" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 302" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "Redirect" ,
2017-12-04 21:39:55 +00:00
"description" : "<p>to the URL that has been stored during last call to /api/verify.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Error 401" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Error 401" ,
2017-01-29 00:33:48 +00:00
"type" : "none" ,
"optional" : false ,
"field" : "error" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>TOTP token is invalid.</p>"
2017-01-29 00:33:48 +00:00
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Verify TOTP token. The user is authenticated upon success.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "TOTP" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
}
} ,
{
"type" : "post" ,
2017-05-25 13:09:29 +00:00
"url" : "/api/u2f/sign" ,
"title" : "Complete U2F authentication" ,
"name" : "CompleteU2FAuthentication" ,
"group" : "U2F" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
"success" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 302" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 302" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "Redirect" ,
2017-12-04 21:39:55 +00:00
"description" : "<p>to the URL that has been stored during last call to /api/verify.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
"Error 403" : [
{
"group" : "Error 403" ,
2017-05-25 13:09:29 +00:00
"type" : "none" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
"field" : "error" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>No authentication request has been provided.</p>"
2017-01-29 00:33:48 +00:00
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Internal error message.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Complete authentication request of the U2F device.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "U2F" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
}
} ,
{
"type" : "post" ,
2017-05-25 13:09:29 +00:00
"url" : "/api/secondfactor/u2f/register" ,
"title" : "Complete U2F registration" ,
"name" : "FinishU2FRegistration" ,
"group" : "U2F" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
"success" : {
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 302" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 302" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "Redirect" ,
2017-12-04 21:39:55 +00:00
"description" : "<p>to the URL that has been stored during last call to /api/verify.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Complete U2F registration request.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "U2F" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
2017-05-25 13:09:29 +00:00
}
2017-01-29 00:33:48 +00:00
} ,
{
2017-05-25 13:09:29 +00:00
"type" : "get" ,
"url" : "/secondfactor/u2f/identity/start" ,
"title" : "Start U2F registration identity validation" ,
2017-01-29 00:33:48 +00:00
"name" : "RequestU2FRegistration" ,
2017-05-25 13:09:29 +00:00
"group" : "U2F" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "U2F" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"success" : {
"fields" : {
2017-01-29 00:45:12 +00:00
"Success 204" : [
2017-01-29 00:33:48 +00:00
{
2017-01-29 00:45:12 +00:00
"group" : "Success 204" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-01-29 00:45:12 +00:00
"field" : "status" ,
"description" : "<p>Identity validation has been initiated.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
"Error 403" : [
{
"group" : "Error 403" ,
"optional" : false ,
"field" : "AccessDenied" ,
"description" : "<p>Access is denied.</p>"
}
] ,
2017-01-29 00:45:12 +00:00
"Error 400" : [
{
"group" : "Error 400" ,
"optional" : false ,
"field" : "InvalidIdentity" ,
"description" : "<p>User identity is invalid.</p>"
}
] ,
2017-01-29 00:33:48 +00:00
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
} ,
"description" : "<p>This request issue an identity validation token for the user bound to the session. It sends a challenge to the email address set in the user LDAP entry. The user must visit the sent URL to complete the validation and continue the registration process.</p>"
} ,
{
"type" : "get" ,
2017-05-25 13:09:29 +00:00
"url" : "/secondfactor/u2f/identity/finish" ,
"title" : "Finish U2F registration identity validation" ,
"name" : "ServeU2FRegistrationPage" ,
"group" : "U2F" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Serves the U2F registration page that asks the user to touch the token of the U2F device.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "U2F" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"parameter" : {
"fields" : {
"Parameter" : [
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
"field" : "identity_token" ,
"description" : "<p>The one-time identity validation token provided in the email.</p>"
}
]
}
} ,
"success" : {
"fields" : {
2017-01-29 00:45:12 +00:00
"Success 200" : [
2017-01-29 00:33:48 +00:00
{
2017-01-29 00:45:12 +00:00
"group" : "Success 200" ,
"type" : "String" ,
2017-01-29 00:33:48 +00:00
"optional" : false ,
2017-01-29 00:45:12 +00:00
"field" : "content" ,
"description" : "<p>The content of the page.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
"error" : {
"fields" : {
"Error 403" : [
{
"group" : "Error 403" ,
"optional" : false ,
"field" : "AccessDenied" ,
"description" : "<p>Access is denied.</p>"
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
}
} ,
{
2017-05-25 13:09:29 +00:00
"type" : "get" ,
"url" : "/api/u2f/sign_request" ,
"title" : "Start U2F authentication" ,
"name" : "StartU2FAuthentication" ,
"group" : "U2F" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
2017-05-25 13:09:29 +00:00
"success" : {
2017-01-29 00:33:48 +00:00
"fields" : {
2017-05-25 13:09:29 +00:00
"Success 200" : [
2017-01-29 00:33:48 +00:00
{
2017-05-25 13:09:29 +00:00
"group" : "Success 200" ,
"optional" : false ,
"field" : "authentication_request" ,
"description" : "<p>The U2F authentication request.</p>"
}
]
}
} ,
"error" : {
"fields" : {
"Error 401" : [
{
"group" : "Error 401" ,
"type" : "none" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>There is no key registered for user in session.</p>"
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
2017-01-29 00:33:48 +00:00
"type" : "String" ,
"optional" : false ,
2017-05-25 13:09:29 +00:00
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Initiate an authentication request using a U2F device.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "U2F" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
}
} ,
{
"type" : "get" ,
2017-05-25 13:09:29 +00:00
"url" : "/api/u2f/register_request" ,
"title" : "Start U2F registration" ,
2017-01-29 00:33:48 +00:00
"name" : "StartU2FRegistration" ,
2017-05-25 13:09:29 +00:00
"group" : "U2F" ,
2017-01-29 00:33:48 +00:00
"version" : "1.0.0" ,
"success" : {
"fields" : {
"Success 200" : [
{
"group" : "Success 200" ,
"optional" : false ,
"field" : "authentication_request" ,
"description" : "<p>The U2F registration request.</p>"
}
]
}
} ,
"error" : {
"fields" : {
"Error 403" : [
{
"group" : "Error 403" ,
"type" : "none" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Unexpected identity validation challenge.</p>"
}
] ,
"Error 500" : [
{
"group" : "Error 500" ,
"type" : "String" ,
"optional" : false ,
"field" : "error" ,
"description" : "<p>Internal error message.</p>"
}
]
}
} ,
"description" : "<p>Initiate a U2F device registration request.</p>" ,
2017-12-04 21:39:55 +00:00
"filename" : "shared/api.ts" ,
2017-05-25 13:09:29 +00:00
"groupTitle" : "U2F" ,
2017-01-29 00:33:48 +00:00
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
}
} ,
{
"type" : "get" ,
2017-12-04 21:39:55 +00:00
"url" : "/api/verify" ,
2017-01-29 00:33:48 +00:00
"title" : "Verify user authentication" ,
"name" : "VerifyAuthentication" ,
"group" : "Verification" ,
"version" : "1.0.0" ,
2017-12-04 21:39:55 +00:00
"parameter" : {
"fields" : {
"Parameter" : [
{
"group" : "Parameter" ,
"type" : "String" ,
"optional" : false ,
"field" : "redirect" ,
"description" : "<p>Optional parameter set to the url where the user is redirected if access is refused. It is mainly used by Traefik that does not control the redirection itself.</p>"
}
]
}
} ,
2017-01-29 00:33:48 +00:00
"success" : {
"fields" : {
"Success 204" : [
{
"group" : "Success 204" ,
"optional" : false ,
"field" : "status" ,
"description" : "<p>The user is authenticated.</p>"
}
]
}
} ,
"error" : {
"fields" : {
2017-12-04 21:39:55 +00:00
"Error 302" : [
{
"group" : "Error 302" ,
"optional" : false ,
"field" : "redirect" ,
"description" : "<p>The user is redirected if redirect parameter is provided.</p>"
}
] ,
2017-01-29 00:33:48 +00:00
"Error 401" : [
{
"group" : "Error 401" ,
"optional" : false ,
"field" : "status" ,
2017-12-04 21:39:55 +00:00
"description" : "<p>The user get an error if access failed</p>"
2017-01-29 00:33:48 +00:00
}
]
}
} ,
2017-12-04 21:39:55 +00:00
"description" : "<p>Verify that the user is authenticated, i.e., the two factors have been validated. If the user is authenticated the response headers Remote-User and Remote-Groups are set. Remote-User contains the user id of the currently logged in user and Remote-Groups a comma separated list of assigned groups.</p>" ,
"filename" : "shared/api.ts" ,
2017-01-29 00:33:48 +00:00
"groupTitle" : "Verification" ,
"header" : {
"fields" : {
"Header" : [
{
"group" : "Header" ,
"type" : "String" ,
"optional" : false ,
"field" : "Cookie" ,
2017-05-25 13:09:29 +00:00
"description" : "<p>Cookie containing "connect.sid", the user session token.</p>"
2017-01-29 00:33:48 +00:00
}
]
}
}
}
] } ) ;