Download presentation
Presentation is loading. Please wait.
Published byGriffin Lynch Modified over 7 years ago
1
<Web-Based Access Control for=”ITS Web Services Present and Future” version=”2008” />
Jeffrey C. D’Angelo, Programmer/Analyst, Enabling Technologies Group James A. Vuccolo, Manager, Software Solutions Group Applied Information Technologies (AIT) in Consulting and Support Services (CSS), a unit of Information Technology Services (ITS)
2
<Web-Based Access Control for=”ITS Web Services (Past) Present and Future” version=”2008” />
Jeffrey C. D’Angelo, Programmer/Analyst, Enabling Technologies Group James A. Vuccolo, Manager, Software Solutions Group Applied Information Technologies (AIT) in Consulting and Support Services (CSS), a unit of Information Technology Services (ITS)
3
Agenda Concepts Level set: Core Infrastructure
Past: Evolution of Access Control Tools Present: Access Control Practical Techniques Changes: PASS Migration, Directory Updates Future Directions
4
What does “Access Control” mean to you?
What do you think? What does “Access Control” mean to you?
5
The Access Control Continuum
Data that wants to be FREE
6
The Access Control Continuum
Data that wants to be FREE Data that wants to be private
7
The Access Control Continuum
Data that wants to be FREE Data in the middle! Data that wants to be private
8
Access Control Concepts
Identification and Authentication (AuthN) Authorization (AuthZ) Roles and Groups
9
Access Control Methods
File Permissions When applied to the Web: all or nothing? Special cases: file permissions = Web permissions PASS Explorer Database restrictions (SQL GRANT) Web server control (.htaccess) Roles and Groups
10
ITS Web hosting in PASS www.personal.psu.edu
protected.personal.psu.edu blogs.psu.edu (COLA)
11
PASS / Web Core Infrastructure
12
What are our 3 Core Technologies?
Penn State Access Account Storage Space (PASS) serves as 1 of 3 key components of Penn State's IT infrastructure: STORAGE: PASS provides universally-accessible disk space/file storage for use by anyone in the University community. AUTHENTICATION: PASS works with Penn State’s central authentication system to prove who you are and leverage your digital identity. Enterprise Directory Services: PASS works with the Enterprise Directory Service for authorization to grant access to files and services once you prove your identity.
13
What is changing with our 3 Core Technologies?
STORAGE: The Distributed File System (DFS) technology behind PASS is being replaced with the General Parallel File System (GPFS). AUTHENTICATION: The Distributed Computing Environment (DCE) authentication service used by DFS (today's PASS) is being replaced by the MIT brand of Kerberos already in use today. Enterprise Directory Services: The security group information stored in DCE for use by DFS is being transferred to the Lightweight Directory Access Protocol (LDAP) based Enterprise Directory Service. DCE/DFS => Kerberos/LDAP/GPFS
14
PASS / Web Core Infrastructure
15
Our Core Infrastructure: Authorization
16
Our Core Infrastructure PASS Storage Systems
17
Core Infrastructure: 3 Parts
19
Data that wants to be private -->
20
Data that wants to be private -->
Data that wants to be FREE -->
21
Data that wants to be private -->
Data that wants to be FREE --> Data in the middle! -->
22
Evolution of Access Control Tools
chmod
23
Evolution of Access Control Tools
chmod instruction from WordPress
24
Evolution of Access Control Tools
.htaccess
25
Evolution of Access Control Tools
.htaccess AuthUserFile /.../dce.psu.edu/fs/users/m/c/mcr/www/party/.htpasswd AuthGroupFile /.../dce.psu.edu/fs/users/m/c/mcr/www/party/.htgroup AuthName "private directory" AuthType Basic Require group allowed
26
Evolution of Access Control Tools
.htpasswd Peggy:ScPZpSSk3v.YQ Danette:ScPZpSSk3v.YQ Bill:ScPZpSSk3v.YQ
27
Evolution of Access Control Tools
.htgroup allowed: Peggy Danette Bill
28
Evolution of Access Control Tools
AFS ACL Explorer
29
Evolution of Access Control Tools
30
Evolution of Access Control Tools
AFS: Command line tools
31
Evolution of Access Control Tools
$ /usr/afsws/bin/fs la /afs/psu.edu/users/j/c/jcd/www Access list for /afs/psu.edu/users/j/c/jcd/www is Normal rights: jcd rlidwka group. rlidwk group. rlidwka system:administrators rlidwka system:authuser rlk system:anyuser l
32
Evolution of Access Control Tools
Restrict Access to COLA
33
Evolution of Access Control Tools
Restrict Access to COLA -> “Restrict Access to COLA”
34
Evolution of Access Control Tools
-> “Restrict Access to COLA”
35
Evolution of Access Control Tools
DFS ACL Explorer
36
Evolution of Access Control Tools
-> “Manage PASS File Permissions (ACL Explorer)”
37
Evolution of Access Control Tools
DFS ACL Explorer -> “Manage PASS File Permissions (ACL Explorer)”
38
Evolution of Access Control Tools
Command line tools: dcecp, acl_edit, dcerchacl
39
Evolution of Access Control Tools
: cbs3[jcd/jcd_admin/pts/5/3] ~/www; dcecp -c acl show /:/users/j/c/jcd/www {mask_obj rwxcid} {user_obj rwxcid} {user jcd144 rwxcid} {user cell_admin rwxcid} {user kellogg r-x---} {user jcd rwxcid} {user portfol --x---} {group_obj r-x---} {group sysadmins rwxcid} {other_obj } {any_other }
40
Evolution of Access Control Tools
: cbs3[jcd/jcd_admin/pts/5/3] ~/www; acl_edit /:/users/j/c/jcd/www -l # SEC_ACL for .: # Default cell = /.../dce.psu.edu mask_obj:rwxcid user_obj:rwxcid user:jcd144:rwxcid user:cell_admin:rwxcid user:kellogg:r-x--- user:jcd:rwxcid user:portfol:--x--- group_obj:r-x--- group:sysadmins:rwxcid other_obj:------ any_other:------
41
Evolution of Access Control Tools
DFS ACL Reset
42
Evolution of Access Control Tools
-> “Reset PASS Permissions to default (ACL Reset)”
43
Evolution of Access Control Tools
User Managed Groups
44
Evolution of Access Control Tools
45
Evolution of Access Control Tools
46
Evolution of Access Control Tools
PASS Shares
47
Evolution of Access Control Tools
48
Evolution of Access Control Tools
49
Evolution of Access Control Tools
52
Evolution of Access Control Tools
Protected Personal - Access Control Manager
53
Evolution of Access Control Tools
54
Evolution of Access Control Tools
55
Evolution of Access Control Tools
56
(an aside) Friends of Penn State
57
Evolution of Access Control Tools
58
Evolution of Access Control Tools
59
Evolution of Access Control Tools
60
Evolution of Access Control Tools
61
Evolution of Access Control Tools
62
Evolution of Access Control Tools
63
Evolution of Access Control Tools
64
Evolution of Access Control Tools
65
Evolution of Access Control Tools
66
Evolution of Access Control Tools
67
Evolution of Access Control Tools
68
Evolution of Access Control Tools
69
Evolution of Access Control Tools
: cbs3[jcd/jcd_admin/pts/5/3] ~; cat www_protected/Photos/.htaccess require user jcd jvuccolo hjd109 hjd5009 jyd5022 require group cn=umg/clubs.ait.ninja : cbs3[jcd/jcd_admin/pts/5/3] ~; cat www_protected/Photos/.fps_user hjd109 hjd5009 jyd5022
70
Evolution of Access Control Tools
GPFS:
71
Evolution of Access Control Tools
GPFS: ACL Explorer / ACL Reset
72
Evolution of Access Control Tools
73
Evolution of Access Control Tools
GPFS: ACL Explorer / ACL Reset
74
Evolution of Access Control Tools
GPFS:
75
Evolution of Access Control Tools
GPFS: PASS Explorer
76
Evolution of Access Control Tools
GPFS: PASS Explorer Web-based Permissions Tool
77
Evolution of Access Control Tools
GPFS: PASS Explorer Web-based Permissions Tool Wizard based design (like the ACM)
78
Evolution of Access Control Tools
79
Evolution of Access Control Tools
80
Evolution of Access Control Tools
81
Evolution of Access Control Tools
82
Evolution of Access Control Tools
84
Evolution of Access Control Tools
85
Evolution of Access Control Tools
86
Evolution of Access Control Tools
87
Evolution of Access Control Tools
88
Evolution of Access Control Tools
89
Evolution of Access Control Tools
92
Evolution of Access Control Tools
93
Evolution of Access Control Tools
94
Evolution of Access Control Tools
95
Evolution of Access Control Tools
96
Evolution of Access Control Tools
-> “Manage PASS File Permissions (ACL Explorer)”
97
Evolution of Access Control Tools
-> “Manage PASS File Permissions (ACL Explorer)”
98
Evolution of Access Control Tools
-> “Manage PASS File Permissions (ACL Explorer)”
99
Evolution of Access Control Tools
-> “Manage PASS File Permissions (ACL Explorer)”
100
Evolution of Access Control Tools
-> “Manage PASS File Permissions (ACL Explorer)”
101
Evolution of Access Control Tools
PASS Explorer:
102
Evolution of Access Control Tools
PASS Explorer: Tool for PASS (file storage)
103
Evolution of Access Control Tools
PASS Explorer: Tool for PASS (file storage) Tool for file sharing
104
Evolution of Access Control Tools
PASS Explorer: Tool for PASS (file storage) Tool for file sharing Tool for Web hosting
105
Evolution of Access Control Tools
PASS Explorer: Tool for PASS (file storage) Tool for file sharing Tool for Web hosting Tool for file sharing (over the Web)
106
Evolution of Access Control Tools
107
Evolution of Access Control Tools
GPFS: command line tools?
108
Evolution of Access Control Tools
tr27n02# aclget /pass/users/j/c/jcd/www * * ACL_type NFS4 * Owner: jcd * Group: jcd a rwpxDaAcCos a rwpxDaAcCos dioi a rwpxaAcCos fioi a rxacs a rxacs dioi a rxacs fioi u:jcd: a rwpxDaAcCos u:jcd: a rwpxDaAcCos dioi u:jcd: a rwpaAcCos fioi g:sysadmins: a rwpxDaAcCos g:sysadmins: a rwpxDaAcCos dioi g:sysadmins: a rwpaAcCos fioi a rxacs a rxacs dioi a rxacs fioi g:test.scripts.psu.edu: a rxacs g:test.scripts.psu.edu: a rxacs dioi g:test.scripts.psu.edu: a racs fioi g:php.scripts.psu.edu: a rwpxDaAcs g:php.scripts.psu.edu: a rwpxDaAcs dioi g:php.scripts.psu.edu: a rwpaAcs fioi u:kellogg: a rxacs u:kellogg: a rxacs dioi u:kellogg: a racs fioi u:jvuccolo: a rwpxDaAcs u:jvuccolo: a rwpxDaAcs dioi u:jvuccolo: a rwpaAcs fioi g:umg/its.aset.ait: a rwpxDaAcs g:umg/its.aset.ait: a rwpxDaAcs dioi g:umg/its.aset.ait: a rwpaAcs fioi
109
Evolution of Access Control Tools
tr27n02# pacl -view /pass/users/j/c/jcd/www file: . flags: file-exec s:owner:FULL_CONTROL s:group:READ_ONLY u:jcd:FULL_CONTROL g:sysadmins:FULL_CONTROL s:everyone:READ_ONLY g:test.scripts.psu.edu:READ_ONLY g:php.scripts.psu.edu:READ_WRITE u:kellogg:READ_ONLY u:jvuccolo:READ_WRITE g:umg/its.aset.ait:READ_WRITE
110
Techniques for Web Developers
Enable Penn State WebAccess Protection for: your own Web server your ITS Hosted Web site .htaccess Authorization Controls Restrict to just Access Accounts / deny FPS Restrict to specific Userids Restrict to Classes, Roles and Groups Application Encoded Authorization Directory Integration
111
Enable WebAccess with Your Site
WebAccess directions for your own Web server: To use on php.scripts.psu.edu: Send to Choose “secure” folder to be linked To use WebAccess with dept space (no PHP): Use Put “CosignProtected On” in .htaccess deprecated
112
.htaccess based AuthZ Restrict to just Access Accounts / deny FPS
SSLRequire ( %{ENV:REMOTE_REALM} == "dce.psu.edu" || %{ENV:REMOTE_REALM} == "" ) # Cannot undo at lower level Restrict to specific Userids require user xyz123 Restrict to Classes, Roles and Groups require group cn=umg/course.up.ist require group cn=wfg.010.notify.steward require group cn=umg/up.somedept.group # Only available now on protected.personal.psu.edu
113
Application Encoded Authorization
<?php $valid_users = array( "xyz123" => 1, "jvuccolo" => 1, "jcd" => 1, ); if( ! isset($_SERVER['REMOTE_REALM']) or ! isset($_SERVER['REMOTE_USER'])){ /*** A simplified version. Failsafe to avoid exposure from unsecured URLs. ***/ ?><p>Error – Authentication system failure</p><?php }elseif($_SERVER['REMOTE_REALM'] !== "dce.psu.edu"){ /*** This isn't necessary if you check specific userids. ***/ ?><p>Sorry, only Penn State Access Accounts are allowed, not FPS</p><?php }elseif( ! isset($valid_users[$_SERVER['REMOTE_USER']]) ){ ?><p>Sorry, you are not authorized to view this page.</p><?php }else{ print_welcome(); } ?>
114
Directory Integration
<?php $directory_connection = ldap_connect("dirapps.aset.psu.edu"); if($directory_connection){ // an anonymous bind for read/only access $binding = ldap_bind($directory_connection); // Base Distinguished Name (DN) for Penn State $base_dn = "dc=psu,dc=edu"; $search_results = ldap_search($directory_connection, $base_dn, “uid=” . $_SERVER['REMOTE_USER']); $results = ldap_get_entries($directory_connection,$search_results); if( $results['count'] > 0 && isset($results[0][“cn”][0]) ){ // Print the user's full name print “<p>Hello, “ . $results[0][“cn”][0] . “</p>\n”; } ?>
115
Directory Based AuthZ <?php $directory_connection = ldap_connect("dirapps.aset.psu.edu"); if($directory_connection){ // an anonymous bind for read/only access $binding = ldap_bind($directory_connection); // Base Distinguished Name (DN) for Penn State $base_dn = "dc=psu,dc=edu"; $search_results = ldap_search($directory_connection, $base_dn, “uid=” . $_SERVER['REMOTE_USER']); $results = ldap_get_entries($directory_connection,$search_results); if( $results['count'] > 0 && isset($results[0][“psmemberof”]) && array() != ){ // User is authorized print “<p>Welcome, valid user.</p>\n”; exit; } }else{ ?><p>Not authorized.</p><?php } ?>
116
Gotcha!-s Protected Personal ACM != PHP
PHP authZ is “roll your own .htaccess” mm_mod_auth_ldap Not compatible with .htgroup (right now...) Not available on other ITS Web hosting services (only protected.personal right now...) Method not require SSL (but OK with SSL) WebAccess generally requires SSL
117
Changes to the Directory
February 11: Change of DN (alert-596) PSDirIDN => UID March 15: Change of Groups (alert-628) Copy all groups from DCE => LDAP & AD LDAP becomes master Create PASS homedir quota groups New OU for groups: ou=groups,dc=psu,dc=edu Add new attribute MemberUID
118
PASS Migration Upgrade of filesystem technology DFS->GPFS
WebMail 2.0 release in 2006 was similar upgrade Many aspects seamless, some unfortunately not Unlike AFS->DFS technology migration, this cannot be done piecemeal Out of time, upgrade can no longer be postponed Affects Web hosting services based on PASS
119
PASS Migration File permission Access Control Lists (ACLs) completely different: thus new tools Web permissions (.htaccess) unaffected File Paths changed /.../dce.psu.edu/fs, /.:/fs, /: ==> /pass CIFS & NFS gateways require Kerberos July 3, 5pm – July 7, 7am: PASS “read-only” php.scripts.psu.edu / test.scripts.psu.edu / CGI unavailable
120
PASS Migration php.scripts.psu.edu upgrade Solaris -> Linux
Compiled Apache/PHP -> stock RPM based Apache 1.3 -> 2.0 PHP still (for now) New IP addresses (remote DB & firewall rules may need update) iguana, snail => php1, php2.aset.psu.edu SQLite extension retired
121
PASS Migration sqlite_open(), sqlite_query(), etc... GONE!
Use PHP Data Objects (PDO) Available now! Access to SQLite version 3 as well as 2 Your code becomes more portable to other databases
122
SQLite via PDO Example <?php try {
/*** connect to SQLite 3.x database ***/ $dbh = new PDO("sqlite:/path/to/database.sdb"); /*** The SQL SELECT statement ***/ $sql = "SELECT * FROM animals"; foreach ($dbh->query($sql) as $row) { print $row['animal_type'] .' - '. $row['animal_name'] . '<br />'; } /*** close the database connection ***/ $dbh = null; catch(PDOException $e) echo $e->getMessage(); ?> /* NOTE: Use "sqlite2:” to reach your SQLite 2.x database */
123
PASS Migration Beta Testers http://css.its.psu.edu/PASSBeta/
Sign up and test your site! Test the new gateway servers! Early adopters For departmental Web hosting Move to new system during June (now!) Wiki (faculty / staff only) Discussion LISTSERV (l-passbeta)
124
PASS Migration Project – Timeline
Date Milestone How this is defined Estimated Impact Completed March 17, 2008 Open Beta period begins Enrollment for the testing environment is announced for all of Penn State. All the current functionality in PASS space is available to the testers. Beta testing systems are available until the July 4th cutover May 30, 2008 Begin Internal ITS Migration All Production services are operational. The Pre- tag will remain until the Final Cutover. All ITS Units under /dept/its space NO May 30-June 30, 2008 Open Penn State Early Migration We will offer the option to perform a timely migration in advance. Migration for ITS units targeted for mid-June. July Complete Data Migration, PASS is read-only for the 3 day weekend DFS is locked into a read-only state. All systems and data remaining in DFS are moved into GPFS. No turning back. All our dependent systems July-Aug 2008 Decommission DCE/DFS Shut off existing systems. Repurpose Hardware. Plan for next hardware/power issues. Hopefully None
125
Our Post PASS Migration TODOs
Further ACL tool development Self Serve Kerberos Service Principals/Keytabs Self Serve UMGs (demo) COLA & Course Group Integration LDAP authZ module development UMG based LISTSERV lists chat.psu.edu – Penn State Jabber service UMG based Jabber conferences
126
Our Post PASS Migration TODOs
Plone service for student orgs (based on admin site)
127
Your Pre-PASS Migration TODOs
Sign up for the PASS Beta Test access to the new gateways Upload and verify your site's functionality Convert SQLite calls to PDO Consider early adoption with your ITS Consultant
128
Your Post PASS Migration TODOs
Verify your site still works Verify you can still update your site Replace /.../dce.psu.edu/fs, /.:/fs, /: with /pass
129
Closing Jeff D'Angelo <jcd@psu.edu>
James Vuccolo
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.