Rich-Client Integration
In a typical use case, users will use their browsers to access secured backend applications, and therefore the login forms will usually be rendered as HTML pages. However, there are other cases, in which clients want to simply receive the information about which data is required for the login. In this case, the clients are rendering the user interface themselves based on the information received by nevisLogRend.
The login form data for this use case is served in JSON format. The GUI descriptor provided by nevisAuth, which describes which form fields must be rendered, is translated to JSON and returned. To receive the login form data as JSON, a client must send the Accept header with application/json in the request. The default.vm will choose to render the json.vm when such a request is received.
curl --insecure -X GET https://nevisauth-test1.zh.adnovum.ch/nevis/test/login/?login -H "Accept:application/json"
{
"name" : "AuthUidPwDialog" ,
"target" : "https://nevisauth-test1.zh.adnovum.ch/nevis/test/login/?login" ,
"label" : "Test Authentication for System Setup Verification (Password = UserID)" ,
"domain" : "SSO_TEST" ,
"elements" : [
{
"name" : "lasterror",
"type" : "error",
"optional" : "false",
"label" : "" ,
"value" : "" ,
"max-length" : "255" ,
"format" : ""
},
{
"name" : "info",
"type" : "info",
"optional" : "false",
"label" : "Test authentication domain: Never use this in production!!!!!" ,
"value" : "" ,
"max-length" : "255" ,
"format" : ""
},
{
"name" : "isiwebuserid",
"type" : "text",
"optional" : "false",
"label" : "User-ID" ,
"value" : "" ,
"max-length" : "255" ,
"format" : ""
},
{
"name" : "isiwebpasswd",
"type" : "pw-text",
"optional" : "false",
"label" : "Password" ,
"value" : "" ,
"max-length" : "255" ,
"format" : ""
},
{
"name" : "submit",
"type" : "button",
"optional" : "false",
"label" : "Submit" ,
"value" : "Login" ,
"max-length" : "255" ,
"format" : ""
}
]}