ACL, Authentication and Single Sign-On

I am trying to figure out the best way to set up the model for what
could be a moderately complicated authentication / ACL issue. I am
trying to set up a kind of “single sign-on” within my own web
application, where the end user could be assigned one or more roles
through one or more customers. I’m also trying to figure out which of
the authentication packages might work best for this setup.

A Customer represents a corporate entity that would pay to use a
website. Each person represents an individual and has their own
sign-on, and has one or more roles, either with a single customer or
with multiple customers.

Tables:

PEOPLE
id
last_name
first_name
e_mail

has_many people_roles

CUSTOMERS
id
customer_name

ROLES
id
role_name

PEOPLE_ROLES
person_id
customer_id
role_id

For example:

Johnny has Security Clearance Level 1 for Customer A
Jane has Level 2 and Level 3 for Customer B, and has Level 1 for
Customer A

Thanks in advance–

-Jeff Wigal