Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Over

...

the

...

last

...

6

...

years

...

Penn

...

has

...

built

...

and

...

maintained

...

our

...

Framework

...

for

...

Administrative

...

Systems

...

and

...

Technologies

...

(FAST).

...

  One

...

of

...

the

...

components

...

is

...

group

...

management,

...

and

...

one

...

of

...

the

...

components

...

is

...

privilege

...

management.

...

  These

...

components

...

are

...

local

...

for

...

each

...

application,

...

not

...

central.

...

  We

...

do

...

have

...

60

...

+

...

custom

...

administrative

...

applications

...

using

...

FAST

...

and

...

this

...

security

...

system.

...

  To

...

integrate

...

FAST

...

and

...

Grouper,

...

we

...

define

...

the

...

group

...

locally

...

in

...

FAST,

...

and

...

define

...

it

...

in

...

grouper,

...

and

...

when

...

a

...

user

...

logs

...

in,

...

we

...

can

...

ask

...

grouper

...

if

...

the

...

user

...

is

...

in

...

any

...

of

...

the

...

app

...

specific

...

groups,

...

if

...

so,

...

dynamically

...

assign

...

the

...

user

...

to

...

the

...

FAST

...

group(s).

...

  Perhaps

...

a

...

similar

...

setup

...

would

...

work

...

to

...

integrate

...

FAST

...

with

...

Internet2

...

central

...

privilege

...

management.

...

  So

...

this

...

framework

...

is

...

not

...

mutually

...

exclusive

...

with

...

Internet2.

...

Im

...

not

...

saying

...

Internet2

...

should

...

adopt

...

the

...

this

...

piece

...

of

...

the

...

FAST

...

framework

...

(many

...

reasons,

...

e.g.

...

it

...

is

...

oracle

...

specific

...

),

...

but

...

parts

...

of

...

it

...

are

...

interesting.

...

  Anyways,

...

this

...

is

...

how

...

it

...

works:

...


The

...

groups

...

are

...

hierarchical,

...

and

...

the

...

privilege

...

resources

...

can

...

be

...

bundled

...

in

...

hierarchical

...

groups.

...

...

This

...

screenshot

...

is

...

an

...

example

...

of

...

the

...

group

...

hierarchy.

...

  It

...

is

...

not

...

hierarchical

...

on

...

a

...

membership

...

basis,

...

but

...

rather,

...

for

...

permissions.

...

  So

...

in

...

this

...

case,

...

a

...

senior

...

loan

...

officer

...

would

...

inherit

...

permissions

...

from

...

the

...

loan

...

office

...

role,

...

which

...

inherits

...

permissions

...

from

...

the

...

staff

...

role.

...

  But

...

if

...

you

...

asked

...

FAST

...

if

...

a

...

senior

...

loan

...

officer

...

user

...

is

...

a

...

member

...

of

...

the

...

"Staff"

...

group,

...

it

...

would

...

say

...

"no"

...

if

...

there

...

is

...

not

...

an

...

explicit

...

user/group

...

membership

...

assignment.

...

Image Added

...

This screenshot shows sets which are hierarchical bundles of privilege resources.  In this case "caHostFind.jsp"

...

is

...

a

...

resource

...

which

...

is

...

a

...

screen

...

in

...

the

...

system,

...

and

...

it

...

is

...

in

...

the

...

"ca"

...

set,

...

which

...

is

...

in

...

the

...

"officeJSP"

...

set.

...

Image Added

...

Wiki Markup
This screenshot shows the view/assignment screen where you can assign privileges to a group, or to a user in a group. !authAssignment.gif!
In this case, some entries are red and green (if allowed or forbidden).  Most resources inherit permissions from a parent set or a parent group.  There is an explicit assignment on this screenshot for the Loan Inquiry group to have access to mainPageLoanOfficer.jsp.
Since permissions can have three states (allow, forbid, unassigned \[inherit\]), then the decision making process to see if someone is allowed to do something is as follows:

...

1.

...

See

...

if

...

there

...

is

...

an

...

explicit

...

permission

...

for

...

the

...

user/group

...

combo

...

for

...

the

...

resource.

...


2.

...

If

...

so,

...

done,

...

if

...

not,

...

walk

...

up

...

the

...

hierarchy

...

of

...

parent

...

Set's

...

until

...

you

...

find

...

answer.

...


3.

...

If

...

not

...

found,

...

then

...

do

...

the

...

same

...

thing

...

for

...

the

...

group

...

in

...

general

...

(not

...

user/group),

...

then

...

the

...

parent

...

group,

...

etc.

...


4.

...

If

...

no

...

privileges

...

assigned,

...

default

...

is

...

forbid.

...

That

...

decision

...

making

...

logic

...

is

...

inside

...

the

...

framework

...

in

...

one

...

place

...

(though

...

copied

...

for

...

each

...

app

...

).

...

  It

...

is

...

complex

...

logic,

...

and

...

not

...

something

...

that

...

we

...

would

...

want

...

apps

...

to

...

have

...

to

...

reinvent.

...


There

...

is

...

an

...

API

...

to

...

ask

...

the

...

framework

...

if

...

the

...

current

...

user

...

has

...

access

...

to

...

a

...

resource:

...

Code Block

  if (Authorization.isAllowed(currentUser, FastPropertyType.CUSTOM_DATA, "org123")) {

...

      ... whatever ...

...

  }
There

...

are

...

two

...

"lists"

...

(grouper

...

term)

...

for

...

each

...

privilege

...

assignment,

...

for

...

access

...

to

...

the

...

privilege

...

resource,

...

or

...

to

...

be

...

able

...

to

...

admin

...

(assign

...

others)

...

to

...

the

...

privilege

...

resource.

...

  Anyone

...

who

...

has

...

access

...

to

...

the

...

admin

...

screen

...

(which

...

is

...

not

...

a

...

lot

...

of

...

people)

...

can

...

view

...

all

...

permissions

...

(but

...

perhaps

...

not

...

assign).

...

...

This screenshot shows the view of which groups or users have access to a specific resource.  The last image shows ability to attach an expire date to the privilege. Image Added

...

On the "resource report" screen, the framework will automatically parse all the JSPs to sync up the JSP/menu/buttons

...

available

...

for

...

assignment,

...

so

...

these

...

do

...

not

...

need

...

to

...

be

...

manually

...

entered.

...

This screen shows how expiration dates can be applied to assignments Image Added
It does include hooks, auditing, web services, import/export xml, etc...

...

  generally

...

we

...

have

...

used

...

this

...

authorization system for

...

access

...

to

...

webapp

...

resources

...

(buttons,

...

menus,

...

jsps,

...

etc),

...

though

...

we

...

also

...

use

...

it

...

for

...

custom

...

permissions

...

(e.g.

...

which

...

data

...

a

...

user

...

can

...

see).