Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

65
@salonijshah

Transcript of Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Page 1: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

@salonijshah

Page 2: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 3: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 4: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Single Sign On

Page 5: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 6: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 7: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

As developers…•…wanting to implement SSO, you may have

wondered... How did it get so complicated?

Page 8: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 9: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Help! I have an identity crisis!

Page 10: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Some terminology • Identification• Authentication• Authorization

Page 11: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Some terminology • Identification• Authentication• Authorization

Page 12: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Single Sign On & Identity Federation• Single Sign On: Log in once and access multiple applications• Identity Federation: Shared identity between multiple systems

Enterprise SSO Identity federation

Page 13: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Enterprise SSO & Identity Federation

“Enterprise” SSO

Federated identity

Page 14: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Advantages of a identity federation• Standardization >> Platform Neutrality• Security• Better user experience• Loose coupling of directories• Reduced administrative costs for service providers• Risk transference

Page 15: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 16: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SAML

Page 17: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SAML• Security assertion markup language.• Created in 2002 by Security Services Technical Committee of OASIS.• XML-based framework to make assertions regarding identity,

attributes, and entitlements of a user.• Current version: SAML 2.0 (2005)

Page 18: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Enterprise

External services

Page 19: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Three roles in SAML

Page 20: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Three roles in SAML

Page 21: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Three roles in SAML

Circle of trust

Page 22: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SAML Concepts

Page 23: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SAML Assertions

Page 24: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SAML Assertions

Page 25: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

Page 26: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

(1) Access resource

Page 27: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

(1) Access resource

(2) Redirect with <Authn Req>

GET using <Authn Req>

Page 28: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

(1) Access resource

(2) Redirect with <Authn Req>

GET using <Authn Req> (3) Challenge

for credentials

Page 29: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

(1) Access resource

(2) Redirect with <Authn Req>

GET using <Authn Req> (3) Challenge

for credentials

(4) User login

Page 30: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

(1) Access resource

(2) Redirect with <Authn Req>

GET using <Authn Req> (3) Challenge

for credentials

(4) User login

(5) Signed <response>

Page 31: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

(1) Access resource

(2) Redirect with <Authn Req>

GET using <Authn Req> (3) Challenge

for credentials

(4) User login

(5) Signed <response> (6) Post signed

<response>

Page 32: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SP-initiated SSO

(1) Access resource

(2) Redirect with <Authn Req>

GET using <Authn Req> (3) Challenge

for credentials

(4) User login

(5) Signed <response> (6) Post signed

<response>

(7) Supply resource

Page 33: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

IdP-initiated SSO

Page 34: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

IdP-initiated SSO

(1) Challenge for credentials

(2) User login

(3) Select remote resource

(5) Post signed <response>

(6) Supply resource

(4) Signed <response>

Page 35: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 36: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SAML – Security Considerations• Use TLS• Use digitally signed messages• Securely validate the digital signature• Validate the XML schema

Page 37: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

SAML – Security Considerations• Use TLS• Use digitally signed messages• Securely validate the digital signature• Validate the XML schema

Page 39: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth

Page 40: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth• Open protocol for secure authorization• “Valet key for the web”• Simple and standard method from web, mobile, and desktop apps• Original spec: 2006• Current version: OAuth 2.0• Google’s OAuth Playground:

https://developers.google.com/oauthplayground/

Page 41: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 42: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Roles

Page 43: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Roles

Page 44: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Client Registration

Page 45: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Flow

Page 46: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Flow

(1) Do something with my resource

Page 47: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Flow

(1) Do something with my resource

(2)Give me permission

(3) I’d like to grant this client certain permissions

Page 48: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Flow

(1) Do something with my resource

(2)Give me permission

(3) I’d like to grant this client certain permissions

(4) Authenticate resource owner and verify permission scope

Page 49: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Flow

(1) Do something with my resource

(2)Give me permission

(3) I’d like to grant this client certain permissions

(4) Authenticate resource owner and verify permission scope

(5) Return authorization grant

(6) Authorization grant

Page 50: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Flow

(1) Do something with my resource

(2)Give me permission

(3) I’d like to grant this client certain permissions

(4) Authenticate resource owner and verify permission scope

(5) Return authorization grant

(6) Authorization grant(7) Authorization grant & client credentials

(8)Access token

Page 51: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth Flow

(1) Do something with my resource

(2)Give me permission

(3) I’d like to grant this client certain permissions

(4) Authenticate resource owner and verify permission scope

(5) Return authorization grant

(6) Authorization grant(7) Authorization grant & client credentials

(8)Access token

(9)Access token

(10) Resource

Page 52: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OpenId

Page 53: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OpenID• “Driver’s license for the web”• Authenticate with multiple sites without giving out your credentials• OpenID 1.0 - 2005• OpenID 2.0 - 2007• OpenID Connect – 2014• OpenID Connect: Authentication protocol based on OAuth 2.0

Page 54: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 55: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OpenId Terms

Page 56: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OpenId Terms

Page 57: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OpenId Terms

https://accounts.example.com/oauth2/auth?scope=contacts&nonce=53f2495d7b435ac571& redirect_uri=https%3A%2F%2Foauth2demo.appspot.com%2Foauthcallback& response_type=code& client_id=753560681145-2ik2j3snsvbs80ijdi8.apps.googleusercontent.com

Page 58: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OpenId Terms

https://accounts.example.com/oauth2/auth?scope=openid+email&nonce=53f2495d7b435ac571& redirect_uri=https%3A%2F%2Foauth2demo.appspot.com%2Foauthcallback& response_type=id_token& client_id=753560681145-2ik2j3snsvbs80ijdi8.apps.googleusercontent.com

Page 59: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth and OpenId – Security considerations•Use OAuth 1.0a at least!•Preferably, use OAuth 2.0 with TLS•Properly handle TLS certificate chain validation•Avoid the “Open Redirect” attack

Page 60: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 61: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On
Page 62: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

OAuth 2.0 Threat Model:https://tools.ietf.org/html/rfc6819

Page 63: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

In summary• Delegate identity management to a secure IdP• Use an established standard• Beware of security vulnerabilities• What I didn’t talk about:• Vendor-specific implementations• Technology-specific implementations

Page 64: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

StandardsSAML 2.0 Oauth 2.0 OpenId Connect

Main Purpose Single sign on for enterprise users

API authorization between

applications

Single sign on for consumers

Support Web applications Web, mobile Web, mobile

Protocols used XML, HTTP, SOAP JSON, HTTP JSON, HTTP

Page 65: Help! I Have An Identity Crisis: A look at various mechanisms of Single Sign On

Thanks!Questions?Twitter: @salonijshah