SlideShare ist ein Scribd-Unternehmen logo
1 von 53
ADF Security in a Project-Centric
Environment
An ADF Case Study
Jean-Marc Desvaux - General Construction Co.Ltd
Agenda
GCC Business Case
Security Approach for the overall Ecosystem
Enabling ADF Security
Enabling Per Project & Module Security in ADF
Setting up the Infrastructure
The Business Case
The GCC Business
Building & Civil Engineering
GCC = Main Contractor = Builders Work mainly
Operations in Mauritius Only
~3000 Workforce, ~400 Staff (200 HQ, 200 on
Sites).
The GCC IT Team
4 Engineers & Developers
 1 ADF dedicated since 2 years + Forms/Reports (6yrs)
 1 ADF dedicated since 1 year
 1 Forms/Reports dedicated +20yrs (new/reviews &
upgrades)
 2 of them dealing with overall infrastructure (Installation,
Admin of DB,AS,Storage,DR,Firewalls,...)
2 Desktop & Peripheral Support Technicians
 Sites Networking
Desktop/Clients Configs & Support
Dev Started 1990, Kept Updated & Still Growing…
SINGLE ORACLE DATABASE INSTANCE
Today ~1500 Forms & 1500 Reports
covering most aspects of line of
services/business units
(Logistics, Professional Support &
Coorporate Services)
each backing up Sites Operations
Need for our Sites to be
Active Players
in this
Services Ecosystem
We saw there a good case
for an ADF transition
Started with ADF 10g, 2 years ago
Connecting Sites to the GCC System
with ADF Web applications
As we grow with ADF we will replace
FORMS slowly across the whole IS
Security Approach for the
overall Ecosystem
Site User always works under a Project Context
Compared to a Corp.User who works
transversely across projects
Security delegated to “Line of Service”
Managers where applicable
•Each “Line of Service” Manager makes service agreements
with Sites defining how they will work :-Who will do what.
•“Line of Service” Manager applies Agreement by setting
roles in a Security Configuration/Management application.
Security Model for all applications
(ADF, Forms & Reports)
4 “Levels”: OID/SSO, Database, ADF Security & UI
OID (LDAP) for USERS and MODULE GROUPS
ORACLE Single Sign-On (SSO)
DATA MODEL FOR A SECURITY APPLICATION
TO DRIVE PER MODULE/PROJECT ROLES
ADF SECURITY FOR PAGES ON OID GROUPS
ADF UI COMPONENTS RENDERED OR NOT USING EL :
CUSTOM CLASSES TO CHECK ROLES FROM THE DATABASE
Security Application
Built with both Forms & ADF
to support delegation to Line of Service Managers
Users stored in Database + mirrored in OID
using dbms_ldap package
OID Data
Delegate management of Project/Module Security
Module Security
Manager
Who can Manage a Module for one or more Projects
Grant/Revoke Module Roles to User for Project
OID Group
Security Management related Forms
Module Roles & related privileges
Modules
When access granted to a first
Site, OID updated with module
group using dbms_ldap package
Other advantages of using the Database is
the integration of security with HR Data
New Users are added to the Site from HR Employees data by the
Security manager.
Auditing Accesses inside the database and Timesheet cross-
checking (Absent but logged on, not assigned to a Site but still
authorized etc..)
When an employee leaves the company, authorization is
automatically revoked
Ability to do more control as & when needed/decided
Security Data is backed up with Database
Setting up the Infrastructure
WebLogic, OID & SSO
What we need to integrate OID/SSO
with WebLogic
Webcache wls1033.gcc.mu:7785
HTTP 11g wls1033.gcc.mu:7777
WebLogic wls1033.gcc.mu:7007
Oracle Single Sign-on/OID
Oracle WebTier 11g
ADF 11g deployment
Oracle Identity Management 10.1.4
“Forms (11g) will not be specifically coded to use, nor tested with Oracle Access Manager. Other Oracle
products, such as ADF, Web Center and Portal, will also support Oracle Single-Sign-on.
Oracle has plans to support Oracle Access Manager in future versions of Oracle Forms 11g.”
Proxying WebLogic with HTTP 11g
WebLogic wls1033.gcc.mu:7007
Webcache wls1033.gcc.mu:7785
HTTP 11g wls1033.gcc.mu:7777
Register the weblogic server URL with webcache port (7785) on the
OID/SSO Server :-
1/.Create a wls_osso.conf file from the ssoreg.sh tool on the OID/SSO infra server .
2/.Replace the Weblogic server webtier osso.conf with the generated file
3/.Configure mod_osso.conf to point to the newly copied osso.conf
Register HTTP server
With the OSSO Infra Server
Setup WebLogic Security Providers
o Authenticator must be configured
for Oracle Internet Directory (OID)
o Identity Assertion Provider must be
configured for SSO
Oracle WebTier 11g
IdM
WebLogic Realm Security Providers
Infrastructure Setup Done
Webcache wls1033.gcc.mu:7785
HTTP 11g wls1033.gcc.mu:7777
WebLogic wls1033.gcc.mu:7007
Oracle Single Sign-on/OID
Oracle WebTier 11g
ADF 11g deployment
Oracle Identity Management 10.1.4
Enabling ADF Security
Normal ADF Security
(Not Project related yet)
Authentication
&
ADF application pages Authorization using OID Groups
Enabling ADF Security
Jdeveloper creates :
jazn-data.xml: Set security rules & permissions + dev/test
store for testing only (skipped on deployment)
What it does ..
and updates :
web.xml: Set type of Authentication selected.
weblogic.xml : where users are mapped to role (by default
a generic principal (user) is mapped to a Weblogic role “valid-
users” (authenticated user)
adf-config.xml: To indicate that ADF security is enabled &
handled by JPS (Java Platform Security)
Authentication Type (web.xml)
with Oracle Infrastructure Single sign-on
Remember this is due to Forms/Reports integration & the following Oracle statement:
Authorization : Roles & Pages Security
oApplication Roles
ADF application specified role, ADF Authorization are set on these roles.
oEnterprise Roles
Roles assigned to the ADF user from the Credential/Identity Store (Oracle
Internet Directory)
oApplication Role is mapped to Enterprise Role allowing
developer to use roles and map them later to final Roles.
oRoles are applied to pages with View permission
Other permissions are only applicable if you use WebCenter
Authorization (Jazn-data.xml)
What we have at this stage
o A user with an OID account and OID Groups
(enterprise roles) gets a SSO login form to identify
himself when trying to access an ADF application
(all pages being protected by ADF Security).
o Once authenticated, he can navigate to the page if he
has the necessary enterprise role (mapped to the
application role set to protect the page).
On each page, we only want
the authorized UI components
to be rendered.
UI components level
Rendering or not a UI component
(button, panel etc..)
JSF Expression Language (EL)
CurrentPeriod <= (le for less or equal) Period
#{securityContext.userInRole[‘rolename’]} for “static” role
We will see later how we use EL to apply per project security
Enabling Per Project &
Module Security in ADF
Before proceeding let’s see a normal
navigation use case demo of the
application
Oracle Single Sign-On Login Form
Oracle Infrastructure 10.1.4 Default Login Form
Customized with our logo.
We could (& should) write a custom Login Form
List of Projects for which the user
is entitled to at least one Application Module
Was done with ADF 10g, 11g was not yet released. Currently being upgraded to 11g
Last Project accessed by
the User in last session
List of Modules to which the user is
entitled to on the selected Project
Was done with ADF 10g, 11g was not yet released. Being upgraded to 11g
User can switch Project Context
Within the Same Module
Module
Ex: Button rendered or not
depending on User’s rights
on this specific Project
Module
Oracle Reports integration
(Report TaskFlow)
Report URL not displayed
Oracle Report Parameter Form
What we do
(Guideline only. To Show extensibility/flexibility of the Framework)
1. User Login is fetched from ADF Context.
2. From a “Project List” module and a “Project Switcher” Taskflow,
a selected Project is set in the database. Any direct access to
Module takes the Project from the database.
3. When accessing an application we store in the AM Session our
context parameters: Project Code, User Login, Module Code,etc..
4. Module Access Right for Project is checked from the database
(in case Module accessed directly via Module URL)
5. Database Client Identifier & Module Environment are set in the
Database for Auditing purpose & other needs.
6. A “Module access” audit event is logged in the Database
7. When a page is accessed, session parameters are stored (if
not already done) in a Session bean.
8. User’s Privileges Codes for Module/Project is fetched from
the Security Database and stored in HTTP session as a Map.
9. Bind Variables on our View Objects (VOs) are automatically
replaced by our parameters value to filter data at VO level
when VOs are executed.
10. We have a session bean method (SecurityScope.userinRole)
that is used in EL to check Privileges from our HTTP session
Map to Render or not a Component.
Normal EL Expression to check from static role
#{securityContext.userInRole[‘Role Name']}
Custom EL Expression to check from Database
privileges Codes assigned to Role
#{securityScope.userInRole[‘Priv List Code']}
Reusability
Task Flows, Libraries & Page Templates
ADF Framework Base Classes
TaskFlow Workspace
GCCCommon Workspace
Reusability
Task Flows, Libraries, Page templates..
adf-extensions
project
gcc-security
project
gcc-template
Project
GCC Apps
Module
Task Flows ……
……
……
……
Application
Modules
Workspaces
Task Flows
Workspaces
GCC
Libraries
Oracle WebCenter
Application Entry point (Portal) + Customization for tasks shortcuts (Approving Requests etc..)
Improve Application Structure using Catalogs
Content Integration & Web 2.0 features
(ex: Project Site Communications Module extended with Chat/Forum/Workspace)
The Future
Potential grounds for improvements
Move to Oracle Access Manager (When Forms/Reports support it) &
investigate/try to leverage Oracle Entitlement Server
“Oracle Entitlements Server is a fine grained authorization engine that externalizes, unifies,
and simplifies the management of complex entitlement policies”
ADF Mobile
Pervasiveness of our Applications (ex: allowing an approval anywhere on site)
Non-Oracle
Lucas Jellema, Andrejus Baranovski, Chris Muir
Oracle
Frank Nimphius, Grant Ronald, Steve Muench, Duncan Mills
And more…
ADF Experts bloggers
Oracle Technology Network (OTN)
ADF Code Corner
JDev/ADF Forum
Tutorials
And more..
ADF books
Our Main Resources
ADF EMG
• A place to discuss best practices and methodologies
for JDeveloper ADF enterprise applications
• Founded mid-2008, now 400+ members
• Focus is Fusion Tech Stack (ADF Faces, ADF BC)
• Sessions at ODTUG, OOW
• Expert bloggers
• Sub Groups: Expert Panel (Ex: Inter-Region communication
Expert Panel, Security Expert Panel)
http://groups.google.com/group/adf-methodology
Thank You

Weitere ähnliche Inhalte

Was ist angesagt?

Oa Framework Tutorial
Oa Framework TutorialOa Framework Tutorial
Oa Framework Tutorial
nolimit797
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginners
hrakhra
 
Application engine
Application engineApplication engine
Application engine
JAYAARC
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePoint
BenCox35
 

Was ist angesagt? (20)

Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFGreate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADF
 
Extensions in OAF
Extensions in OAF Extensions in OAF
Extensions in OAF
 
Oracle application framework (oaf) online training
Oracle application framework (oaf) online trainingOracle application framework (oaf) online training
Oracle application framework (oaf) online training
 
oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...oracle oa framework training | oracle oa framework training courses | oa fram...
oracle oa framework training | oracle oa framework training courses | oa fram...
 
Introduction to JSF
Introduction toJSFIntroduction toJSF
Introduction to JSF
 
7 Tips For Better JDeveloper Experience
7 Tips For Better JDeveloper Experience7 Tips For Better JDeveloper Experience
7 Tips For Better JDeveloper Experience
 
Oracle JET and WebSocket
Oracle JET and WebSocketOracle JET and WebSocket
Oracle JET and WebSocket
 
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
Oracle EBS 12.1.3 : Integrate OA Framework BC4J components within java concur...
 
ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)
 
