Top Banner
Silber- Partner: Veranstalte r: Extending Authentication and Authorization Edin Kapić
31

Extending Authentication and Authorization

Jan 09, 2017

Download

Technology

Edin Kapic
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Extending Authentication and Authorization

Silber-Partner: Veranstalter:

Extending Authentication and Authorization

Edin Kapić

Page 2: Extending Authentication and Authorization

Edin Kapić• SharePoint Senior

Architect & Team Lead in Sogeti, Barcelona

• President of SharePoint User Group Catalonia (SUG.CAT)

• Writer at Pluralsight• SharePoint Server

Office Servers and Services MVP

• Tinker & geek

Email : [email protected] : @ekapic

LinkedIn : edinkapic

Page 3: Extending Authentication and Authorization

Agenda

• SharePoint, Authentication and Authorization• Claims– Claims-based Authentication– Claims-based Authorization– Claims Augmentation and Transformation– Claims Providers

• Federated Authentication

Page 4: Extending Authentication and Authorization

SharePoint, Authentication & Authorization

SharePoint Web App

Authentication Provider

SPUser

Site Collection

Site

SPRoleAssignment

Authentication

Authorization

Authentifizierung

Autorisierung

Page 5: Extending Authentication and Authorization

SharePoint Authentication

• SharePoint doesn’t authenticate by itself

• It keeps user details in the user profile database and user information lists in each site collection

Page 6: Extending Authentication and Authorization

SharePoint Authorization

• Associated with principals– Authenticated users– Groups (SharePoint or AD)– Claims– App Add-in identities

Page 7: Extending Authentication and Authorization

SharePoint 2013 Authentication Options

• “Classic” Windows– Deprecated

• Claims-based–Windows tokens– FBA– SAML 1.1

Windows NTLM Token

Windows NTLM Token

FBA User

SAML 1.1 Token

SAML Token

SPUser

Page 8: Extending Authentication and Authorization

App Add-In Authentication

• Add-ins have identity and can be assigned permissions– Add-ins are principals, together with users and

groups

• Add-in identity vs User identity

• Add-ins use OAuth to authenticate– Low-trust add-ins use 3-legged OAuth (with ACS

broker)– High-trust add-ins use self-signed tokens

Page 9: Extending Authentication and Authorization

Claims (Ansprüche)• A claim is a piece of your identity, claimed by some

authority• Claims are received upon presenting credentials to a

claims provider• Claims providers are trusted• Examples– Employee badge• Name, department, clearance

– Boarding passes• Flight, seat, class, name

– Paper Wristbands• Ticket type, extra services

Page 11: Extending Authentication and Authorization

SharePoint ClaimsClaim Type Claim Value Issuer Original Issuerhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

demo\ekapic SharePoint

SharePoint

http://schemas.xmlsoap.org/ws/2008/06/identity/claims/primarysid

S-1-5-21-4067827123-213488314-8760374-513

SharePoint

Windows

http://schemas.xmlsoap.org/ws/2005/05identity/claims/upn

[email protected] SharePoint

Windows

http://schemas.microsoft.com/sharepoint/2009/08/claims/userid

0#.w|demo\ekapic SharePoint

SecurityTokenService

Page 12: Extending Authentication and Authorization

Claims Authentication

• SharePoint augments and transforms the incoming claims to a normalized claims identity

• Can be done by more than one claims provider• Decouples the authentication method from the

user identity• For Windows incoming claims, there is a C2WTS

(Claims to Windows Token Service) inside SharePoint 2013 to allow converting claims back into Windows identities

Page 13: Extending Authentication and Authorization

Claims Format

Claim Claim Parts

i:0#.w|spdemo\edin • •“i” for an identity claim • •“#” for the user logon name format for the

claim value • •“.” for a string • •“w” for Windows claims • •“spdemo\edin” for the identity claim value

(the Windows account name)

i:0e.t|adfs|[email protected]

• •“i” for an identity claim • •“e” for the UPN property of 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

valuehttp://social.technet.microsoft.com/wiki/contents/articles/13921.sharepoint-2013-claims-encoding-also-valuable-for-sharepoint-2010.aspx

