March 27, 2019 – Updated wiki documentation to use "groups.uw.edu" as the production environment; use of "iam-ws.u.washington.edu" is deprecated. |
This guide describes the Groups Service REST API (Groups API) as used by programmatic clients. It does not describe the Groups user interface (UI) offered to browser users.
The Groups API is a programmable interface, so you are expected to be an application developer.
The Groups API offers a "RESTful" programmatic interface. It exposes groups and group information as addressable resources via the uniform HTTP interface.
Authorized clients may retrieve (GET), update (PUT) and delete (DELETE) representations of these resources through the API.
Client applications must be able to connect to the web service using HTTPS and authenticate using SSL/TLS authentication with an X.509 certificate.
Some conventions used in our documentation:
text
}" should be replaced with a specific name or identifier.uwnetid|group|dns|eppn|uwwi
.Some conventions used in the API itself:
Clients authenticate with X.509 certificates issued by the UW Services Certificate Authority and are identified by the Subject of the certificate: specifically, the DNS name included in the Common Name (CN) value or any Subject Alt Names.
Hosts connecting to the Groups API must have their DNS name registered in UW DNS.
The Groups API also identifies itself with a server certificate issued by the same authority.
Some clients may assume the privileges of, and act for, another user. This is accomplished by adding an act-as header to a request:
X-UW-Act-as: user's_ePPN |
Connecting on port 443 is recommended and required for off campus access. Connecting on the alternate port (7443) is deprecated but supported for legacy campus access. Also note that jumbo frames (MTU > 1500) are not supported.
Your application must be able to connect to the web service using HTTPS and authenticate using SSL/TLS authentication with an X.509 certificate. It must be able to make HTTP GET, PUT, and DELETE requests to the service as needed.
A group may be configured to require 2-factor authentication for update operations including PUT and DELETE operations on the general information, membership, or application information.
authnfactor
" and has a value of 1
or 2
.However, note that:
2
cannot be updated via the API.A group may be classified, according to the APS 2.6 and UW Data Classification guidelines.
The API attribute class is "classification
" and may have the values:
Notes:
Direct Members: Groups have several types of direct members:
UWNetID | A simple UWNetID, e.g. |
EPPN | A fully qualified eduPersonPrincipalName, e.g. |
DNS | A UWCA certificate's common name or subjectAltName, e.g. |
Group | Name of another group, e.g. |
MI | A Microsoft Infrastructure AD machine name |
The Groups API accepts the POST method for two purposes:
URI too long
If your uri would be too long for likely transport to the web service you may enclose it in a POST, with the elements:
|
included in the POST document. The path components of you actual URL must match those in the posted "_uri".
PUT content too big
If your PUT content would be too big for likely transport to the web service you may enclose it in a POST, with the element:
|
included in the POST document.
Groups API supports version v1, v2 and v3 (recommended).
v3 API provides JSON representation and Swagger documentation: Groups Service API v3 |
v1 and v2 API's provide XML representation. Click here for details. |
Email help@uw.edu to contact the staff in UW-IT who oversee this wiki space and the groups service.
Announcements : Join groups-announce@uw.edu for service announcements.
Discussion : Discuss the service with other customers and users on groups-users@uw.edu.