AD, WLS & ADF in Harmony - SAGE Computing Services

advertisement
SAGE Computing Services
Consulting and customised training workshops
Active Directory Integration
AD, WLS & ADF in Harmony
(a case study)
Ray Tindall
Senior Systems Consultant
www.sagecomputing.com.au
Things have changed since 2006
Active Directory Integration
“OID & AD in Harmony?”
SSO
www.sagecomputing.com.au
Portal
Things have changed since 2006
Synchronisation of OID & AD
AD LDAP Provider
SSO Delegated Authentication
ADF Security
Forms
Windows Native Authentication with SSO
Kerberos with WLS
www.sagecomputing.com.au
Agenda Overview
Who, What &Why
The primary Goal
Resources & References
IBM
The Plan & The Path
Implementation
How we did it – How you can do it
Testing
Troubleshooting & Hints
Wrap up
Where are we now
IBM???
Who, What & Why
Who?
What?
The System
Why?
The Wishlist
www.sagecomputing.com.au
 Weblogic
SeamlessServer
& transparent
10.3.2.
 authentication
ADF 11.1.1.2. (login) against AD
 Authorisation
Active Directory
against AD
on Windows Server 2003
(Groups)
 Forms
(now 2008
to ADF
R2)interoperability
 Scope
Windows
to expand
workstations
with IE 7
The Primary Goal
www.sagecomputing.com.au
Resources & References
Administering the SPNEGO TAI:
Tips on using Kerberos service principal names
by Martin Lansche, IBM
Configuring Kerberos with Weblogic Server
by Faisal Khan, SecureZone
Troubleshooting Kerberos issues with Weblogic server
by Faisal Khan, SecureZone
Configuring WLS With MS Active Directory
by Chris Muir, SAGE Computing
Configuring a JDev 11g ADF Security app on standalone WLS against MS
Active Directory
by Chris Muir, SAGE Computing
This “is” 10.3.2 !
Oracle® Fusion Middleware Securing Oracle WebLogic Server, 11g Release 1
(10.3.1), 6 Configuring Single Sign-On with Microsoft Clients
www.sagecomputing.com.au
The Plan & The Path
Proof of Concept – DEV
New system on new infrastructure
Target Apps – DEV
WLS on VM – Snapshots
Risks:
Production AD only!
Load Balancing – PROD only
www.sagecomputing.com.au
How to Get There
Implementation Key Concepts
AD LDAP Provider
Kerberos with WLS
ADF Security
www.sagecomputing.com.au
How to Get There
Implementation Task Overview
Network & AD preparation
WLS AD Authentication
WLS Host Kerberos configuration
WLS Kerberos configuration
Clients (Browser/s) configuration
Apps (ADF Application) configuration
Test (with your favourite beverage at hand)
Troubleshoot (with your favourite beverage at hand)
www.sagecomputing.com.au
Environment Specifics
KDC server: OURKDC(.dtf.wa.gov.au)
Windows domain controller serving as Key Distribution Centre
Most doco (inc Official) implies to use IP but use DNS instead!
*The machine name URL will already exist in a Windows Domain, being
Default AD domain: dtf.wa.gov.au
HOST\machine.dtf.wa.gov.au,
as a Service Principal against the Machine
Computer
account
in AD. DTF.WA.GOV.AU
Kerberos
Realm:
At runtime
Kerberosofwill
derive the basis of the Service Principal from the
Uppercase
Domain
browser URL.
AD
wlskerberosadacc
obscurepwd
ADWLS
will find
andaccount:
default to the
HOST\ Service Principal/ and
try to use the
“User"
AD account
for WLS
& Service
to map Service
“computer”
account
insteadused
of finding
our Host
HTTP\
PrincipalPrincipal
and using
says justThe
usecredentials
simple machine
our WLSOfficial
“user” doco
AD account.
in yourname
Keytab will not match
NO! - by
Bad
idea; make it different and make it descriptive
the ticket returned
AD.
WLS Virtual Host DNS: ourvirtualwls(.dtf.wa.gov.au)
Bottom line: ignoring the protocol HTTP\, the URL of the Service Principal that
URL you will use to access your Web Applications
will be used to access your Web Applications should exist in AD only once!
Also serves as the basis of the Service Principal
Official doco doesn't even mention Virtual Host as consideration
BUT! - Critical for same Domain Windows WLS host*
& good idea in other cases anyway.
www.sagecomputing.com.au
Network & AD preparation
Implementation Steps:
1. Create Virtual Host DNS
2. Create WLS Service AD “user” account
3. Map SPN (Service Principal) with setspn
& generate Keytab with ktab
Linux – use ktpass instead
www.sagecomputing.com.au
Implementation Steps:
1. Create Virtual Host DNS
2. Create WLS Service AD “user” account
3. Map SPN (Service Principal) with setspn
& generate Keytab with ktab
Linux – use ktpass instead
Implementation Steps:
Not
computer!
1. Create Virtual Host DNS
2. Create WLS Service AD “user” account
Not strictly
needed with
JDK 1.5+
3. Map SPN (Service Principal) with setspn
& generate Keytab with ktab
Linux – use ktpass instead
Implementation Steps:
1. Create Virtual Host DNS
2. Create WLS Service AD “user” account
Get it right.
Not validated!
3. Map SPN (Service Principal) with setspn
& generate Keytab with ktab
Linux – use ktpass instead
Must be your
user service
account.
WLS AD Authentication
Implementation Steps:
4. Create WLS AD Authentication Provider
WLS LDAPAuthenticator
5. Test Authentication Provider
Configuring a JDev 11g ADF Security app
on standalone WLS against MS Active Directory
by Chris Muir, SAGE Computing
www.sagecomputing.com.au
Implementation Steps:
4. Create WLS AD Authentication Provider
WLS LDAPAuthenticator
Remove?
5. Test Authentication Provider
Remove!
Configuring a JDev 11g ADF Security app
on standalone WLS against MS Active Directory
by Chris Muir, SAGE Computing
Implementation Steps:
4. Create WLS AD Authentication Provider
WLS LDAPAuthenticator
5. Test Authentication Provider
Configuring a JDev 11g ADF Security app
on standalone WLS against MS Active Directory
by Chris Muir, SAGE Computing
WLS Host Kerberos configuration
Implementation Steps:
6. Create krb5.ini
7. Copy Keytab to WLS
for Linux ftp – note this is a binary file
8. Test Host Kerberos with kinit
Go no further if this no worky!
www.sagecomputing.com.au
Implementation Steps:
6. Create krb5.ini
Not strictly
needed with
JDK 1.5+
7. Copy Keytab to WLS
for Linux ftp – note this is a binary file
8. Test Host Kerberos with kinit
Case
sensitive
Implementation Steps:
6. Create krb5.ini
7. Copy Keytab to WLS
for Linux ftp – note this is a binary file
8. Test Host Kerberos with kinit
Implementation Steps:
6. Create krb5.ini
7. Copy Keytab to WLS
for Linux ftp – note this is a binary file
8. Test Host Kerberos with kinit
WLS Kerberos configuration
Implementation Steps:
9. Create krb5Login.conf
10. Add WLS Kerberos startup parameters
startWebLogic.cmd
11. Create Identity Assertion Provider
WLS NegotiateIdentityAsserter
www.sagecomputing.com.au
Implementation Steps:
9. Create krb5Login.conf
10. Add WLS Kerberos startup parameters
startWebLogic.cmd
11. Create Identity Assertion Provider
WLS NegotiateIdentityAsserter
Implementation Steps:
9. Create krb5Login.conf
10. Add WLS Kerberos startup parameters
startWebLogic.cmd
11. Create Identity Assertion Provider
WLS NegotiateIdentityAsserter
Implementation Steps:
9. Create krb5Login.conf
10. Add WLS Kerberos startup parameters
startWebLogic.cmd
11. Create Identity Assertion Provider
WLS NegotiateIdentityAsserter
Client (Browser/s) configuration
Implementation Steps:
12. Configure Windows Native Authentication
Auto logon for Intranet
IE
Firefox
…
www.sagecomputing.com.au
Implementation Steps:
12. Configure Windows Native Authentication
Auto logon for Intranet
IE
Firefox
…
Implementation Steps:
12. Configure Windows Native Authentication
Auto logon for Intranet
IE
Firefox
…
Apps (ADF Application) configuration
Implementation Steps:
13 steps; hmmm; is this a sign?
13. Configure ADF Application Security
Run - Configure ADF Security Wizard
Enterprise Roles (AD)  Application Roles (ADF)
Web.xml
<login-config>
<auth-method>CLIENT-CERT
www.sagecomputing.com.au
Implementation Steps:
13. Configure ADF Application Security
Run - Configure ADF Security Wizard
Enterprise Roles (AD)  Application Roles (ADF)
Web.xml
<login-config>
<auth-method>CLIENT-CERT
Testing
LDAP Provider
Kinit (with keytab)
Bringing it all together
ADF Application
Transparent login
www.sagecomputing.com.au
Wha…?
I followed the
Instructions!
LDAP Provider
Kinit (with keytab)
Bringing it all together
ADF Application
Transparent login
Troubleshooting
When things just don’t go your way!
WLS Security debug
WLS log level – standard out
Utilities checks (with verbose debug)
Check AD user account
inc SPN mapping
Config files
krb5.ini krb5Login.conf config.xml
AD LDAP Provider
base DNs, filters, search scopes
Wireshark... – in extreme cases
www.sagecomputing.com.au
When things just don’t go your way!
WLS Security debug
WLS log level – standard out
Utilities checks (with verbose debug)
Check AD user account
inc SPN mapping
Config files
Due to
krb5.ini krb5Login.conf config.xml
CLIENT-CERT,FORM
AD LDAP Provider
base DNs, filters, search scopes
Wireshark... – in extreme cases
+ standard out
log level
>= notice
When things just don’t go your way!
Don’t be fooled.
Normal!
WLS Security debug
WLS log level – standard out
Utilities checks (with verbose debug)
Check AD user account
inc SPN mapping
Best to have
1 only
Config files
krb5.ini krb5Login.conf config.xml
AD LDAP Provider
base DNs, filters, search scopes
Wireshark... – in extreme cases
Success
Softerra
Server
LDAP
AdminBrowser
Pack
When things just don’t go your way!
WLS Security debug
WLS log level – standard out
Utilities checks (with verbose debug)
Check AD user account
inc SPN mapping
Config files
krb5.ini krb5Login.conf config.xml
AD LDAP Provider
base DNs, filters, search scopes
Wireshark... – in extreme cases
When things just don’t go your way!
No krb5.
prior to JDK 6.0
WLS Security debug
Include prior
options
WLS log level – standard out
Utilities checks (with verbose debug)
Check AD user account
inc SPN mapping
Linux?
ConfigHasfiles
this changed?
krb5.ini krb5Login.conf config.xml
AD LDAP Provider
base DNs, filters, search scopes
Wireshark... – in extreme cases
Case sensitivity
Syntax
When things just don’t go your way!
WLS Security debug
WLS log level – standard out
Utilities checks (with verbose debug)
Check AD user account
inc SPN mapping
Config files
krb5.ini krb5Login.conf config.xml
AD LDAP Provider
base DNs, filters, search scopes
Wireshark... – in extreme cases
When things just don’t go your way!
WLS Security debug
Debug = java kinit
WLS log level – standard out
Utilities checks (with verbose debug)
Check AD user account
inc SPN mapping
Config files
krb5.ini krb5Login.conf config.xml
AD LDAP Provider
Success
base DNs, filters, search scopes
Wireshark... – in extreme cases
Checksum failed!
?
Traps
Naming & Case sensitivity
Don’t name AD account same as WLS Host
Mind case sensitivity & syntax (especially krb5.ini)
Must be only “one” SPN URL in AD
ldifde to check for duplicates
setspn –D to remove bad or duplicate SPNs
Kerberos / WLS can’t find config files (krb5.ini keytab krb5Login.conf)
Know & use default locations for them
Try absolute paths where referenced in dependant config
Try WLS/Host reboot
Order of WLS Providers
Asserter followed by LDAP Provider then defaults
Use Virtual URL - not host URL
Configure 2nd DNS – not DNS alias
Clear Browser cache/s
Clock Skew - AD, WLS, Client within 2mins
Does host need WA Daylight Saving patch
www.sagecomputing.com.au
Note: Does not
require WLS VH
definition
Hints & Tips
WLS / Host reboots at critical points
Check full range of options for utilities (kinit ktab klist)
java core of these for verbose debug output
Use CLIENT-CERT only in ADF Security for troubleshooting
CLIENT-CERT,FORM may not produce debug message output
Use client local hosts in lieu of no DNS
Also useful to test specific node in Load Balanced scenario
Load Balanced / Proxy scenario - same keytab / setup on each node
DNS/Virtual URL (for SPN) is the URL the LBR/Proxy routes
Performance hits
Mind recursive & deep Group searching
Check & turn off all DEBUG once happy
Multiple technologies – look outside the Oracle box
Linux – ktpass changes AD account
Name changes to HTTP/former_name
Mind this for kinit & krb5Login.conf setup
www.sagecomputing.com.au
Job Done!
“Celebrate”
www.sagecomputing.com.au
Current Status
Proof of Concept – DEV
TEST
UAT
PROD
Go Live – coming weekend
www.sagecomputing.com.au
Friends?
No Problem!
SAGE Computing Services
Consulting and customised training workshops
Thankyou!
Questions?
Peace
&
Harmony
Presentations are available from our website:
www.sagecomputing.com.au
ray@sagecomputing.com.au
Download