Thursday, April 3, 2008

Permission Authetication

I was doing some development on my Dataface IERG project and I was trying to login into backend of the system. I noticed that the conf.ini file had this section:


auth_type = cas
url = "https://sson.ierg.net"
users_table = users
username_column = uid
password_column = ""


So the auth_type variable was something I've seen but never really understood. But I noticed that when I accessed the backend of the system it always led me to this url https://sson.ierg.net. I had no idea how to log in and stuff. I emailed Steve and he had this to say:

It needs the users table in order to work. You can just copy the users table from the ierg_net_-_main database into your hybrid one. That should do it.
Then you just log in with the same username and password you use for the timesheets app.


So I just did a quick copy of the table from the membership database to the hybrid database. One thing I noticed was that there was no password column which I thought was weird. So I tried to login using the username and password I've using all the time for my ierg development (ie. fcc, fcc*password), but to no avail nothing worked. I took a quick look at the conf.ini file and noticed that the password column is "". Confused...so I just made a new column password in the users table, and then added this column name to the variable in the conf.ini file.

Hoping things would work, I tried to login but still nothing. I then got frustrated and removed the CAS references and lo and behold everything worked. So I emailed Steve again mentioning the CAS stuff and he emailed back with this:

I'd prefer to keep it as CAS authentication because we'll have to set it back to that anyways when we move the site live again.

CAS just uses the same authentication I use for the timesheets app. I was able to log into your application fine until you turned off CAS.

The best steps from here:

1. Return the [_auth] section of the conf.ini file to the way it was with auth_type = cas
2. Remove the password column from the users table.
3. Try to log in using your timesheet application username and password (username fcc)

Troubleshooting

If you still cannot log in, please let me know. Also describe what happens when you try to log in.

Best regards

Steve


The one thing that stuck out to me was the timesheet application username and password. I suddenly realized that my username and password for the timesheet was different from the one that I used for the IERG development site. So I quickly undid all my changes and tried with the username and password from the timesheet and it worked! So in conclusion:


  1. I figure that the CAS authetication is some sort of system that stores the username and password in some separate place.

  2. To use the CAS service, you set in your conf.ini file:
    auth_type = cas
    url = "https://sson.ierg.net"
    users_table = users
    username_column = uid
    password_column = ""


  3. Create a user table with just a username and role if you want. I guess the username acts a foreign key to the CAS system which stores the username and password. This way we can keep this centralized location of users and if they need to access a particular dataface application they will have to first be listed in the users table of the application and then in the CAS system too.

No comments: