X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b38a068842cb353c1a511022f464267eb35c8de8..ba56503f90d099a215fb7375f5cb1cc1ac667e2c:/doc/api/tokens.html.textile.liquid diff --git a/doc/api/tokens.html.textile.liquid b/doc/api/tokens.html.textile.liquid index 49d9b55446..0935f9ba1d 100644 --- a/doc/api/tokens.html.textile.liquid +++ b/doc/api/tokens.html.textile.liquid @@ -32,6 +32,15 @@ h3. Direct username/password authentication # The API server receives the username and password, authenticates them with the upstream provider (such as LDAP or PAM), and responds with the @api_client_authorization@ object for the new API token. # The web application receives the authorization token in the response and uses it to access the API server on the user's behalf. +h3. Using an OpenID Connect access token + +A cluster that uses OpenID Connect as a login provider can be configured to accept OIDC access tokens as well as Arvados API tokens (this is disabled by default; see @Login.OpenIDConnect.AcceptAccessToken@ in the "default config.yml file":{{site.baseurl}}/admin/config.html). +# The client obtains an access token from the OpenID Connect provider via some method outside of Arvados. +# The client presents the access token with an Arvados API request (e.g., request header @Authorization: Bearer xxxxaccesstokenxxxx@). +# Depending on configuration, the API server decodes the access token (which must be a signed JWT) and confirms that it includes the required scope (see @Login.OpenIDConnect.AcceptAccessTokenScope@ in the "default config.yml file":{{site.baseurl}}/admin/config.html). +# The API server uses the provider's UserInfo endpoint to validate the presented token. +# If the token is valid, it is cached in the Arvados database and accepted in subsequent API calls for the next 10 minutes. + h3. Diagram !{{site.baseurl}}/images/Session_Establishment.svg!