SlideShare uma empresa Scribd logo
1 de 33
5/13/14 Apereo Miami 2014 1
How to CASify PeopleSoft, and
integrating CAS and ADFS
Byran Wooten: bryan.wooten@utah.edu
John Gasper: jgasper@unicon.net
Misagh Moayyed: mmoayyed@unicon.net
5/13/14 Apereo Miami 2014 2
•We will cover the integration and configuration points
to easily CASify PeopleSoft with minimal custom.
•We will also review several options for integrating your
CAS Server with Microsoft's ADFS Server. This is
particularly helpful if you are an Office 365 customer or
you have client applications that utilized Windows
Identity Foundation (WIF) and want to integrate the SSO
experience.
This Session
5/13/14
5/13/14
Unicon: John Gasper, Misagh Moayyed
•Members of IAM practice at Unicon
•Emphasis on CAS, Shibboleth, Grouper, etc
•Provide commercial support through OSS program
5/13/14 5Apereo Miami 2014
How to
ify
5/13/14 Apereo Miami 2014 6
Objective
CASify Peoplesoft web application via the Java
CAS client
•Populate REMOTE_USER with CAS principal id
•Peoplecode function to authenticate
Request.RemoteUser into Peoplesoft
5/13/14 Apereo Miami 2014 7
1.Add CAS filters to the Weblogic web.xml
2.Add logic to Signon PeopleCode (FUNCLIBLDAP)
3.Configure Signon PeopleCode
Only 3 steps are required.
So, it really is easy!
5/13/14 Apereo Miami 2014 8
•Add CAS Filters to web.xml in this location:
/<peoplesoft-webapp-directory>/PORTAL/WEB-INF
•Don’t forget to add the CAS client jar to the classpath:
/<peoplesoft-webapp-directory>/PORTAL/WEB-INF/lib/cas-client-core-3.3.1.jar
You may need to add the CAS Certificate to the
•Peoplesoft keystore:
/ps/pltest/weblogic/jdk150/jre/lib/security/cacerts
Step 1
5/13/14 Apereo Miami 2014 9
5/13/14 Apereo Miami 2014 10
Step 2:
Modify Signon PeopleCode
CAS_AUTHENTICATION()
5/13/14 Apereo Miami 2014 11
•A default “guest” user must be created with the most basic permissions to be attached to
the CAS Web Profile. (Allow Public Users = Checked)
•CAS_AUTHENTICATION needs be enabled through signon peoplecode. The function uses the remote user in the
request headers as a authenticated user and retrieves the appropriate distinguished name from the directory.
•Valid user role that has the necessary permissions required to execute and invoke the Peoplecode function.
•The profile must be activated in PeopleSoft under the WebProfile setting, inside
the configuration.properties
•If all goes well, &global_DN is set and setAuthenticationResult() sets the user context to the correct
userID.
Peoplesoft WebProfile
5/13/14 Apereo Miami 2014 12
Function CAS_AUTHENTICATION()
&logger = initLogger();
&logger.info("CAS_AUTHENTICATION ============ Start of CAS_AUTHENTICATION =============
(" | %SignonUserId | ")");
printRequestHeaders();
If &bConfigRead = False Then
getLDAPConfig();
End-If;
&cas_result = %Request.RemoteUser;
If &cas_result <> "" Then
/* User is authenticated, log them into PeopleSoft */
&logger.info(" CAS_AUTHENTICATION - " | "Remote user = " | &cas_result | " logged in
by CAS_AUTHENTICATION");
SetAuthenticationResult( True, Upper(&cas_result), "", False);
&authMethod = "CAS";
&CAS_userid = &cas_result;
&sql_PSOPRDEFN = CreateSQL("Select FAILEDLOGINS from PSOPRDEFN where OPRID=:1",
Upper(&cas_result));
&ret = &sql_PSOPRDEFN.Fetch(&failedLogin);
If (&failedLogin <> 0) Then
SQLExec("update PSOPRDEFN set FAILEDLOGINS=0 where OPRID=:1", Upper(&cas_result));
End-If;
CAS_AUTHENTICATION()
5/13/14 Apereo Miami 2014 13
/* set &global_DN for profilesync */
For &J1 = 1 To &authMaps.Len
&DNs = CreateArrayRept("", 0);
If (idToDN(&cas_result, &DNs, &authMaps [&J1])) Then
For &I1 = 1 To &DNs.Len
/* Take the first DN found as the &global_DN */
&global_DN = &DNs [&I1];
&idxAuthMap = &J1;
/** &global_DN = "unid=" | &cas_result |
",ou=people,o=utah.edu"; **/
&logger.info("CAS_AUTHENTICATION - ***** &authMethod =
CAS ***** ===== (" | &cas_result | ")/" | &global_DN | "/" |
&authMaps [&J1].getAuthMapID());
Return;
End-For;
End-If;
End-For;
End-If;
&logger.info("CAS_AUTHENTICATION - Did not authenticate by
CAS_AUTHENTICATION (" | %SignonUserId | ")");
End-Function;
5/13/14 Apereo Miami 2014 14
Step 3
Configure Signon Peoplecode
Note: “Invoke As” fields must be set to the credentials of the user created inside the web
profile to execute the peoplecode function. Ensure that both LDAP authentication and
profile sync are turned on, and “Exec Auth Fail” is checked for both.
5/13/14 Apereo Miami 2014 15
In the WebProfile, specify a new signout.html for signout
•Place the file at /<peoplesoft-directory>/PORTAL.war/WEB-INF/psftdocs/CS89PS
•Edit the file:
Signout
5/13/14 Apereo Miami 2014 16
•Ensure CAS_AUTHENTICATION() function logs activity to file
•Test webprofile using cmd=start:
https://sys.peoplesoft.edu:8703/psp/CS89PS/?cmd=start&languageCd=ENG
Log into peoplesoft using the account configured to invoke
•CAS_AUTHENTICATION()
•Almost ALL changes require a PeopleSoft web application restart
Tips & Suggestions
5/13/14 Apereo Miami 2014 17
•Deep linking vs. Peoplesoft “caching”
•Peoplesoft vs. CAS account mapping
•Single signout
Issues & Troubleshooting
5/13/14 Apereo Miami 2014 18
•Microsoft ADFS is yet another SSO
environment that competes in the same
spaces as CAS and Shibboleth.
•Why would you integrated ADFS with CAS?
lOffice 365?
lPreviously developed ASP.NET/Windows
Identity Foundation apps that utilize an
STS, like ADFS.
Integrating CAS and
Microsoft ADFS
5/13/14 Apereo Miami 2014 19
•CAS as an RP: Fronting CAS with ADFS
•CASifying ADFS: Front ADFS with CAS
•ADFS as an SP: Front ADFS with CAS*
Integrating CAS and
Microsoft ADFS
5/13/14 Apereo Miami 2014 20
Front CAS with ADFS
5/13/14 Apereo Miami 2014 21
Front CAS with ADFS
5/13/14 Apereo Miami 2014 22
Front CAS with ADFS
pom.xml
<!-- ADFS Integration -->
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-server-support-
wsfederation</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
5/13/14 Apereo Miami 2014 23
Front CAS with ADFS
spring-config/wsfederation.xml
<bean id="wsFedConfig" class="net.unicon.cas.support.wsfederation.WsFederationConfiguration">
<property name="identityProviderIdentifier" value="http://adfs.example.org/adfs/services/trust" />
<property name="identityProviderUrl" value="https://adfs.example.org/adfs/ls/" />
<property name="identityAttribute" value="upn" />
<property name="relyingPartyIdentifier" value="urn:federation:cas" />
<property name="tolerance" value="60000" />
<property name="attributeMutator">
<bean class="org.example.cas.support.wsfederation.WsFedAttributeMutatorImpl" />
</property>
<property name="signingCertificateFiles">
<list>
<value>file:/etc/cas/signing.cer</value>
</list>
</property>
</bean>
5/13/14 Apereo Miami 2014 24
Front CAS with ADFS
login-webflow.xml
<action-state id="wsFederationAction">
<evaluate expression="wsFederationAction" />
<transition on="success" to="sendTicketGrantingTicket" />
<transition on="error" to="ticketGrantingTicketExistsCheck" />
</action-state>
<view-state id="WsFederationRedirect"
view="externalRedirect:${WsFederationIdentityProviderUrl}"/>
5/13/14 Apereo Miami 2014 25
Front CAS with ADFS
5/13/14 Apereo Miami 2014 26
Front CAS with ADFS
5/13/14 Apereo Miami 2014 27
Front CAS with ADFS
5/13/14 Apereo Miami 2014 28
Front CAS with ADFS
Attribute Mutator: clean-up or map your attributes
coming from ADFS, but before they are released.
attributes.put("upn",
attributes.get("upn").toString().replace("@example.org", ""));
attributeMapping(attributes, "surname", "LastName");
attributeMapping(attributes, "givenname", "FirstName");
attributeMapping(attributes, "Group", "Groups");
attributeMapping(attributes, "employeeNumber", "UDC_IDENTIFIER");
5/13/14 Apereo Miami 2014 29
CASifying ADFS
Utilizes .NET CAS Client and ClearPass:
1) Drop in the DotNetCasClient.dll (v1.0.1).
2) Configure web.config.
3) Add code to FormsSignIn.aspx.cs.
5/13/14 Apereo Miami 2014 30
CASifying ADFS
Utilizes .NET CAS Client and ClearPass:
Username=Page.User.Identity.Name;
proxyTicket =
CasAuthentication.GetProxyTicketIdFor(ClearPassUrl);
clearPassRequest = ClearPassUrl + "?" +
ArtifactParameterName + "=" + proxyTicket + "&" +
ServiceParameterName + "=" + ClearPassUrl;
Password = XmlUtils.GetTextForElement(clearPassResponse,
"cas:credentials");
SignIn(Username, Password);
5/13/14 Apereo Miami 2014 31
CASifying ADFS
This may or may not work on ADFS on Windows
Server 2012 R2.
The .cs files are embedded in
C:WindowsadfsMicrosoft.IdentityServer.Web.dll
Visual Studio should allow you to alter the files.
5/13/14 Apereo Miami 2014 32
ADFS as an SP
Theoretically, we can use CAS's Google
Apps/SAML 2.0 support to connect to ADFS.
Pros: No significant mods to ADFS or CAS.
Let me know if you are interested in
collaborating on this.
https://github.com/unicon/cas-adfs-integration

