This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
user_guide:chilli:coova_json [2021/02/04 08:26] – [logon] admin | user_guide:chilli:coova_json [2021/02/04 09:07] (current) – [logoff] admin | ||
---|---|---|---|
Line 104: | Line 104: | ||
* Each time we do a call to the **status** end point we get a new challenge in the reply. | * Each time we do a call to the **status** end point we get a new challenge in the reply. | ||
* CoovaChilli remembers the last challenge it generated for a client (when they are not logged in) and uses that during the login process. | * CoovaChilli remembers the last challenge it generated for a client (when they are not logged in) and uses that during the login process. | ||
- | * This is why its good practice to do a **status**call as step one of the login process to get a fresh challenge from CoovaChilli. (There is an expiry on the challenge which is why we go this route to ensure we have a current value that hane not expired) | + | * This is why its good practice to do a **status** call as step one of the login process to get a fresh challenge from CoovaChilli. (There is an expiry on the challenge which is why we go this route to ensure we have a current value that has not expired |
* The call to the status end point was already covered earlier in the document. From it you can see there is a **challenge** item. | * The call to the status end point was already covered earlier in the document. From it you can see there is a **challenge** item. | ||
+ | === Encrypt the Challenge and Password === | ||
+ | * RADIUSdesk includes a UAM service that takes the challenge, the user's password along with a common uam secret to generate a encrypred value that it uses on the logon end point to authenticate the user. | ||
+ | * Here is a sample call that you can use as reference | ||
+ | * http:// | ||
+ | * And here is the result | ||
+ | <code javascript> | ||
+ | jQuery331012987580313312852_1612418453858( | ||
+ | { | ||
+ | ' | ||
+ | } | ||
+ | ) | ||
+ | </ | ||
+ | <WRAP center round tip 90%> | ||
+ | * You will replace **hotspot.radiusdesk.com** with the FQDN or IP Address of your own server | ||
+ | </ | ||
+ | |||
+ | === Call the logon JSON endpoint === | ||
+ | * We can now use the response as the value of **password** when we do the logon JSON call | ||
+ | * http:// | ||
+ | * Alternative format | ||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * And here's the response of a successful logon | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== logoff ==== | ||
+ | * The last JSON end point is **logoff** | ||
+ | * Here is the call and the results | ||
+ | * http:// | ||
+ | * Alternative | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * Repsonse | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | * As you can see the reply is pretty much the same than logon but the **clientstate** is now **0** meaning it logged off fine. | ||
- | ==== llogoff ==== | ||