10
Authorization for IoT using OAuth draft-seitz-ace-oauth-authz-00 Ludwig Seitz ([email protected]) Göran Selander ([email protected]) Erik Wahlström ([email protected]) Samuel Erdtman ([email protected]) Hannes Tschofenig ([email protected]) IETF ACE WG meeting November, 2015

Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz ([email protected]) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

  • Upload
    ngothuy

  • View
    218

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

Authorization for IoT using OAuth

draft-seitz-ace-oauth-authz-00

Ludwig Seitz ([email protected])Göran Selander ([email protected])

Erik Wahlström ([email protected])Samuel Erdtman ([email protected])

Hannes Tschofenig ([email protected])

IETF ACE WG meetingNovember, 2015

Page 2: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

2

This draft

• Merge of two proposals– ACRE• draft-seitz-ace-core-authz

– OAuth• draft-tschofenig-ace-oauth-iot• draft-wahlstroem-ace-oauth-introspection

Page 3: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

3

Design Principles

1) Allow security at different layers

2) Allow different authorization schemes3) RESTful transfer of authorization information4) (New!) Build on existing authorization

protocols ● OAuth 2.0 (profiled for CoRE)● Building blocks: CoAP, CBOR, COSE, OSCOAP

Page 4: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

4

Basic OAuth Flow

     +­­­­­­­­+                                     +­­­­­­­­­­­­­­­+     |        |­­­(A)­­ Token Request ­­­­­­­­­­­­­>|               |     |        |                                     | Authorization |     |        |<­­(B)­­ Access Token ­­­­­­­­­­­­­­­|    Server     |     |        |       + Client Information          |               |     |        |                                     +­­­­­­­­­­­­­­­+     |        |                                            ^ |     |        |        Introspection Request & Response (D)| |(E)     | Client |                                            | v     |        |                                     +­­­­­­­­­­­­­­+     |        |­­­(C)­­ Token + Request ­­­­­­­­­­­>|              |     |        |                                     |   Resource   |     |        |<­­(F)­­ Protected Resource ­­­­­­­­­|    Server    |     |        |                                     |              |     +­­­­­­­­+                                     +­­­­­­­­­­­­­­+

• Different deployment scenarios• Not all steps in every scenario

Page 5: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

5

Profiling OAuth 2.0 for CoRE

• AS support for setting up Communication Security– Establish security context and security protocol C ↔ RS

• Resource for sending access tokens to RS– For provisioning the token independently of the request

• Authorization Information Format– Interoperable format for access control data in tokens

• CBOR instead of JSON– More compact tokens and client information

• CBOR Web Tokens– Compact variant of JSON Web Tokens (JWT)

→ Enable the different constrained scenarios

Page 6: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

Example:RS has intermittent connectivity

+--------+ +---------------+ | |---(A)-- Token Request ------------->| | | | | Authorization | | |<--(B)-- Self-contained Token -------| Server | | | + Client Information | | | | +---------------+ | | | | | Client | | | +--------------+ | |---(C)-- Token + Request ----------->| | | | | Resource | | |<--(F)-- Protected Resource ---------| Server | | | | | +--------+ +--------------+

Token needs to be self-contained, i.e. RS can evaluate it offline

Page 7: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

Example:C has intermittent connectivity

+--------+ +---------------+ | |---(A)-- Token Request ------------->| | | | | Authorization | | |<--(B)-- Reference Token ------------| Server | | | + Client Information | | | | +---------------+ | | ^ | | | Introspection Request & Response (D)| |(E) | Client | | v | | +--------------+ | |---(C)-- Token + Request ----------->| | | | | Resource | | |<--(F)-- Protected Resource ---------| Server | | | | | +--------+ +--------------+

● A + B done when client has connectivity, e.g. at commissioning● Token may be a reference (i.e. does not encode specific rights)

Page 8: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

8

Advantages

• OAuth already an IETF standard– Well-established– Widely deployed

• Interoperable (Internet ↔ Internet of Things)• Compatible with existing IAM frameworks and

policies already used with other OAuth deployments

• Optimized to meet CoRE constraints

Page 9: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

9

Next Steps

• Details of OAuth profiling• Check integration with OMA LWM2M

Page 10: Authorization for IoT using OAuthAuthorization for IoT using OAuth ... Ludwig Seitz (ludwig@sics.se) Göran Selander (goran.selander@ ) ... 2015. 2 This draft · 2015-11-1

10

Thank you!

Questions/comments?