Mais conteúdo relacionado

Mais procurados

Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000Cisco Canada
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Seung-Hoon Baek
 
Introduction to OPA
Introduction to OPAIntroduction to OPA
Introduction to OPAKnoldus Inc.
 
4.4.1.2 packet tracer configure ip ac ls to mitigate attacks-instructor
4.4.1.2 packet tracer   configure ip ac ls to mitigate attacks-instructor4.4.1.2 packet tracer   configure ip ac ls to mitigate attacks-instructor
4.4.1.2 packet tracer configure ip ac ls to mitigate attacks-instructorSalem Trabelsi
 
Cisco CCNA-CCNP IP SLA Configuration
Cisco CCNA-CCNP IP SLA ConfigurationCisco CCNA-CCNP IP SLA Configuration
Cisco CCNA-CCNP IP SLA ConfigurationHamed Moghaddam
 
802.11r Explained.
802.11r Explained. 802.11r Explained.
802.11r Explained. Ajay Gupta
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)rootfs32
 
Summit 16: ETSI NFV Interface and Architecture Overview
Summit 16: ETSI NFV Interface and Architecture OverviewSummit 16: ETSI NFV Interface and Architecture Overview
Summit 16: ETSI NFV Interface and Architecture OverviewOPNFV
 
Introduction to Segment Routing
Introduction to Segment RoutingIntroduction to Segment Routing
Introduction to Segment RoutingMyNOG
 