Oracle ADF 11g Skinning Tutorial
Oracle ADF 11g Skinning TutorialOracle ADF 11g Skinning Tutorial
Oracle ADF 11g Skinning Tutorial
 
37727897 Oaf Basics
37727897 Oaf Basics37727897 Oaf Basics
37727897 Oaf Basics
 
Customize the login homepage For Oracle EBS R12
Customize the login homepage For Oracle EBS R12Customize the login homepage For Oracle EBS R12
Customize the login homepage For Oracle EBS R12
 
JSF (ADF) Case Studies Presentation
JSF (ADF) Case Studies PresentationJSF (ADF) Case Studies Presentation
JSF (ADF) Case Studies Presentation
 
Infolets and OTBI Deep link Actionable Reports - Configuration Work Book
Infolets and OTBI Deep link Actionable Reports - Configuration Work Book Infolets and OTBI Deep link Actionable Reports - Configuration Work Book
Infolets and OTBI Deep link Actionable Reports - Configuration Work Book
 
Oa Framework Tutorial
Oa Framework TutorialOa Framework Tutorial
Oa Framework Tutorial
 
Apex basics-for Beginners
Apex basics-for BeginnersApex basics-for Beginners
Apex basics-for Beginners
 
Application engine
Application engineApplication engine
Application engine
 
Java server faces
Java server facesJava server faces
Java server faces
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePoint
 
Oracle fusion dba online training
Oracle fusion  dba online trainingOracle fusion  dba online training
Oracle fusion dba online training
 

Andere mochten auch

Working with Portlets in ADF and Webcenter
Working with Portlets in ADF and WebcenterWorking with Portlets in ADF and Webcenter
Working with Portlets in ADF and Webcenter
DataNext Solutions
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for Beginners
DataNext Solutions
 
ADF Development Survival Kit
ADF Development Survival KitADF Development Survival Kit
ADF Development Survival Kit
andrejusb
 
Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012
Zubair Ali
 
Oaf development-guide
Oaf development-guideOaf development-guide
Oaf development-guide
俊 朱
 

Andere mochten auch (16)

Working with Portlets in ADF and Webcenter
Working with Portlets in ADF and WebcenterWorking with Portlets in ADF and Webcenter
Working with Portlets in ADF and Webcenter
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for Beginners
 
so-aDF
so-aDFso-aDF
so-aDF
 
Reporting solutions for ADF Applications
Reporting solutions for ADF ApplicationsReporting solutions for ADF Applications
Reporting solutions for ADF Applications
 
ORACLE FRAMEWORK ONLINE TRAINING
ORACLE FRAMEWORK ONLINE TRAININGORACLE FRAMEWORK ONLINE TRAINING
ORACLE FRAMEWORK ONLINE TRAINING
 
ADF Value Proposition in 10 key points
ADF Value Proposition in 10 key pointsADF Value Proposition in 10 key points
ADF Value Proposition in 10 key points
 
ADF Development Survival Kit
ADF Development Survival KitADF Development Survival Kit
ADF Development Survival Kit
 
Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012
 
Real life forms to adf
Real life forms to adfReal life forms to adf
Real life forms to adf
 
Tca presentation
Tca presentationTca presentation
Tca presentation
 
Oaf development-guide
Oaf development-guideOaf development-guide
Oaf development-guide
 
Oracle Application Technical - Hz architecture
Oracle Application Technical - Hz architectureOracle Application Technical - Hz architecture
Oracle Application Technical - Hz architecture
 
ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14
 
Running ADF Faces on Tablets and Mobile Phones
Running ADF Faces on Tablets and Mobile PhonesRunning ADF Faces on Tablets and Mobile Phones
Running ADF Faces on Tablets and Mobile Phones
 
Oaf personalization examples
Oaf personalization examplesOaf personalization examples
Oaf personalization examples
 
Oracle TCA 101
Oracle TCA 101Oracle TCA 101
Oracle TCA 101
 

Ähnlich wie Oracle ADF Case Study

Rfid based job tracking mobile application
Rfid based job tracking mobile applicationRfid based job tracking mobile application
Rfid based job tracking mobile application
Mike Taylor
 
Prakhar Sood-Resume-CV
Prakhar Sood-Resume-CVPrakhar Sood-Resume-CV
Prakhar Sood-Resume-CV
Prakhar Sood
 

Ähnlich wie Oracle ADF Case Study (20)

Revised Adf security in a project centric environment
Revised Adf security in a project centric environmentRevised Adf security in a project centric environment
Revised Adf security in a project centric environment
 
Java EE Services
Java EE ServicesJava EE Services
Java EE Services
 
ios basics
ios basicsios basics
ios basics
 
