Slide 1

Slide 1 text

THE MANY LAYERS OF OAUTH D. Keith Casey Jr [email protected] @CaseySoftware

Slide 2

Slide 2 text

WHO AM I?

Slide 3

Slide 3 text

WHO AM I?

Slide 4

Slide 4 text

WHO AM I? http://TheAPIDesignBook.com

Slide 5

Slide 5 text

AGENDA • Assumptions • What problems are we solving? • AuthN vs AuthZ all the things • The Specifications • Threat/Attack Vectors @CaseySoftware

Slide 6

Slide 6 text

AGENDA • Assumptions • What problems are we solving? • AuthN vs AuthZ all the things • The Specifications • Threat/Attack Vectors @CaseySoftware

Slide 7

Slide 7 text

ASSUMPTIONS • Security is an important part of your job • You are probably using OAuth • You might be building OAuth servers • All the specs drive you nuts @CaseySoftware

Slide 8

Slide 8 text

ASSUMPTIONS • Nothing is perfect • You make mistakes • Your providers make mistakes • That other team are all knuckleheads • Your team is great though @CaseySoftware

Slide 9

Slide 9 text

btw, I mean OAuth 2.0 @CaseySoftware

Slide 10

Slide 10 text

AGENDA • Assumptions • What problems are we solving? • AuthN vs AuthZ all the things • The Specifications • Threat/Attack Vectors @CaseySoftware

Slide 11

Slide 11 text

HOTEL KEY CARDS BUT FOR APPS @CaseySoftware

Slide 12

Slide 12 text

TO PUT IT ANOTHER WAY • Sharing access without sharing creds (aka delegation) • Granting limited access (aka scoping & expiration) • Separating policy decisions from enforcement @CaseySoftware

Slide 13

Slide 13 text

BUT THIS DOESN’T SOLVE IDENTITY @CaseySoftware

Slide 14

Slide 14 text

WAIT, WHAT? @CaseySoftware

Slide 15

Slide 15 text

AGENDA • Assumptions • What problems are we solving? • AuthN vs AuthZ all the things • The Specifications • Threat/Attack Vectors @CaseySoftware

Slide 16

Slide 16 text

AUTHENTICATION VS AUTHORIZATION • Authentication aka AuthN • Who are you? • Authorization aka AuthZ • Are you allowed to do that? @CaseySoftware

Slide 17

Slide 17 text

BACK TO THE SPEC @CaseySoftware

Slide 18

Slide 18 text

AUTH CODE GRANT TYPE (there are other grant types, not important atm) Credit: https://developer.okta.com @CaseySoftware

Slide 19

Slide 19 text

WHAT ABOUT THOSE TOKENS? @CaseySoftware

Slide 20

Slide 20 text

What about a JWT !? (aka JSON Web Token) @CaseySoftware

Slide 21

Slide 21 text

JWT SPECIFICATION @CaseySoftware

Slide 22

Slide 22 text

JWT SPECIFICATION @CaseySoftware

Slide 23

Slide 23 text

ENTER OPENID CONNECT @CaseySoftware

Slide 24

Slide 24 text

ADD ANOTHER SPEC @CaseySoftware

Slide 25

Slide 25 text

OPINIONATED STRUCTURE • Scopes • openid • profile • email • address • phone • Claims • name • given_name • email • street_address • phone_number • and lots more @CaseySoftware

Slide 26

Slide 26 text

AGENDA • Assumptions • What problems are we solving? • AuthN vs AuthZ all the things • The Specifications • Threat/Attack Vectors @CaseySoftware

Slide 27

Slide 27 text

THE ENDPOINTS • /authorize • /token • JWT • /introspect • /revoke • /logout • /keys • /userinfo • /.well-known/openid-configuration • /.well-known/oauth-authorization-server • RFC 6749 - OAuth Core • RFC 6749 - OAuth Core • RFC 7519 - JSON Web Token • RFC 7662 - Token Introspection • RFC 7009 - Token Revocation • ????? • ???? • OpenID Connect Specification • Draft - OpenID Provider Metadata Spec • Draft - Auth Server Metadata spec

Slide 28

Slide 28 text

AGENDA • Assumptions • What problems are we solving? • AuthN vs AuthZ all the things • The Specifications • Threat/Attack Vectors @CaseySoftware

Slide 29

Slide 29 text

COMPONENTS Credit: https://developer.okta.com 1 2 3 4 @CaseySoftware

Slide 30

Slide 30 text

COMPONENTS Credit: https://developer.okta.com 1 2 3 4 @CaseySoftware

Slide 31

Slide 31 text

COMPONENTS Credit: https://developer.okta.com 1 2 3 4 @CaseySoftware

Slide 32

Slide 32 text

COMPONENTS Credit: https://developer.okta.com 1 2 3 4 @CaseySoftware

Slide 33

Slide 33 text

COMPONENTS Credit: https://developer.okta.com 1 2 3 4 @CaseySoftware

Slide 34

Slide 34 text

0. THE USER @CaseySoftware

Slide 35

Slide 35 text

RECAP • Assumptions • What problems are we solving? • AuthN vs AuthZ all the things • The Specifications • Threat/Attack Vectors @CaseySoftware

Slide 36

Slide 36 text

THE MANY LAYERS OF OAUTH D. Keith Casey Jr [email protected] @CaseySoftware