Looking ahead at PostgreSQL 15
Looking ahead at PostgreSQL 15Looking ahead at PostgreSQL 15
Looking ahead at PostgreSQL 15Jonathan Katz
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹InfraEngineer
 
network performance measurement using Iperf
network performance measurement using Iperfnetwork performance measurement using Iperf
network performance measurement using Iperfshravankumar bhat
 
OAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPowerOAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPowerShiu-Fun Poon
 
Building Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPABuilding Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPALDAPCon
 
Microsoft Offical Course 20410C_09
Microsoft Offical Course 20410C_09Microsoft Offical Course 20410C_09
Microsoft Offical Course 20410C_09gameaxt
 
LoRaWAN class module and subsystem
LoRaWAN class module and subsystemLoRaWAN class module and subsystem
LoRaWAN class module and subsystemJian-Hong Pan
 

Mais procurados (20)

Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
Subscriber Traffic & Policy Management (BNG) on the ASR9000 & ASR1000
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
 
Introduction to OPA
Introduction to OPAIntroduction to OPA
Introduction to OPA
 
4.4.1.2 packet tracer configure ip ac ls to mitigate attacks-instructor
4.4.1.2 packet tracer   configure ip ac ls to mitigate attacks-instructor4.4.1.2 packet tracer   configure ip ac ls to mitigate attacks-instructor
4.4.1.2 packet tracer configure ip ac ls to mitigate attacks-instructor
 
