LDS Account and the Java Stack. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions.

Slides:



Advertisements
Similar presentations
Open Grid Forum 19 January 31, 2007 Chapel Hill, NC Stephen Langella Ohio State University Grid Authentication and Authorization with.
Advertisements

MIT Lincoln Laboratory A Service-Oriented Approach to Application Development Robert Darneille & Gary Schorer WPI MQP Presentations ICS Group 10 October.
Access & Identity Management “An integrated set of policies, processes and systems that allow an enterprise to facilitate and control access to online.
METALOGIC s o f t w a r e © Metalogic Software Corporation DACS Developer Overview DACS – the Distributed Access Control System.
Forms Authentication, Users, Roles, Membership Ventsislav Popov Crossroad Ltd.
ELAG Trondheim Distributed Access Control - BIBSYS and the FEIDE solution Sigbjørn Holmslet, BIBSYS, Norway Ingrid Melve, UNINET, Norway.
MyProxy: A Multi-Purpose Grid Authentication Service
A Brief Introduction 2012 Spring Security. What is it? Security toolkit for Java applications Primarily intended for web applications Open Source from.
Dorian Grid Identity Management and Federation Dialogue Workshop II Edinburgh, Scotland February 9-10, 2006 Stephen Langella Department.
WEB2P security Java web application security Dr Jim Briggs.
Understanding Active Directory
Course 6421A Module 7: Installing, Configuring, and Troubleshooting the Network Policy Server Role Service Presentation: 60 minutes Lab: 60 minutes Module.
Module 1 Introduction to Managing Microsoft® Windows Server® 2008 Environment.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Intermediate Spring Matt Wheeler. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack – Basic.
Module 12: Designing an AD LDS Implementation. AD LDS Usage AD LDS is most commonly used as a solution to the following requirements: Providing an LDAP-based.
Kuali Rice at Indiana University Rice Setup Options July 29-30, 2008 Eric Westfall.
Forms Authentication, Users, Roles, Membership Svetlin Nakov Telerik Corporation
Identity Management Report By Jean Carreon and Marlon Gonzales.
LIGHT WEIGHT DIRECTORY ACCESS PROTOCOL Presented by Chaithra H.T.
Internationalization and the Java Stack Matt Wheeler.
LDS Account Integration. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions Prerequisites:
PSEUDOSOFTPSEUDOSOFT Furkan Kürşat DANIŞMAZ Mehmet Bahattin YAŞAR Gülsüm Selcen MÜLAZIMOĞLU Ömer Nebil YAVEROĞLU Yenilink Project Supporting Assistant.
Developing Applications for SSO Justen Stepka Authentisoft, LLC
ArcGIS Server and Portal for ArcGIS An Introduction to Security
Struts J2EE web application framework “ Model 2 ” Model View Controller Controller Servlet Key features XML metadata Struts taglib Simplified form validation.
Introduction to Spring Matt Wheeler. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack – Basic.
Simplify and Strengthen Security with Oracle Application Server Allan L Haensgen Senior Principal Instructor Oracle Corporation Session id:
TWSd - Security Workshop Part I of III T302 Tuesday, 4/20/2010 TWS Distributed & Mainframe User Education April 18-21, 2010  Carefree Resort  Carefree,
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Using Spring Security and CAS JA-SIG Summer Conference Denver, CO June 24 – 27, 2007.
LDS Account and the Java Stack. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions.
Module 11: Securing a Microsoft ASP.NET Web Application.
LDS Account Integration. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions Prerequisites:
Kuali Rice A basic overview…. Kuali Rice Mission First and foremost to provide a consistent development framework and common middleware layer for Kuali.
Building Secure Web Applications With ASP.Net MVC.
WAM and the Java Stack. Disclaimer Please ask questions There are hands on labs Prerequisites: – Basic Java knowledge – Basic Spring knowledge – LDS Account.
What is Web Site Administration Tool ? WAT Allow you to Configure Web Site With Simple Interface –Manage Users –Manage Roles –Manage Access Rules.
Kuali Identity Management: Introduction and Implementation Options Jasig - Spring 2010 Wednesday, March 10, :30 am.
© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Kuali Nervous System Aaron Godert, Kuali Development Manager Brian.
MEMBERSHIP AND IDENTITY Active server pages (ASP.NET) 1 Chapter-4.
11/14/00Copyright © Yale University1 uPortal: A Java Based Portal Framework A Project of JA-SIG ( Presented by: Susan Bramhall,
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
Access Services Introduction & Setup Requirements Kipp Sorensen, Soren Innovations.
February, TRANSCEND SHIRO-CAS INTEGRATION ANALYSIS.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
WEB SERVER SOFTWARE FEATURE SETS
ESG-CET Meeting, Boulder, CO, April 2008 Gateway Implementation 4/30/2008.
DEVELOPING ENTERPRISE APPLICATIONS USING EJB
15 Copyright © 2004, Oracle. All rights reserved. Adding JAAS Security to the Client.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
LDS Account and the Java Stack. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions.
Securing Web Applications Lesson 4B / Slide 1 of 34 J2EE Web Components Pre-assessment Questions 1. Identify the correct return type returned by the doStartTag()
Active Directory Domain Services (AD DS). Identity and Access (IDA) – An IDA infrastructure should: Store information about users, groups, computers and.
WAM and the Java Stack. Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions Prerequisites:
Business Objects XIr2 Windows NT Authentication Single Sign-on 18 August 2006.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
Using Your Own Authentication System with ArcGIS Online
CS520 Web Programming Declarative Security (II)
CollegeSource Security Application &
Registration, Login, Thymeleaf
Module Overview Installing and Configuring a Network Policy Server
Data Virtualization Tutorial… LDAP Domains in CIS
Web Portal Project.
Server Concepts Dr. Charles W. Kann.
LDS Account and the Java Stack
Common Security Mistakes
To Join the Teleconference
CS5220 Advanced Topics in Web Programming Spring – Web MVC
Presentation transcript:

LDS Account and the Java Stack

Disclaimer This is a training NOT a presentation. – Be prepared to learn and participate in labs Please ask questions Prerequisites: – Basic Java knowledge – Basic Spring knowledge

Outline LDS Account Overview – History – Authentication – User Details Spring Security Overview – Authentication – LDS Account integration – In memory integration LDS Account Search Spring Security and Authorization

History Historically each application handled authentication as a one off – Troublesome for users (many credentials to remember) – User information duplicated over and over throughout the enterprise – Difficult to get user information at all Screaming for consolidation and a single, central solution

LDS Account "LDS Account is a single user name and password for any person who interacts with online LDS Church resources. LDS Account is the primary account authentication credentials for most Church sites and applications. It reduces development costs that would be incurred as the user interfaces change, or as upgrades to security and the registration process are required. Unlike previous authentication systems, LDS Account is a branded single sign-on solution that is centrally managed at ldsaccount.lds.org."

LDS Account (cont.) "LDS Account has become the key to accessing all the resources the Church has to offer, such as family history tools, ward and stake websites, employment resources, and more.... The idea is to have only one username and password that you can use with all password-protected websites the Church has."

What is LDS Account? LDS Account is meant to be the single source for user authentication and basic user information LDS Account is implemented with LDAP LDS Account is an application for maintaining user attributes

LDS Account Uses LDAP Lightweight Directory Access Protocol Distributed directory of information – Much like a database – Not queried with SQL – For further information about the Directory structure, please see the corresponding section at: Access_Protocol LDS Account = LDAP WAM = Single Sign-on

User Details LDS Account also provides user information – User details – User details can be exposed through LDAP attributes WAM headers SAML attributes

LDS Account User Details Integration The LDS Account module acts as a Java model for LDS Account information LdsAccountDetails.java is the abstraction layer for LDS Account user details integration Factories generate LdsAccountDetails object for each user – Factories handle the different formats in which the raw user details attributes are provide to the application LDAP attributes, WAM headers, SAML, …

Lab 1 _-_Part_1#Lab_1

LDS Account Spring Security Integration

Authentication vs. Authorization Authentication - "you are who you say you are" – Identification of an individual user of the application – Credential-based authentication Authorization - "you have appropriate permissions to perform the operation you are attempting" – Availability of functionality and data to users who are authorized (or allowed) to access it – ication_vs._authorization

Spring Security Spring Security is a highly customizable and pluggable enterprise authentication / authorization security framework – Provides tools for managing application access (authentication) – Rules for what users can access (by url) (authorization) – Securing methods (authorization),... Overcomes lack of depth in J2EE Servlet Specification Further information can be found here: security/site/reference.html

Spring Security (authentication) Spring comes with many pluggable authentication providers – Support provided for authenticating with: LDAP X.509 (Certificates) Databases (JDBC) JAAS OAuth HTTP BASIC Form-based …

Spring Security Authentication Manager Basic configuration: Native Spring in memory authentication provider configuration (applicationContext.xml)...

Spring Security Web Configuration Configure filter in web.xml springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /*

Spring Security Context Configuration Configure applicationContext.xml Please see documentation for further element and attribute information: security/site/docs/3.1.x/reference/springsecurity- single.html

Demo

Spring Security/LDS Account Integration LDS Account authentication provider hooks into Spring Security In-memory implementation Namespace handlers simplify the configuration sites/stack/module.html?module=lds- account/stack-lds-account- spring/index.html#LDAP_Global_Directory_Auth entication

Spring Security/In-memory Authentication In-memory authentication provides quick setup Useful for testing sites/stack/module.html?module=lds- account/stack-lds-account- spring/index.html#In_Memory_Authentication Attribute information: mentation%20Details/HTTP%20Headers.aspx

Access LdsAccountDetails Through injection Through static private Provider ldsAccountDetails; public void someMethod() { //not the get() is a call on the provider to grab the current instance String preferredName = ldsAccountDetails.get().getPreferredName(); //… } LdsAccountDetails ldsAccountDetails = ((LdsAccountUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getLdsAccountDetails(); String preferredName = ldsAccountDetails.getPreferredName(); //…

Demo

Lab 2 _-_Part_1#Lab_2

LDS Account (LDAP) Search

LDS Account Search Configuration / Usage Configuration Usage <lds-account:ldap-server url="ldaps://gdirstage.wh.ldsglobal.net:636" manager-dn="cn=XXXXX,ou=apps,o=lds" private LdsAccountSearch ldsAccountSearch; public List findLdapUsers(String cnValue, String snValue) { return ldsAccountSearch.search( SearchClause.or( SearchClause.equals(LdsAccountAttributes.USERNAME, cnValue + "*"), SearchClause.equals(LdsAccountAttributes.SUR_NAME, snValue + "*") ) ); }

LDS Account Usage account/stack-lds-account-spring/index.html#LDAP_Search Searching format For more info: sites/stack/module.html?module=lds-account/stack-lds-account- spring/apidocs/org/lds/stack/ldsaccount/spring/ldap/LdapSearch.html Native LDAP search query: (|(cn={0}*)(sn={1}*)) Abstracted search query: SearchClause.or( SearchClause.equals("cn", value + "*"), SearchClause.equals("sn", value + "*") )

Demo

Authorization with Spring Security

Review Authentication vs. Authorization Previously discussed authentication with Spring Security Now focus on authorization with Spring Security

Authorization with Spring Security Comprehensive Authorization Services – security/site/features.html HTTP requests authorization (securing annotation Granted authorities – security/site/docs/3.1.x/reference/springsecurity- single.html#tech-granted-authority

Protecting Urls Example of protecting urls security/site/docs/3.1.x/reference/springsecurity -single.html#el-access

Authorize Tag Fine grained authorization security/site/docs/3.1.x/reference/springsecurity -single.html#d0e6860 Content only visible to users who have the "admin" authority in their list of GrantedAuthority(s). Content only visible to users authorized to send requests to the "/secure" URL.

@PreAuthorize annotation Scanning enabled with following element: Some public void create(User == principal.username") public void doSomething(User user);

Authorities Populators MemberAuthoritiesPopulator – Adds ROLE_MEMBER authority if a member WorkforceAuthoritiesPopulator – Adds ROLE_WORKFORCE authority if currently a Church employee PositionsV2AuthoritiesPopulator – Adds a granted authority for each position held Position name prepended with ROLE_ Ex. ROLE_WARD_CLERK, or ROLE_PRIMARY_TEACHER

Authorities Populators sites/stack/module.html?module=lds- account/stack-lds-account- spring/index.html#Authorities_Populators Example

Demo

Conclusion LDS Account rocks! The Java Stack integration with LDS Account and Spring Security rocks!

Credit Where Credit is Due security/site/docs/3.1.x/reference/springsecurity -single.html Spring Security 3 – by Peter Mularien