AdaHeads / call-flow-control

Call-information flow server.
Other
6 stars 8 forks source link

OpenID login #44

Closed rostgaard closed 11 years ago

rostgaard commented 11 years ago

Integrate OpenID in Alice

sparre commented 11 years ago

Log-in procedure

1) Get a list of the users on the system:

-> GET /users/list
<- list of user names

2) Get a prioritised list of the selected user's OpenIDs:

-> GET /users/openids?user=\<name\>
<- list of OpenID URLs

3+) Log in (successful):

-> GET /users/log_in?openid=\<openid url\>
<- redirection to OpenID provider
<- redirection back to Alice
-> GET /users/validate?...
<- redirection
-> GET /users/logged_in
<- redirection to the designated client URL for that user

3+) Log in (already logged in):

-> GET /users/log_in?openid=\<openid url\>
<- redirection to the designated client URL for that user

3-) Log in (failed):

-> GET /users/log_in?openid=\<openid url\>
...
<- redirection to the designated client URL for that user
sparre commented 11 years ago

Handlers to be checked for authentication settings (from "alice_handlers.adb"):

with CORS_Preflight;             --  Public => True
with Handlers.Contact;           --  Allowed => Receptionist & Service_Agent
with Handlers.Agent;             --  Allowed => Receptionist
with Handlers.Call;              --  Allowed => Receptionist
with Handlers.Configuration;     --  Allowed => Receptionist
with Handlers.Debug;             --  Allowed => logged in
with Handlers.Log;               --  Allowed => logged in
with Handlers.Notifications;     --  Allowed => logged in
with Handlers.Organization;      --  Allowed => Receptionist & Service_Agent
with Handlers.Organization_List; --  Allowed => Receptionist & Service_Agent
with Handlers.Users.List;        --  Public => Public_User_Information, Allowed => Administrator
with Handlers.Users.Log_In;      --  Public => True
with Handlers.Users.Log_Out;     --  Public => True
with Handlers.Users.Logged_In;   --  Public => True
with Handlers.Users.Logged_Out;  --  Public => True
with Handlers.Users.OpenIDs;     --  Public => Public_User_Information, Allowed => Administrator
with Handlers.Users.Validate;    --  Public => True
with Not_Found;                  --  Public => True