Cisco CCNA-CCNP IP SLA Configuration
Cisco CCNA-CCNP IP SLA ConfigurationCisco CCNA-CCNP IP SLA Configuration
Cisco CCNA-CCNP IP SLA Configuration
 
Configuration DHCP
Configuration DHCPConfiguration DHCP
Configuration DHCP
 
NETCONF YANG tutorial
NETCONF YANG tutorialNETCONF YANG tutorial
NETCONF YANG tutorial
 
Ldap introduction (eng)
Ldap introduction (eng)Ldap introduction (eng)
Ldap introduction (eng)
 
802.11r Explained.
802.11r Explained. 802.11r Explained.
802.11r Explained.
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)
 
BGP Update Source
BGP Update Source BGP Update Source
BGP Update Source
 
Summit 16: ETSI NFV Interface and Architecture Overview
Summit 16: ETSI NFV Interface and Architecture OverviewSummit 16: ETSI NFV Interface and Architecture Overview
Summit 16: ETSI NFV Interface and Architecture Overview
 
Introduction to Segment Routing
Introduction to Segment RoutingIntroduction to Segment Routing
Introduction to Segment Routing
 
Looking ahead at PostgreSQL 15
Looking ahead at PostgreSQL 15Looking ahead at PostgreSQL 15
Looking ahead at PostgreSQL 15
 
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
[MeetUp][1st] 오리뎅이의_쿠버네티스_네트워킹
 
network performance measurement using Iperf
network performance measurement using Iperfnetwork performance measurement using Iperf
network performance measurement using Iperf
 
OAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPowerOAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPower
 
Building Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPABuilding Open Source Identity Management with FreeIPA
Building Open Source Identity Management with FreeIPA
 
Microsoft Offical Course 20410C_09
Microsoft Offical Course 20410C_09Microsoft Offical Course 20410C_09
Microsoft Offical Course 20410C_09
 
LoRaWAN class module and subsystem
LoRaWAN class module and subsystemLoRaWAN class module and subsystem
LoRaWAN class module and subsystem
 

Semelhante a How to CASifying PeopleSoft and Integrating CAS and ADFS

jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013Kiril Iliev
 
FamilySearch Reference Client
FamilySearch Reference ClientFamilySearch Reference Client
FamilySearch Reference ClientDallan Quass
 
ASP.Net Presentation Part3
ASP.Net Presentation Part3ASP.Net Presentation Part3
ASP.Net Presentation Part3Neeraj Mathur
 
PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...
PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...
PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...Puppet
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 
Spca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_librariesSpca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_librariesNCCOMMS
 
Implementation of GUI Framework part3
Implementation of GUI Framework part3Implementation of GUI Framework part3
Implementation of GUI Framework part3masahiroookubo
 
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
TechDays 2013 Jari Kallonen: What's New WebForms 4.5TechDays 2013 Jari Kallonen: What's New WebForms 4.5
TechDays 2013 Jari Kallonen: What's New WebForms 4.5Tieturi Oy
 
Summit2014 topic 0066 - 10 enhancements that require 10 lines of code
Summit2014 topic 0066 - 10 enhancements that require 10 lines of codeSummit2014 topic 0066 - 10 enhancements that require 10 lines of code
Summit2014 topic 0066 - 10 enhancements that require 10 lines of codeAngel Borroy López
 
Passwords suck, but centralized proprietary services are not the answer
Passwords suck, but centralized proprietary services are not the answerPasswords suck, but centralized proprietary services are not the answer
Passwords suck, but centralized proprietary services are not the answerFrancois Marier
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformMicrosoft 365 Developer
 
SharePoint 2010 authentications
SharePoint 2010 authenticationsSharePoint 2010 authentications
SharePoint 2010 authenticationsWyngate Solutions
 
2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...
2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...
2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...Andrey Devyatkin
 
How to convert custom plsql to web services-Soap OR Rest
How to convert custom plsql to web services-Soap OR RestHow to convert custom plsql to web services-Soap OR Rest
How to convert custom plsql to web services-Soap OR Restshravan kumar chelika
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSRobert Nyman
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Atlassian
 
Aspnet 4 new features
Aspnet 4 new featuresAspnet 4 new features
Aspnet 4 new featuresErkan BALABAN
 

Semelhante a How to CASifying PeopleSoft and Integrating CAS and ADFS (20)

jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
 
FamilySearch Reference Client
FamilySearch Reference ClientFamilySearch Reference Client
FamilySearch Reference Client
 
ASP.Net Presentation Part3
ASP.Net Presentation Part3ASP.Net Presentation Part3
ASP.Net Presentation Part3
 
PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...
PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...
PuppetConf 2016: The Long, Twisty Road to Automation: Implementing Puppet at ...
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Spca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_librariesSpca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_libraries
 
Implementation of GUI Framework part3
Implementation of GUI Framework part3Implementation of GUI Framework part3
Implementation of GUI Framework part3
 
Old WP REST API, New Tricks
Old WP REST API, New TricksOld WP REST API, New Tricks
Old WP REST API, New Tricks
 
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
TechDays 2013 Jari Kallonen: What's New WebForms 4.5TechDays 2013 Jari Kallonen: What's New WebForms 4.5
TechDays 2013 Jari Kallonen: What's New WebForms 4.5
 
Php frameworks
Php frameworksPhp frameworks
Php frameworks
 
Summit2014 topic 0066 - 10 enhancements that require 10 lines of code
Summit2014 topic 0066 - 10 enhancements that require 10 lines of codeSummit2014 topic 0066 - 10 enhancements that require 10 lines of code
Summit2014 topic 0066 - 10 enhancements that require 10 lines of code
 
Passwords suck, but centralized proprietary services are not the answer
Passwords suck, but centralized proprietary services are not the answerPasswords suck, but centralized proprietary services are not the answer
Passwords suck, but centralized proprietary services are not the answer
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platform
 
SharePoint 2010 authentications
SharePoint 2010 authenticationsSharePoint 2010 authentications
SharePoint 2010 authentications
 