Ranbijay Kumar - BlackBerry Jam Americas 2013
Ranbijay Kumar - BlackBerry Jam Americas 2013Ranbijay Kumar - BlackBerry Jam Americas 2013
Ranbijay Kumar - BlackBerry Jam Americas 2013
 
Faites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchFaites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB Stitch
 
Digitally Record videos & Track Incidents on IPAD Application
Digitally Record videos & Track Incidents on IPAD ApplicationDigitally Record videos & Track Incidents on IPAD Application
Digitally Record videos & Track Incidents on IPAD Application
 
Password security system for websites
Password security system for websitesPassword security system for websites
Password security system for websites
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 
Sso & rman
Sso & rmanSso & rman
Sso & rman
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
 
Windows 8.1 a closer look
Windows 8.1 a closer lookWindows 8.1 a closer look
Windows 8.1 a closer look
 
Rfid based job tracking mobile application
Rfid based job tracking mobile applicationRfid based job tracking mobile application
Rfid based job tracking mobile application
 
RFID Based Job Tracking Mobile Application that Eliminates Handwritten Notes
RFID Based Job Tracking Mobile Application that Eliminates Handwritten NotesRFID Based Job Tracking Mobile Application that Eliminates Handwritten Notes
RFID Based Job Tracking Mobile Application that Eliminates Handwritten Notes
 
Stmik bandung
Stmik bandungStmik bandung
Stmik bandung
 
Brijesh Soni
Brijesh SoniBrijesh Soni
Brijesh Soni
 
Prakhar Sood-Resume-CV
Prakhar Sood-Resume-CVPrakhar Sood-Resume-CV
Prakhar Sood-Resume-CV
 
Uma SunilKumar Resume
Uma SunilKumar ResumeUma SunilKumar Resume
Uma SunilKumar Resume
 
Oracle Identity Manager Basics
Oracle Identity Manager BasicsOracle Identity Manager Basics
Oracle Identity Manager Basics
 
ABC’s Proposal
ABC’s ProposalABC’s Proposal
ABC’s Proposal
 
