SlideShare a Scribd company logo
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

More Related Content

What's hot

워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018
워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018
워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018Amazon Web Services Korea
 
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
confluent
 
금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017
금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017
금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
Amazon Web Services Korea
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
Clément OUDOT
 
AWS AutoScaling
AWS AutoScalingAWS AutoScaling
AWS AutoScaling
Mahesh Raj
 
AWS - Autoscaling Fundamentals
AWS - Autoscaling FundamentalsAWS - Autoscaling Fundamentals
AWS - Autoscaling Fundamentals
Piyush Agrawal
 
Enterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSOEnterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSO
Oliver Mueller
 
COSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero TrustCOSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero Trust
Frans Sauermann
 
(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon Inspector(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon Inspector
Amazon Web Services
 
AWS WAF
AWS WAFAWS WAF
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
Amazon Web Services Japan
 
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
Amazon Web Services Korea
 
AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...
AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...
AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...
Amazon Web Services Korea
 
쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016
쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016
쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
Amazon Web Services Japan
 
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
Amazon Web Services Korea
 
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
AWSKRUG - AWS한국사용자모임
 
障害に備えたアーキテクチャを考える
障害に備えたアーキテクチャを考える障害に備えたアーキテクチャを考える
障害に備えたアーキテクチャを考える
Yoshii Ryo
 
Securityhub
SecurityhubSecurityhub
Securityhub
Richard Harvey
 

What's hot (20)

워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018
워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018
워크플로우 기반의 AWS 미디어서비스 활용하기::이상오::AWS Summit Seoul 2018
 
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
[Confluent] 실시간 하이브리드, 멀티 클라우드 데이터 아키텍처로 빠르게 혀...
 
금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017
금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017
금융권을 위한 AWS Direct Connect 기반 하이브리드 구성 방법 - AWS Summit Seoul 2017
 
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 - 김준형 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
 
AWS AutoScaling
AWS AutoScalingAWS AutoScaling
AWS AutoScaling
 
AWS - Autoscaling Fundamentals
AWS - Autoscaling FundamentalsAWS - Autoscaling Fundamentals
AWS - Autoscaling Fundamentals
 
Enterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSOEnterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSO
 
COSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero TrustCOSAC 2021 presentation - AWS Zero Trust
COSAC 2021 presentation - AWS Zero Trust
 
(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon Inspector(SEC324) NEW! Introducing Amazon Inspector
(SEC324) NEW! Introducing Amazon Inspector
 
AWS WAF
AWS WAFAWS WAF
AWS WAF
 
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
 
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트, AWS :: AWS Summit S...
 
AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...
AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...
AWS Direct Connect 및 VPN을 이용한 클라우드 아키텍쳐 설계:: Steve Seymour :: AWS Summit Seou...
 
쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016
쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016
쉽게 알아보는 AWS 클라우드 보안 :: 임기성 & 신용녀 :: AWS Summit Seoul 2016
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
[AWS Builders] AWS와 함께하는 클라우드 컴퓨팅
 
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
Service Mesh, 좀 더 쉽게 - AWS App Mesh :: 안주은 - AWS Community Day 2019
 
障害に備えたアーキテクチャを考える
障害に備えたアーキテクチャを考える障害に備えたアーキテクチャを考える
障害に備えたアーキテクチャを考える
 
Securityhub
SecurityhubSecurityhub
Securityhub
 

Similar to 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 2013
Kiril Iliev
 
FamilySearch Reference Client
FamilySearch Reference ClientFamilySearch Reference Client
FamilySearch Reference Client
Dallan Quass
 
ASP.Net Presentation Part3
ASP.Net Presentation Part3ASP.Net Presentation Part3
ASP.Net Presentation Part3
Neeraj 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 websites
Lindsay Holmwood
 
Spca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_librariesSpca2014 hillier 3rd party_javascript_libraries
Spca2014 hillier 3rd party_javascript_libraries
NCCOMMS
 
Implementation of GUI Framework part3
Implementation of GUI Framework part3Implementation of GUI Framework part3
Implementation of GUI Framework part3
masahiroookubo
 
Old WP REST API, New Tricks
Old WP REST API, New TricksOld WP REST API, New Tricks
Old WP REST API, New Tricks
WordPress Community Montreal
 
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
Tieturi Oy
 
Php frameworks
Php frameworksPhp frameworks
Php frameworks
Anil Kumar Panigrahi
 
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
Angel 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 answer
Francois 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 platform
Microsoft 365 Developer
 
SharePoint 2010 authentications
SharePoint 2010 authenticationsSharePoint 2010 authentications
SharePoint 2010 authentications
Wyngate 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 Rest
shravan kumar chelika
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJS
Robert 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
 
Monkey man
Monkey manMonkey man
Monkey man
ShapeBlue
 
Aspnet 4 new features
Aspnet 4 new featuresAspnet 4 new features
Aspnet 4 new features
Erkan BALABAN
 

Similar to 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
 

Recently uploaded

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 

Recently uploaded (20)

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 

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.

Editor's Notes

  1. 5