draft-ietf-capport-api-04.txt   draft-ietf-capport-api-05.txt 
Captive Portal Interaction T. Pauly, Ed. Captive Portal Interaction T. Pauly, Ed.
Internet-Draft Apple Inc. Internet-Draft Apple Inc.
Intended status: Standards Track D. Thakore, Ed. Intended status: Standards Track D. Thakore, Ed.
Expires: 5 July 2020 CableLabs Expires: 7 August 2020 CableLabs
2 January 2020 4 February 2020
Captive Portal API Captive Portal API
draft-ietf-capport-api-04 draft-ietf-capport-api-05
Abstract Abstract
This document describes an HTTP API that allows clients to interact This document describes an HTTP API that allows clients to interact
with a Captive Portal system. with a Captive Portal system.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 32 skipping to change at page 1, line 32
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 5 July 2020. This Internet-Draft will expire on 7 August 2020.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 23 skipping to change at page 2, line 23
4.2. JSON Keys . . . . . . . . . . . . . . . . . . . . . . . . 5 4.2. JSON Keys . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3. Example Interaction . . . . . . . . . . . . . . . . . . . 6 4.3. Example Interaction . . . . . . . . . . . . . . . . . . . 6
5. Security Considerations . . . . . . . . . . . . . . . . . . . 6 5. Security Considerations . . . . . . . . . . . . . . . . . . . 6
5.1. Privacy Considerations . . . . . . . . . . . . . . . . . 7 5.1. Privacy Considerations . . . . . . . . . . . . . . . . . 7
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
6.1. Captive Portal API JSON Media Type Registration . . . . . 7 6.1. Captive Portal API JSON Media Type Registration . . . . . 7
6.2. Captive Portal API Keys Registry . . . . . . . . . . . . 8 6.2. Captive Portal API Keys Registry . . . . . . . . . . . . 8
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. Normative References . . . . . . . . . . . . . . . . . . 9 8.1. Normative References . . . . . . . . . . . . . . . . . . 9
8.2. Informative References . . . . . . . . . . . . . . . . . 9 8.2. Informative References . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction 1. Introduction
This document describes a HyperText Transfer Protocol (HTTP) This document describes a HyperText Transfer Protocol (HTTP)
Application Program Interface (API) that allows clients to interact Application Program Interface (API) that allows clients to interact
with a Captive Portal system. The API defined in this document has with a Captive Portal system. The API defined in this document has
been designed to meet the requirements in the Captive Portal been designed to meet the requirements in the Captive Portal
Architecture [I-D.ietf-capport-architecture]. Specifically, the API Architecture [I-D.ietf-capport-architecture]. Specifically, the API
provides: provides:
skipping to change at page 5, line 31 skipping to change at page 5, line 31
perform server authentication Section 4.1.1. perform server authentication Section 4.1.1.
* "user-portal-url" (optional, string): provides the URL of a web * "user-portal-url" (optional, string): provides the URL of a web
portal with which a user can interact. portal with which a user can interact.
* "venue-info-url" (optional, string): provides the URL of a webpage * "venue-info-url" (optional, string): provides the URL of a webpage
or site on which the operator of the network has information that or site on which the operator of the network has information that
it wishes to share with the user (e.g., store info, maps, flight it wishes to share with the user (e.g., store info, maps, flight
status, or entertainment). status, or entertainment).
* "can-extend-session" (optional, boolean): indicates that the URL
specified as "user-portal-url" allows the user to extend a session
once the client is no longer in a state of captivity. This
provides a hint that a client system can suggest accessing the
portal URL to the user when the session is near its limit in terms
of time or bytes.
* "seconds-remaining" (optional, integer): indicates the number of * "seconds-remaining" (optional, integer): indicates the number of
seconds remaining, after which the client will be placed into a seconds remaining, after which the client will be placed into a
captive state. The API server SHOULD include this value if the captive state. The API server SHOULD include this value if the
client is not captive (i.e. captive=false) and SHOULD omit this client is not captive (i.e. captive=false) and SHOULD omit this
value for captive clients. value for captive clients.
* "bytes-remaining" (optional, integer): indicates the number of * "bytes-remaining" (optional, integer): indicates the number of
bytes remaining, after which the client will be in placed into a bytes remaining, after which the client will be in placed into a
captive state. The byte count represents the total number of IP captive state. The byte count represents the total number of IP
packet (layer 3) bytes sent and received by the client. Captive packet (layer 3) bytes sent and received by the client. Captive
skipping to change at page 6, line 21 skipping to change at page 6, line 24
request: request:
GET /captive-portal/api/X54PD GET /captive-portal/api/X54PD
Host: example.org Host: example.org
Accept: application/captive+json Accept: application/captive+json
The server then responds with the JSON content for that client: The server then responds with the JSON content for that client:
HTTP/1.1 200 OK HTTP/1.1 200 OK
Cache-Control: private Cache-Control: private
Date: Mon, 04 Dec 2013 05:07:35 GMT Date: Mon, 02 Mar 2020 05:07:35 GMT
Content-Type: application/captive+json Content-Type: application/captive+json
{ {
"captive": true, "captive": true,
"user-portal-url": "https://example.org/portal.html", "user-portal-url": "https://example.org/portal.html",
"venue-info-url": "https://flight.example.com/entertainment", "venue-info-url": "https://flight.example.com/entertainment",
"expire-date": "2014-01-01T23:28:56.782Z" "seconds-remaining": 326,
"can-extend-session": true
} }
Upon receiving this information the client will provide this Upon receiving this information the client will provide this
information to the user so that they may navigate the web portal (as information to the user so that they may navigate the web portal (as
specified by the user-portal-url value) to enable access to the specified by the user-portal-url value) to enable access to the
external network. Once the user satisfies the requirements for external network. Once the user satisfies the requirements for
extenal network access, the client SHOULD query the API server again extenal network access, the client SHOULD query the API server again
to verify that it is no longer captive. to verify that it is no longer captive.
5. Security Considerations 5. Security Considerations
 End of changes. 7 change blocks. 
7 lines changed or deleted 15 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/