2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...
2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...
2020-02-20 - HashiTalks 2020 - HashiCorp Vault configuration as code via Hash...
 
How to convert custom plsql to web services-Soap OR Rest
How to convert custom plsql to web services-Soap OR RestHow to convert custom plsql to web services-Soap OR Rest
How to convert custom plsql to web services-Soap OR Rest
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJS
 
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012 Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
Plugins on OnDemand with Remote Apps - Atlassian Summit 2012
 
Monkey man
Monkey manMonkey man
Monkey man
 
Aspnet 4 new features
Aspnet 4 new featuresAspnet 4 new features
Aspnet 4 new features
 

Último

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
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...Zilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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.pptxRustici Software
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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 FMESafe Software
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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 WorkerThousandEyes
 

Último (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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 New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+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...
 
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
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 

How to CASifying PeopleSoft and Integrating CAS and ADFS

  • 1. 5/13/14 Apereo Miami 2014 1 How to CASify PeopleSoft, and integrating CAS and ADFS Byran Wooten: bryan.wooten@utah.edu John Gasper: jgasper@unicon.net Misagh Moayyed: mmoayyed@unicon.net
  • 2. 5/13/14 Apereo Miami 2014 2 •We will cover the integration and configuration points to easily CASify PeopleSoft with minimal custom. •We will also review several options for integrating your CAS Server with Microsoft's ADFS Server. This is particularly helpful if you are an Office 365 customer or you have client applications that utilized Windows Identity Foundation (WIF) and want to integrate the SSO experience. This Session
  • 4. 5/13/14 Unicon: John Gasper, Misagh Moayyed •Members of IAM practice at Unicon •Emphasis on CAS, Shibboleth, Grouper, etc •Provide commercial support through OSS program
  • 5. 5/13/14 5Apereo Miami 2014 How to ify
  • 6. 5/13/14 Apereo Miami 2014 6 Objective CASify Peoplesoft web application via the Java CAS client •Populate REMOTE_USER with CAS principal id •Peoplecode function to authenticate Request.RemoteUser into Peoplesoft
  • 7. 5/13/14 Apereo Miami 2014 7 1.Add CAS filters to the Weblogic web.xml 2.Add logic to Signon PeopleCode (FUNCLIBLDAP) 3.Configure Signon PeopleCode Only 3 steps are required. So, it really is easy!
  • 8. 5/13/14 Apereo Miami 2014 8 •Add CAS Filters to web.xml in this location: /<peoplesoft-webapp-directory>/PORTAL/WEB-INF •Don’t forget to add the CAS client jar to the classpath: /<peoplesoft-webapp-directory>/PORTAL/WEB-INF/lib/cas-client-core-3.3.1.jar You may need to add the CAS Certificate to the •Peoplesoft keystore: /ps/pltest/weblogic/jdk150/jre/lib/security/cacerts Step 1
  • 10. 5/13/14 Apereo Miami 2014 10 Step 2: Modify Signon PeopleCode CAS_AUTHENTICATION()
  • 11. 5/13/14 Apereo Miami 2014 11 •A default “guest” user must be created with the most basic permissions to be attached to the CAS Web Profile. (Allow Public Users = Checked) •CAS_AUTHENTICATION needs be enabled through signon peoplecode. The function uses the remote user in the request headers as a authenticated user and retrieves the appropriate distinguished name from the directory. •Valid user role that has the necessary permissions required to execute and invoke the Peoplecode function. •The profile must be activated in PeopleSoft under the WebProfile setting, inside the configuration.properties •If all goes well, &global_DN is set and setAuthenticationResult() sets the user context to the correct userID. Peoplesoft WebProfile
  • 12. 5/13/14 Apereo Miami 2014 12 Function CAS_AUTHENTICATION() &logger = initLogger(); &logger.info("CAS_AUTHENTICATION ============ Start of CAS_AUTHENTICATION ============= (" | %SignonUserId | ")"); printRequestHeaders(); If &bConfigRead = False Then getLDAPConfig(); End-If; &cas_result = %Request.RemoteUser; If &cas_result <> "" Then /* User is authenticated, log them into PeopleSoft */ &logger.info(" CAS_AUTHENTICATION - " | "Remote user = " | &cas_result | " logged in by CAS_AUTHENTICATION"); SetAuthenticationResult( True, Upper(&cas_result), "", False); &authMethod = "CAS"; &CAS_userid = &cas_result; &sql_PSOPRDEFN = CreateSQL("Select FAILEDLOGINS from PSOPRDEFN where OPRID=:1", Upper(&cas_result)); &ret = &sql_PSOPRDEFN.Fetch(&failedLogin); If (&failedLogin <> 0) Then SQLExec("update PSOPRDEFN set FAILEDLOGINS=0 where OPRID=:1", Upper(&cas_result)); End-If; CAS_AUTHENTICATION()
  • 13. 5/13/14 Apereo Miami 2014 13 /* set &global_DN for profilesync */ For &J1 = 1 To &authMaps.Len &DNs = CreateArrayRept("", 0); If (idToDN(&cas_result, &DNs, &authMaps [&J1])) Then For &I1 = 1 To &DNs.Len /* Take the first DN found as the &global_DN */ &global_DN = &DNs [&I1]; &idxAuthMap = &J1; /** &global_DN = "unid=" | &cas_result | ",ou=people,o=utah.edu"; **/ &logger.info("CAS_AUTHENTICATION - ***** &authMethod = CAS ***** ===== (" | &cas_result | ")/" | &global_DN | "/" | &authMaps [&J1].getAuthMapID()); Return; End-For; End-If; End-For; End-If; &logger.info("CAS_AUTHENTICATION - Did not authenticate by CAS_AUTHENTICATION (" | %SignonUserId | ")"); End-Function;
  • 14. 5/13/14 Apereo Miami 2014 14 Step 3 Configure Signon Peoplecode Note: “Invoke As” fields must be set to the credentials of the user created inside the web profile to execute the peoplecode function. Ensure that both LDAP authentication and profile sync are turned on, and “Exec Auth Fail” is checked for both.
  • 15. 5/13/14 Apereo Miami 2014 15 In the WebProfile, specify a new signout.html for signout •Place the file at /<peoplesoft-directory>/PORTAL.war/WEB-INF/psftdocs/CS89PS •Edit the file: Signout
  • 16. 5/13/14 Apereo Miami 2014 16 •Ensure CAS_AUTHENTICATION() function logs activity to file •Test webprofile using cmd=start: https://sys.peoplesoft.edu:8703/psp/CS89PS/?cmd=start&languageCd=ENG Log into peoplesoft using the account configured to invoke •CAS_AUTHENTICATION() •Almost ALL changes require a PeopleSoft web application restart Tips & Suggestions
  • 17. 5/13/14 Apereo Miami 2014 17 •Deep linking vs. Peoplesoft “caching” •Peoplesoft vs. CAS account mapping •Single signout Issues & Troubleshooting
  • 18. 5/13/14 Apereo Miami 2014 18 •Microsoft ADFS is yet another SSO environment that competes in the same spaces as CAS and Shibboleth. •Why would you integrated ADFS with CAS? lOffice 365? lPreviously developed ASP.NET/Windows Identity Foundation apps that utilize an STS, like ADFS. Integrating CAS and Microsoft ADFS
  • 19. 5/13/14 Apereo Miami 2014 19 •CAS as an RP: Fronting CAS with ADFS •CASifying ADFS: Front ADFS with CAS •ADFS as an SP: Front ADFS with CAS* Integrating CAS and Microsoft ADFS
  • 20. 5/13/14 Apereo Miami 2014 20 Front CAS with ADFS
  • 21. 5/13/14 Apereo Miami 2014 21 Front CAS with ADFS
  • 22. 5/13/14 Apereo Miami 2014 22 Front CAS with ADFS pom.xml <!-- ADFS Integration --> <dependency> <groupId>net.unicon.cas</groupId> <artifactId>cas-server-support- wsfederation</artifactId> <version>1.0.0-SNAPSHOT</version> <scope>compile</scope> </dependency>
  • 23. 5/13/14 Apereo Miami 2014 23 Front CAS with ADFS spring-config/wsfederation.xml <bean id="wsFedConfig" class="net.unicon.cas.support.wsfederation.WsFederationConfiguration"> <property name="identityProviderIdentifier" value="http://adfs.example.org/adfs/services/trust" /> <property name="identityProviderUrl" value="https://adfs.example.org/adfs/ls/" /> <property name="identityAttribute" value="upn" /> <property name="relyingPartyIdentifier" value="urn:federation:cas" /> <property name="tolerance" value="60000" /> <property name="attributeMutator"> <bean class="org.example.cas.support.wsfederation.WsFedAttributeMutatorImpl" /> </property> <property name="signingCertificateFiles"> <list> <value>file:/etc/cas/signing.cer</value> </list> </property> </bean>
  • 24. 5/13/14 Apereo Miami 2014 24 Front CAS with ADFS login-webflow.xml <action-state id="wsFederationAction"> <evaluate expression="wsFederationAction" /> <transition on="success" to="sendTicketGrantingTicket" /> <transition on="error" to="ticketGrantingTicketExistsCheck" /> </action-state> <view-state id="WsFederationRedirect" view="externalRedirect:${WsFederationIdentityProviderUrl}"/>
  • 25. 5/13/14 Apereo Miami 2014 25 Front CAS with ADFS
  • 26. 5/13/14 Apereo Miami 2014 26 Front CAS with ADFS
  • 27. 5/13/14 Apereo Miami 2014 27 Front CAS with ADFS
  • 28. 5/13/14 Apereo Miami 2014 28 Front CAS with ADFS Attribute Mutator: clean-up or map your attributes coming from ADFS, but before they are released. attributes.put("upn", attributes.get("upn").toString().replace("@example.org", "")); attributeMapping(attributes, "surname", "LastName"); attributeMapping(attributes, "givenname", "FirstName"); attributeMapping(attributes, "Group", "Groups"); attributeMapping(attributes, "employeeNumber", "UDC_IDENTIFIER");
  • 29. 5/13/14 Apereo Miami 2014 29 CASifying ADFS Utilizes .NET CAS Client and ClearPass: 1) Drop in the DotNetCasClient.dll (v1.0.1). 2) Configure web.config. 3) Add code to FormsSignIn.aspx.cs.
  • 30. 5/13/14 Apereo Miami 2014 30 CASifying ADFS Utilizes .NET CAS Client and ClearPass: Username=Page.User.Identity.Name; proxyTicket = CasAuthentication.GetProxyTicketIdFor(ClearPassUrl); clearPassRequest = ClearPassUrl + "?" + ArtifactParameterName + "=" + proxyTicket + "&" + ServiceParameterName + "=" + ClearPassUrl; Password = XmlUtils.GetTextForElement(clearPassResponse, "cas:credentials"); SignIn(Username, Password);
  • 31. 5/13/14 Apereo Miami 2014 31 CASifying ADFS This may or may not work on ADFS on Windows Server 2012 R2. The .cs files are embedded in C:WindowsadfsMicrosoft.IdentityServer.Web.dll Visual Studio should allow you to alter the files.
  • 32. 5/13/14 Apereo Miami 2014 32 ADFS as an SP Theoretically, we can use CAS's Google Apps/SAML 2.0 support to connect to ADFS. Pros: No significant mods to ADFS or CAS. Let me know if you are interested in collaborating on this.

Notas do Editor

  1. 5