<IdentityClaim>:0<ClaimType><ClaimValueType><AuthMode>|<OriginalIssuer (optional)>|<ClaimValue>

Page 14: Extending Authentication and Authorization

Claims Authorization

• Any claim can be used as a security principal in SharePoint

• Flexible alternative to security groups

• Claims can be surfaced by the identity token service or custom claims provider in People Picker

Page 15: Extending Authentication and Authorization

Claim Providers

• Augment and surface the claims for People Picker

• Can be generic or bound to a Trusted Identity Provider

• Inherits from SPClaimProvider abstract class

• But, take care about thread safety: http://blogs.msdn.com/b/yvan_duhamel/archive/2014/05/21/thread-safety-in-custom-claims-providers.aspx

Page 16: Extending Authentication and Authorization

Claims Augmentation and Surfacing

Desired claim provider feature ImplementsClaims augmentation FillClaimsForEntity

SupportsEntityInformation

Claims surfacing in People Picker FillSchemaFillClaimTypesFillClaimValueTypesFillEntityTypes

Claims hierarchy in People Picker left side FillHierarchySupportsHierarchy

Resolving typed claims in People Picker FillResolveSupportsResolve

Searching for claims in People Picker FillSearchSupportsSearch

Page 17: Extending Authentication and Authorization

DEMO

Custom Claim Provider

Page 18: Extending Authentication and Authorization

Federated Authentication

• When the identity provider (IdP) is distinct from Windows (or FBA), we have federated authentication

• Third-party Secure Token Service (STS) issues a security token with claims

• This token is trusted by “clients” (Relying Parties, RP) as the STS is trusted by them

• Tokens are digitally signed to prevent tampering

Page 19: Extending Authentication and Authorization

Federated Authentication

• ID cards or passports are real-world examples of federated authentication

Page 20: Extending Authentication and Authorization

Federated Identity Providers

• Microsoft Active Directory Federation Services (ADFS)

• Microsoft Azure Active Directory

• Thinktecture IdentityServer

• Shibboleth• IBM Federated Identity

Manager• ...

Page 21: Extending Authentication and Authorization

Active Directory Federation Services (ADFS)

• Part of Windows Server features

• Can transform AD into a federated IdP

• Doesn’t manage users directly, but claims, identity providers and relying parties

Page 22: Extending Authentication and Authorization

Azure Active Directory (AAD)

• “AD and ADFS in the cloud”

• Part of Azure / Office 365 offering

• Underpins the most of the Office 365 / Azure hybrid architectures

Page 23: Extending Authentication and Authorization

Thinktecture IdentityServer

• Open-source IdP based on .NET and Windows Identity Framework

• Modular architecture

Page 24: Extending Authentication and Authorization

DEMO

Federated Authentication with ADFS

Page 25: Extending Authentication and Authorization

Summary

• Claims-based identity and authorization are the only way forward, so make sure that you understand them well

• You can decouple user authentication from the user identity

• You can extend your user identity with additional claims

• You can get your user identity from somewhere else

Page 26: Extending Authentication and Authorization

Additional Tools• LDAP/AD Claims Provider– Surfaces users from ADFS / AD into claims-enabled People

Picker• https://ldapcp.codeplex.com/

Page 27: Extending Authentication and Authorization

Additional Tools• SharePoint Identity Service– Service application for SharePoint

• https://spidentityservice.codeplex.com/

Page 28: Extending Authentication and Authorization

Further Reading

• Steve Peschka’s blog https://samlman.wordpress.com

• Kirk Evans’ blog http://blogs.msdn.com/b/kaevans/

• A Guide to Claims-Identity and Access Control https://msdn.microsoft.com/en-us/library/ff423674.aspx

Page 29: Extending Authentication and Authorization

FRAGEN?

Page 30: Extending Authentication and Authorization

Ich freue mich auf Ihr Feedback!

Page 31: Extending Authentication and Authorization

Silber-Partner: Veranstalter:

Vielen Dank!Edin Kapić