Chinnasamy Manickam
Chinnasamy ManickamChinnasamy Manickam
Chinnasamy Manickam
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Oracle ADF Case Study

  • 1. ADF Security in a Project-Centric Environment An ADF Case Study Jean-Marc Desvaux - General Construction Co.Ltd
  • 2. Agenda GCC Business Case Security Approach for the overall Ecosystem Enabling ADF Security Enabling Per Project & Module Security in ADF Setting up the Infrastructure
  • 4. The GCC Business Building & Civil Engineering GCC = Main Contractor = Builders Work mainly Operations in Mauritius Only ~3000 Workforce, ~400 Staff (200 HQ, 200 on Sites).
  • 5. The GCC IT Team 4 Engineers & Developers  1 ADF dedicated since 2 years + Forms/Reports (6yrs)  1 ADF dedicated since 1 year  1 Forms/Reports dedicated +20yrs (new/reviews & upgrades)  2 of them dealing with overall infrastructure (Installation, Admin of DB,AS,Storage,DR,Firewalls,...) 2 Desktop & Peripheral Support Technicians  Sites Networking Desktop/Clients Configs & Support
  • 6. Dev Started 1990, Kept Updated & Still Growing… SINGLE ORACLE DATABASE INSTANCE
  • 7. Today ~1500 Forms & 1500 Reports covering most aspects of line of services/business units (Logistics, Professional Support & Coorporate Services) each backing up Sites Operations
  • 8. Need for our Sites to be Active Players in this Services Ecosystem We saw there a good case for an ADF transition
  • 9. Started with ADF 10g, 2 years ago Connecting Sites to the GCC System with ADF Web applications
  • 10. As we grow with ADF we will replace FORMS slowly across the whole IS
  • 11. Security Approach for the overall Ecosystem
  • 12. Site User always works under a Project Context Compared to a Corp.User who works transversely across projects
  • 13. Security delegated to “Line of Service” Managers where applicable •Each “Line of Service” Manager makes service agreements with Sites defining how they will work :-Who will do what. •“Line of Service” Manager applies Agreement by setting roles in a Security Configuration/Management application.
  • 14. Security Model for all applications (ADF, Forms & Reports)
  • 15. 4 “Levels”: OID/SSO, Database, ADF Security & UI OID (LDAP) for USERS and MODULE GROUPS ORACLE Single Sign-On (SSO) DATA MODEL FOR A SECURITY APPLICATION TO DRIVE PER MODULE/PROJECT ROLES ADF SECURITY FOR PAGES ON OID GROUPS ADF UI COMPONENTS RENDERED OR NOT USING EL : CUSTOM CLASSES TO CHECK ROLES FROM THE DATABASE
  • 16. Security Application Built with both Forms & ADF to support delegation to Line of Service Managers
  • 17. Users stored in Database + mirrored in OID using dbms_ldap package OID Data
  • 18. Delegate management of Project/Module Security Module Security Manager
  • 19. Who can Manage a Module for one or more Projects Grant/Revoke Module Roles to User for Project OID Group Security Management related Forms Module Roles & related privileges Modules When access granted to a first Site, OID updated with module group using dbms_ldap package
  • 20. Other advantages of using the Database is the integration of security with HR Data New Users are added to the Site from HR Employees data by the Security manager. Auditing Accesses inside the database and Timesheet cross- checking (Absent but logged on, not assigned to a Site but still authorized etc..) When an employee leaves the company, authorization is automatically revoked Ability to do more control as & when needed/decided Security Data is backed up with Database
  • 21. Setting up the Infrastructure WebLogic, OID & SSO
  • 22. What we need to integrate OID/SSO with WebLogic Webcache wls1033.gcc.mu:7785 HTTP 11g wls1033.gcc.mu:7777 WebLogic wls1033.gcc.mu:7007 Oracle Single Sign-on/OID Oracle WebTier 11g ADF 11g deployment Oracle Identity Management 10.1.4 “Forms (11g) will not be specifically coded to use, nor tested with Oracle Access Manager. Other Oracle products, such as ADF, Web Center and Portal, will also support Oracle Single-Sign-on. Oracle has plans to support Oracle Access Manager in future versions of Oracle Forms 11g.”
  • 23. Proxying WebLogic with HTTP 11g WebLogic wls1033.gcc.mu:7007 Webcache wls1033.gcc.mu:7785 HTTP 11g wls1033.gcc.mu:7777
  • 24. Register the weblogic server URL with webcache port (7785) on the OID/SSO Server :- 1/.Create a wls_osso.conf file from the ssoreg.sh tool on the OID/SSO infra server . 2/.Replace the Weblogic server webtier osso.conf with the generated file 3/.Configure mod_osso.conf to point to the newly copied osso.conf Register HTTP server With the OSSO Infra Server
  • 25. Setup WebLogic Security Providers o Authenticator must be configured for Oracle Internet Directory (OID) o Identity Assertion Provider must be configured for SSO Oracle WebTier 11g IdM
  • 27. Infrastructure Setup Done Webcache wls1033.gcc.mu:7785 HTTP 11g wls1033.gcc.mu:7777 WebLogic wls1033.gcc.mu:7007 Oracle Single Sign-on/OID Oracle WebTier 11g ADF 11g deployment Oracle Identity Management 10.1.4
  • 28. Enabling ADF Security Normal ADF Security (Not Project related yet) Authentication & ADF application pages Authorization using OID Groups
  • 30. Jdeveloper creates : jazn-data.xml: Set security rules & permissions + dev/test store for testing only (skipped on deployment) What it does .. and updates : web.xml: Set type of Authentication selected. weblogic.xml : where users are mapped to role (by default a generic principal (user) is mapped to a Weblogic role “valid- users” (authenticated user) adf-config.xml: To indicate that ADF security is enabled & handled by JPS (Java Platform Security)
  • 31. Authentication Type (web.xml) with Oracle Infrastructure Single sign-on Remember this is due to Forms/Reports integration & the following Oracle statement:
  • 32. Authorization : Roles & Pages Security oApplication Roles ADF application specified role, ADF Authorization are set on these roles. oEnterprise Roles Roles assigned to the ADF user from the Credential/Identity Store (Oracle Internet Directory) oApplication Role is mapped to Enterprise Role allowing developer to use roles and map them later to final Roles. oRoles are applied to pages with View permission Other permissions are only applicable if you use WebCenter
  • 34. What we have at this stage o A user with an OID account and OID Groups (enterprise roles) gets a SSO login form to identify himself when trying to access an ADF application (all pages being protected by ADF Security). o Once authenticated, he can navigate to the page if he has the necessary enterprise role (mapped to the application role set to protect the page).
  • 35. On each page, we only want the authorized UI components to be rendered.
  • 36. UI components level Rendering or not a UI component (button, panel etc..) JSF Expression Language (EL) CurrentPeriod <= (le for less or equal) Period #{securityContext.userInRole[‘rolename’]} for “static” role We will see later how we use EL to apply per project security
  • 37. Enabling Per Project & Module Security in ADF
  • 38. Before proceeding let’s see a normal navigation use case demo of the application
  • 39. Oracle Single Sign-On Login Form Oracle Infrastructure 10.1.4 Default Login Form Customized with our logo. We could (& should) write a custom Login Form
  • 40. List of Projects for which the user is entitled to at least one Application Module Was done with ADF 10g, 11g was not yet released. Currently being upgraded to 11g Last Project accessed by the User in last session
  • 41. List of Modules to which the user is entitled to on the selected Project Was done with ADF 10g, 11g was not yet released. Being upgraded to 11g
  • 42. User can switch Project Context Within the Same Module Module Ex: Button rendered or not depending on User’s rights on this specific Project
  • 44. Oracle Reports integration (Report TaskFlow) Report URL not displayed Oracle Report Parameter Form
  • 45. What we do (Guideline only. To Show extensibility/flexibility of the Framework) 1. User Login is fetched from ADF Context. 2. From a “Project List” module and a “Project Switcher” Taskflow, a selected Project is set in the database. Any direct access to Module takes the Project from the database. 3. When accessing an application we store in the AM Session our context parameters: Project Code, User Login, Module Code,etc.. 4. Module Access Right for Project is checked from the database (in case Module accessed directly via Module URL) 5. Database Client Identifier & Module Environment are set in the Database for Auditing purpose & other needs.
  • 46. 6. A “Module access” audit event is logged in the Database 7. When a page is accessed, session parameters are stored (if not already done) in a Session bean. 8. User’s Privileges Codes for Module/Project is fetched from the Security Database and stored in HTTP session as a Map. 9. Bind Variables on our View Objects (VOs) are automatically replaced by our parameters value to filter data at VO level when VOs are executed. 10. We have a session bean method (SecurityScope.userinRole) that is used in EL to check Privileges from our HTTP session Map to Render or not a Component.
  • 47. Normal EL Expression to check from static role #{securityContext.userInRole[‘Role Name']} Custom EL Expression to check from Database privileges Codes assigned to Role #{securityScope.userInRole[‘Priv List Code']}
  • 49. ADF Framework Base Classes TaskFlow Workspace GCCCommon Workspace Reusability Task Flows, Libraries, Page templates.. adf-extensions project gcc-security project gcc-template Project GCC Apps Module Task Flows …… …… …… …… Application Modules Workspaces Task Flows Workspaces GCC Libraries
  • 50. Oracle WebCenter Application Entry point (Portal) + Customization for tasks shortcuts (Approving Requests etc..) Improve Application Structure using Catalogs Content Integration & Web 2.0 features (ex: Project Site Communications Module extended with Chat/Forum/Workspace) The Future Potential grounds for improvements Move to Oracle Access Manager (When Forms/Reports support it) & investigate/try to leverage Oracle Entitlement Server “Oracle Entitlements Server is a fine grained authorization engine that externalizes, unifies, and simplifies the management of complex entitlement policies” ADF Mobile Pervasiveness of our Applications (ex: allowing an approval anywhere on site)
  • 51. Non-Oracle Lucas Jellema, Andrejus Baranovski, Chris Muir Oracle Frank Nimphius, Grant Ronald, Steve Muench, Duncan Mills And more… ADF Experts bloggers Oracle Technology Network (OTN) ADF Code Corner JDev/ADF Forum Tutorials And more.. ADF books Our Main Resources
  • 52. ADF EMG • A place to discuss best practices and methodologies for JDeveloper ADF enterprise applications • Founded mid-2008, now 400+ members • Focus is Fusion Tech Stack (ADF Faces, ADF BC) • Sessions at ODTUG, OOW • Expert bloggers • Sub Groups: Expert Panel (Ex: Inter-Region communication Expert Panel, Security Expert Panel) http://groups.google.com/group/adf-methodology