SharePoint, ADFS, ACS and 
Claims-based Authentication 
Kashif Imran 
Kashif_Imran@hotmail.com
Agenda 
• Claims-based Identity Model’s Key Concepts 
• Install and Configure ADFS for SharePoint 2013 
• Configure Azure ACS and SharePoint for SSO using Google etc. 
• Use ADFS as IP-STS via Azure ACS as RP-STS 
• Claims Viewer 
• Custom Claims Provider
Claims with SharePoint is sort of 
like a bird, it’s pretty cute until it 
shits on your head.
I drink beer to celebrate major 
events, the fall of communism, 
or the fact that our SharePoint 
and ADFS is still working.
Identity in Traditional Applications 
• Application 
• Identity Management 
• Account creation 
• Password creation 
• Password change 
• Password reset 
• … 
• 2 Step Verification 
• Attribute Store
Identity in Real World 
• Buy wine/beer example 
• Externalize authentication to DMV 
• Driving license 
• document that is relatively hard to produce/forge 
• Has additional information about user (age) 
• International Travel 
• Passport 
• Boarding Card
Claims-based Identity Model 
• Way for applications to acquire the identity information about internal or external users 
• Abstracts individual elements of identity and access control into “Notion of claims” and “Concept of issuer or an authority” 
• Applications do not need to authenticate users, store user accounts or passwords, etc. 
• Original intention behind the claims-based identity model was to enable federation between organization, but claims are not just 
for federation 
• Claim 
• Statement that one subject (user or organization) makes about itself of another subject. E.g.: name, group, ethnicity etc. 
• Why call these “claims” and not “attributes”? “Delivery method” => User delivers claims to application instead of application looking these up 
in some directory 
• Assert user has logged in 
• Claims are NOT what a user can or can not do, they are what a user is or is not 
• Each claim is made by an issuer, and you trust the claim only as much as you trust the issuer 
• Issuer, Type, Value => (Google, Email, darwaish@gmail.com) 
• Security Token 
• Serialized set of claims that is digitally signed by the issuing authority (Claims are unchanged and comes from whoever signed in) 
• Successful outcome of sign in 
• SAML (Security Assertion Markup Language), SWT (Simple Web Token), JWT (JSON Web Token)
Relying Party and STS 
• Relying Party (RP) 
• An application that relies on claims 
• Claims aware application 
• Claims-based application 
• Security Token Service 
• Service component that builds, signs and issues security tokens 
• Implicit authN (no token, no party) 
• WS-Trust, WS-Fed, SAML 
• IP-STS: 
• authenticates a client and creates SAML token 
• Façade for one or more identity stores 
• RP-STS (R-STS: Resource STS, FP-STS: Federation Provider STS) 
• Transforms token issues by another STS 
• Does not authenticate the client but relies on SAML token provided by IP-STS that it trusts 
• Façade for one boundary 
• Federation Patterns 
• Passive (Web Clients) WS-Trust emulated using GET, POST, redirects and cookies. 
• Active: Code to acquire tokens explicitly
Windows Identity Foundation (WIF) 
• .NET library encapsulating the inner workings of WS-Federation and 
WS-Trust 
• System.IdentityModel 
• System.IdentityModel.Services 
• IPrincipal (IsInRole, Identity), IIdentity (AuthenticationType, 
IsAuthenicated, Name) 
• IClaimsPrincipal = IPrincipal + Identities 
• IClaimsIdentity = IIdentity + Claims 
• Claims: Property bag, Subject, issuer, originalissuer, claimtype, value, 
valuetype
ADFS V2: Active Directory Federation Services 
• STS 
• WS*(WS-Trust, WS-SecurityPolicy, WS-Federation, SAML) 
• Claims provider 
• Federation service for identity across domains 
• Consumers: SharePoint, Azure ACS, WCF, Others 
• Federation Metadata: 
• How do RP know its from STS 
• What claims 
• Where is STS 
• SAML Claims
SharePoint Authentication 
• Windows (Classic) Authentication: NTLM, Kerberos(Multi hop) 
• Claims Based AuthN 
• Claims or Classic in the end you are SPUser 
• C2WTS(Claims to windows token service)
SharePoint with ADFS
Federating Identity
The Hub Model
Windows VS Trusted Identity Authentication
SharePoint, ADFS and Claims Auth
Claims Viewer 
IClaimsPrincipal principal = Page.User as IClaimsPrincipal; 
IClaimsIdentity identity = principal.Identity as IClaimsIdentity; 
gv.DataSource = identity.Claims; 
gv.DataBind();
SharePoint Claims
SharePoint Claims Encoding 
• <IdentityClaim> indicates the type of claim and is the following: 
• “i” for an identity claim 
• “c” for any other claim 
• <ClaimType> indicates the format for the claim value and is the following: 
• “#” for a user logon name 
• “.” for an anonymous user 
• “5” for an email address 
• “!” for an identity provider 
• “+” for a Group security identifier (SID) 
• “-“ for a role 
• “%” for a farm ID 
• “?” for a name identifier 
• "" for a private personal identifier (PPID) 
• <ClaimValueType> indicates the type of formatting for the claim value and is the following: 
• “.” for a string 
• “+” for an RFC 822-formatted name 
• <AuthMode> indicates the type of authentication used to obtain the identity claim and is the following: 
• “w” for Windows claims (no original issuer) 
• “s” for the local SharePoint security token service (STS) (no original issuer) 
• “t” for a trusted issuer 
• “m” for a membership issuer 
• “r” for a role provider issuer 
• “f” for forms-based authentication 
• “c” for a claim provider 
• <OriginalIssuer> indicates the original issuer of the claim. 
• <ClaimValueType> indicates the value of the claim in the <ClaimType> format. 
• http://msdn.microsoft.com/en-us/library/gg481769.aspx#claimswalkthrough5_AppendixA
SharePoint Claims Encoding 
Type of claim Encoded claim Claim encoding breakdown 
Windows User i:0#.w|contosokashif •“i” for an identity claim 
•“#” for the user logon name format for the claim value 
•“.” for a string 
•“w” for Windows claims 
•“contosokashif” for the identity claim value (the Windows account name) 
Windows Authenticated Users group c:0!.s|windows •“c” for a claim other than identity 
•“!” for an identity provider 
•“.” for a string 
•“s” for the local SharePoint STS 
•“windows” for the Windows Authenticated Users group 
SAML authentication (Trusted User) i:05.t|adfs|kashif@contoso.com •“i” for an identity claim 
•“5” for the email address format for the claim value 
•“.” for a string 
•“t” for a trusted issuer 
•“adfs” identifies the original issuer of the identity claim 
•“kashif@contoso.com” for the identity claim value 
Forms-based authentication i:0#.f|mymembershipprovider|kashif •“i” for an identity claim 
•“#”for the user logon name format for the claim value 
•“.” for string 
•“f” for forms-based authentication 
•“mymembershipprovider” identifies the original issuer of the identity claim 
•“kashif” for the user logon name
Claims Resolution and Augmentation 
• Inherit a class from 
Microsoft.SharePoint.Administration.Claims.SPClaimsProvider 
• Register using 
• Microsoft.SharePoint.Administration.Claims.SPClaimsProviderFeatureReceiver 
• Implement 
• FillClaimsForEntity 
• FillClaimTypes 
• FillClaimValueTypes 
• Register Claims Provider 
• $trusted = Get-SPTrustedIdentityTokenIssuer -Identity “Kashif" 
• $trusted.ClaimProviderName = “KashifClaimsStore" 
• $trusted.Update()
ADFS Deployment 
• Single server configuration 
• ADFS 2.0 server farm and load-balancer 
• ADFS 2.0 Proxy server(s) for offsite users
Install and Configure ADFS V2 
• Install Windows Server 2008 R2 
• Create service account (ssp_adfs) and set SPN 
• Install ADFS server, don't configure it 
• Generate SSL Certificates 
• Token Signing, Token Encryption, Site 
• Disable AutoCertificate Rollover 
• Add-PsSnapin Microsoft.Adfs.Powershell 
• Set-ADFSProperties -AutoCertificateRollover $false 
• Set Primary Certificates 
• Give ADFS account permission on private key of certificates 
• Add Trusted Relying Party 
• Map Claims 
• Email-Addresses => Email Address 
• Token-Groups - Unqualified Names => Role 
• SAM-Account-Name => Windows account name 
• User-Principal-Name => UPN 
• Test Sign On using IdpInitiatedSignOn
SharePoint Configuration for ADFS 
• Export and copy public key of token signing certificate from ADFS 
• Generate SSL and AAM for SharePoint web app 
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(“C:adfsss.cer”) 
$map1 = New-SPClaimTypeMapping “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress” -IncomingClaimTypeDisplayName “EmailAddress” -SameAsIncoming 
$map2 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" - 
SameAsIncoming 
$map3 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" -IncomingClaimTypeDisplayName 
"WindowsAccountName" -SameAsIncoming 
$map4 = New-SPClaimTypeMapping “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn” -IncomingClaimTypeDisplayName “UPN” -SameAsIncoming 
$realm = "urn:sharepoint:www" 
$signinurl = "https://sso.kashif.com/adfs/ls/" 
$ap = New-SPTrustedIdentityTokenIssuer -Name "Kashif" -Description "Kashif STS" -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map1,$map2,$map3,$map4 - 
SignInUrl $signinurl -IdentifierClaim $map3.InputClaimType 
New-SPTrustedRootAuthority “Kashif Trusted Root Authority” -Certificate $cert 
$ap.Update() 
• My Sites or other web apps 
$uri = new-object System.Uri("https://my.kashif.com") 
$ap.ProviderRealms.Add($uri, "urn:sharepoint:my")
SharePoint Trusted Identity Token Issuer 
A SharePoint trusted identity token issuer binds together the details of the identity provider and the 
mapping rules to associate them with a specific SharePoint web application.
Update SharePoint for new ADFS Certificates 
$cert1 = New-Object 
System.Security.Cryptography.X509Certificates.X509Certificate2("C:adf 
supdatesss1.cer") 
Set-SPTrustedRootAuthority -Identity "Kashif Trusted Root Authority 
P1" -Certificate $cert 
Set-SPTrustedIdentityTokenIssuer "Kashif" -ImportTrustCertificate $cert
Azure Access Control Service 
• Build using Claims-based identity principles 
• Support WIF and ADFS V2
Questions 
???

More Related Content

PPTX
T28 implementing adfs and hybrid share point
PPTX
Understanding SharePoint Apps, authentication and authorization infrastructur...
PPTX
DD109 Claims Based AuthN in SharePoint 2010
PPTX
Building Secure Extranets with Claims-Based Authentication #SPEvo13
PPTX
Extending Authentication and Authorization
PPTX
ESPC15 - Extending Authentication and Authorization
PPTX
Securing SharePoint Apps with OAuth
PPTX
Office 365 api vs share point app model
T28 implementing adfs and hybrid share point
Understanding SharePoint Apps, authentication and authorization infrastructur...
DD109 Claims Based AuthN in SharePoint 2010
Building Secure Extranets with Claims-Based Authentication #SPEvo13
Extending Authentication and Authorization
ESPC15 - Extending Authentication and Authorization
Securing SharePoint Apps with OAuth
Office 365 api vs share point app model

What's hot (16)

PDF
Deciphering 'Claims-based Identity'
PPTX
How to deploy SharePoint 2010 to external users?
PPTX
SharePoint 2010 Extranets and Authentication: How will SharePoint 2010 connec...
PPTX
SPS Belgium 2015 - High-trust Apps for On-Premises Development
PDF
SharePointFest 2013 Washington DC - SPT 103 - SharePoint 2013 Extranets: How ...
PDF
Developing custom claim providers to enable authorization in share point an...
PPTX
Identity Management in SharePoint 2013
PPTX
OAuth in SharePoint 2013
PDF
How Claims is Changing the Way We Authenticate and Authorize in SharePoint
PPTX
Office 365-single-sign-on-with-adfs
PPTX
NIC 2014 Modern Authentication for the Cloud Era
PPTX
Claim Based Authentication in SharePoint 2010 for Community Day 2011
PPTX
Extending SharePoint 2010 to your customers and partners
PDF
SharePoint Saturday The Conference DC - Are you who you say you are share poi...
PPTX
SharePoint Saturday Toronto July 2012 - Antonio Maio
PPTX
Introduction to Azure AD and Azure AD B2C
Deciphering 'Claims-based Identity'
How to deploy SharePoint 2010 to external users?
SharePoint 2010 Extranets and Authentication: How will SharePoint 2010 connec...
SPS Belgium 2015 - High-trust Apps for On-Premises Development
SharePointFest 2013 Washington DC - SPT 103 - SharePoint 2013 Extranets: How ...
Developing custom claim providers to enable authorization in share point an...
Identity Management in SharePoint 2013
OAuth in SharePoint 2013
How Claims is Changing the Way We Authenticate and Authorize in SharePoint
Office 365-single-sign-on-with-adfs
NIC 2014 Modern Authentication for the Cloud Era
Claim Based Authentication in SharePoint 2010 for Community Day 2011
Extending SharePoint 2010 to your customers and partners
SharePoint Saturday The Conference DC - Are you who you say you are share poi...
SharePoint Saturday Toronto July 2012 - Antonio Maio
Introduction to Azure AD and Azure AD B2C
Ad

Similar to SharePoint, ADFS and Claims Auth (20)

PPTX
SPSBE 2013 Claims for devs
PPTX
unit 1 Federated Identity Management_4.pptx
PPTX
Single SignOn with Federation using Claims
PPTX
SharePoint Saturday Utah - Do you claim to be from the Azure Sky?
PPTX
Claims Based Authentication A Beginners Guide
PPTX
SharePoint Authentication And Authorization SPTechCon San Francisco
PPTX
The Who, What, Why and How of Active Directory Federation Services (AD FS)
PDF
Exploring Advanced Authentication Methods in Novell Access Manager
PPTX
Claims Based Authentication in SharePoint 2010
PDF
Ymens - Cloud Identity Crisis - Dev Talks 2015
PPTX
Passwordless Development using Azure Identity
PPTX
Deploying your static web app to the Cloud
PPTX
SharePoint Saturday Austin - Share point authentication and authorization
PDF
MongoDB World 2019: Securing Application Data from Day One
PDF
Claims based authentication in SharePoint 2010 - SharePoint Saturday Vietnam
PDF
Introduction to claims based authentication in share point 2010
PPTX
MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
PPTX
Securing a modern Web application with Entra ID
PPTX
OIDF Workshop at Verizon Media -- 9/30/2019 -- FastFed Working Group Update
PPTX
SharePoint Access Control and Claims Based Authentication
SPSBE 2013 Claims for devs
unit 1 Federated Identity Management_4.pptx
Single SignOn with Federation using Claims
SharePoint Saturday Utah - Do you claim to be from the Azure Sky?
Claims Based Authentication A Beginners Guide
SharePoint Authentication And Authorization SPTechCon San Francisco
The Who, What, Why and How of Active Directory Federation Services (AD FS)
Exploring Advanced Authentication Methods in Novell Access Manager
Claims Based Authentication in SharePoint 2010
Ymens - Cloud Identity Crisis - Dev Talks 2015
Passwordless Development using Azure Identity
Deploying your static web app to the Cloud
SharePoint Saturday Austin - Share point authentication and authorization
MongoDB World 2019: Securing Application Data from Day One
Claims based authentication in SharePoint 2010 - SharePoint Saturday Vietnam
Introduction to claims based authentication in share point 2010
MongoDB.local Dallas 2019: Pissing Off IT and Delivery: A Tale of 2 ODS's
Securing a modern Web application with Entra ID
OIDF Workshop at Verizon Media -- 9/30/2019 -- FastFed Working Group Update
SharePoint Access Control and Claims Based Authentication
Ad

More from Kashif Imran (8)

PPTX
SharePoint Client Object Model (CSOM)
PPTX
Developing Apps for SharePoint Store
PPTX
Develop iOS and Android apps with SharePoint/Office 365
PPTX
SharePoint 2013 Branding
PPTX
Enterprise Content Management (ECM) in the Cloud
PPTX
Microsoft Azure WebJobs
PPTX
Azure Websites
PPTX
Microsoft Azure - Introduction
SharePoint Client Object Model (CSOM)
Developing Apps for SharePoint Store
Develop iOS and Android apps with SharePoint/Office 365
SharePoint 2013 Branding
Enterprise Content Management (ECM) in the Cloud
Microsoft Azure WebJobs
Azure Websites
Microsoft Azure - Introduction

Recently uploaded (20)

PDF
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PPTX
Internet of Everything -Basic concepts details
PPTX
MuleSoft-Compete-Deck for midddleware integrations
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PPTX
Build Your First AI Agent with UiPath.pptx
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PPTX
future_of_ai_comprehensive_20250822032121.pptx
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
sustainability-14-14877-v2.pddhzftheheeeee
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Internet of Everything -Basic concepts details
MuleSoft-Compete-Deck for midddleware integrations
sbt 2.0: go big (Scala Days 2025 edition)
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Convolutional neural network based encoder-decoder for efficient real-time ob...
Lung cancer patients survival prediction using outlier detection and optimize...
giants, standing on the shoulders of - by Daniel Stenberg
Build Your First AI Agent with UiPath.pptx
Module 1 Introduction to Web Programming .pptx
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Co-training pseudo-labeling for text classification with support vector machi...
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
future_of_ai_comprehensive_20250822032121.pptx

SharePoint, ADFS and Claims Auth

  • 1. SharePoint, ADFS, ACS and Claims-based Authentication Kashif Imran [email protected]
  • 2. Agenda • Claims-based Identity Model’s Key Concepts • Install and Configure ADFS for SharePoint 2013 • Configure Azure ACS and SharePoint for SSO using Google etc. • Use ADFS as IP-STS via Azure ACS as RP-STS • Claims Viewer • Custom Claims Provider
  • 3. Claims with SharePoint is sort of like a bird, it’s pretty cute until it shits on your head.
  • 4. I drink beer to celebrate major events, the fall of communism, or the fact that our SharePoint and ADFS is still working.
  • 5. Identity in Traditional Applications • Application • Identity Management • Account creation • Password creation • Password change • Password reset • … • 2 Step Verification • Attribute Store
  • 6. Identity in Real World • Buy wine/beer example • Externalize authentication to DMV • Driving license • document that is relatively hard to produce/forge • Has additional information about user (age) • International Travel • Passport • Boarding Card
  • 7. Claims-based Identity Model • Way for applications to acquire the identity information about internal or external users • Abstracts individual elements of identity and access control into “Notion of claims” and “Concept of issuer or an authority” • Applications do not need to authenticate users, store user accounts or passwords, etc. • Original intention behind the claims-based identity model was to enable federation between organization, but claims are not just for federation • Claim • Statement that one subject (user or organization) makes about itself of another subject. E.g.: name, group, ethnicity etc. • Why call these “claims” and not “attributes”? “Delivery method” => User delivers claims to application instead of application looking these up in some directory • Assert user has logged in • Claims are NOT what a user can or can not do, they are what a user is or is not • Each claim is made by an issuer, and you trust the claim only as much as you trust the issuer • Issuer, Type, Value => (Google, Email, [email protected]) • Security Token • Serialized set of claims that is digitally signed by the issuing authority (Claims are unchanged and comes from whoever signed in) • Successful outcome of sign in • SAML (Security Assertion Markup Language), SWT (Simple Web Token), JWT (JSON Web Token)
  • 8. Relying Party and STS • Relying Party (RP) • An application that relies on claims • Claims aware application • Claims-based application • Security Token Service • Service component that builds, signs and issues security tokens • Implicit authN (no token, no party) • WS-Trust, WS-Fed, SAML • IP-STS: • authenticates a client and creates SAML token • Façade for one or more identity stores • RP-STS (R-STS: Resource STS, FP-STS: Federation Provider STS) • Transforms token issues by another STS • Does not authenticate the client but relies on SAML token provided by IP-STS that it trusts • Façade for one boundary • Federation Patterns • Passive (Web Clients) WS-Trust emulated using GET, POST, redirects and cookies. • Active: Code to acquire tokens explicitly
  • 9. Windows Identity Foundation (WIF) • .NET library encapsulating the inner workings of WS-Federation and WS-Trust • System.IdentityModel • System.IdentityModel.Services • IPrincipal (IsInRole, Identity), IIdentity (AuthenticationType, IsAuthenicated, Name) • IClaimsPrincipal = IPrincipal + Identities • IClaimsIdentity = IIdentity + Claims • Claims: Property bag, Subject, issuer, originalissuer, claimtype, value, valuetype
  • 10. ADFS V2: Active Directory Federation Services • STS • WS*(WS-Trust, WS-SecurityPolicy, WS-Federation, SAML) • Claims provider • Federation service for identity across domains • Consumers: SharePoint, Azure ACS, WCF, Others • Federation Metadata: • How do RP know its from STS • What claims • Where is STS • SAML Claims
  • 11. SharePoint Authentication • Windows (Classic) Authentication: NTLM, Kerberos(Multi hop) • Claims Based AuthN • Claims or Classic in the end you are SPUser • C2WTS(Claims to windows token service)
  • 15. Windows VS Trusted Identity Authentication
  • 17. Claims Viewer IClaimsPrincipal principal = Page.User as IClaimsPrincipal; IClaimsIdentity identity = principal.Identity as IClaimsIdentity; gv.DataSource = identity.Claims; gv.DataBind();
  • 19. SharePoint Claims Encoding • <IdentityClaim> indicates the type of claim and is the following: • “i” for an identity claim • “c” for any other claim • <ClaimType> indicates the format for the claim value and is the following: • “#” for a user logon name • “.” for an anonymous user • “5” for an email address • “!” for an identity provider • “+” for a Group security identifier (SID) • “-“ for a role • “%” for a farm ID • “?” for a name identifier • "" for a private personal identifier (PPID) • <ClaimValueType> indicates the type of formatting for the claim value and is the following: • “.” for a string • “+” for an RFC 822-formatted name • <AuthMode> indicates the type of authentication used to obtain the identity claim and is the following: • “w” for Windows claims (no original issuer) • “s” for the local SharePoint security token service (STS) (no original issuer) • “t” for a trusted issuer • “m” for a membership issuer • “r” for a role provider issuer • “f” for forms-based authentication • “c” for a claim provider • <OriginalIssuer> indicates the original issuer of the claim. • <ClaimValueType> indicates the value of the claim in the <ClaimType> format. • http://msdn.microsoft.com/en-us/library/gg481769.aspx#claimswalkthrough5_AppendixA
  • 20. SharePoint Claims Encoding Type of claim Encoded claim Claim encoding breakdown Windows User i:0#.w|contosokashif •“i” for an identity claim •“#” for the user logon name format for the claim value •“.” for a string •“w” for Windows claims •“contosokashif” for the identity claim value (the Windows account name) Windows Authenticated Users group c:0!.s|windows •“c” for a claim other than identity •“!” for an identity provider •“.” for a string •“s” for the local SharePoint STS •“windows” for the Windows Authenticated Users group SAML authentication (Trusted User) i:05.t|adfs|[email protected] •“i” for an identity claim •“5” for the email address format for the claim value •“.” for a string •“t” for a trusted issuer •“adfs” identifies the original issuer of the identity claim •“[email protected]” for the identity claim value Forms-based authentication i:0#.f|mymembershipprovider|kashif •“i” for an identity claim •“#”for the user logon name format for the claim value •“.” for string •“f” for forms-based authentication •“mymembershipprovider” identifies the original issuer of the identity claim •“kashif” for the user logon name
  • 21. Claims Resolution and Augmentation • Inherit a class from Microsoft.SharePoint.Administration.Claims.SPClaimsProvider • Register using • Microsoft.SharePoint.Administration.Claims.SPClaimsProviderFeatureReceiver • Implement • FillClaimsForEntity • FillClaimTypes • FillClaimValueTypes • Register Claims Provider • $trusted = Get-SPTrustedIdentityTokenIssuer -Identity “Kashif" • $trusted.ClaimProviderName = “KashifClaimsStore" • $trusted.Update()
  • 22. ADFS Deployment • Single server configuration • ADFS 2.0 server farm and load-balancer • ADFS 2.0 Proxy server(s) for offsite users
  • 23. Install and Configure ADFS V2 • Install Windows Server 2008 R2 • Create service account (ssp_adfs) and set SPN • Install ADFS server, don't configure it • Generate SSL Certificates • Token Signing, Token Encryption, Site • Disable AutoCertificate Rollover • Add-PsSnapin Microsoft.Adfs.Powershell • Set-ADFSProperties -AutoCertificateRollover $false • Set Primary Certificates • Give ADFS account permission on private key of certificates • Add Trusted Relying Party • Map Claims • Email-Addresses => Email Address • Token-Groups - Unqualified Names => Role • SAM-Account-Name => Windows account name • User-Principal-Name => UPN • Test Sign On using IdpInitiatedSignOn
  • 24. SharePoint Configuration for ADFS • Export and copy public key of token signing certificate from ADFS • Generate SSL and AAM for SharePoint web app $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(“C:adfsss.cer”) $map1 = New-SPClaimTypeMapping “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress” -IncomingClaimTypeDisplayName “EmailAddress” -SameAsIncoming $map2 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -IncomingClaimTypeDisplayName "Role" - SameAsIncoming $map3 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" -IncomingClaimTypeDisplayName "WindowsAccountName" -SameAsIncoming $map4 = New-SPClaimTypeMapping “http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn” -IncomingClaimTypeDisplayName “UPN” -SameAsIncoming $realm = "urn:sharepoint:www" $signinurl = "https://sso.kashif.com/adfs/ls/" $ap = New-SPTrustedIdentityTokenIssuer -Name "Kashif" -Description "Kashif STS" -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map1,$map2,$map3,$map4 - SignInUrl $signinurl -IdentifierClaim $map3.InputClaimType New-SPTrustedRootAuthority “Kashif Trusted Root Authority” -Certificate $cert $ap.Update() • My Sites or other web apps $uri = new-object System.Uri("https://my.kashif.com") $ap.ProviderRealms.Add($uri, "urn:sharepoint:my")
  • 25. SharePoint Trusted Identity Token Issuer A SharePoint trusted identity token issuer binds together the details of the identity provider and the mapping rules to associate them with a specific SharePoint web application.
  • 26. Update SharePoint for new ADFS Certificates $cert1 = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:adf supdatesss1.cer") Set-SPTrustedRootAuthority -Identity "Kashif Trusted Root Authority P1" -Certificate $cert Set-SPTrustedIdentityTokenIssuer "Kashif" -ImportTrustCertificate $cert
  • 27. Azure Access Control Service • Build using Claims-based identity principles • Support WIF and ADFS V2