Auth0 Integration¶
The Study Creator integrates with Auth0 (or another OIDC serivce) to authenticate users of the API.
See Authentication for more information.
Feature Flags¶
Authentication will be performed by default so long as the Study Creator is
being run outside of DEBUG
mode.
Otherwise, a default admin user will be used as the default authenticated
user for all requests.
This should only be used for local development needs.
Configuration Settings¶
-
AUTH0_DOMAIN
¶ default:
https://kids-first.auth0.com
The base url for the OIDC complient endpoint.
-
AUTH0_JKWS
¶ required
default
https://kids-first.auth0.com/.well-known/jwks.json
The endpoint from which to retriev a JWK to verify tokens being sent to the Study Creator as specified by the
jwks_uri
in the OIDC Discovery configuration of the auth provider.
-
AUTH0_AUD
¶ required
default
https://kf-study-creator.kidsfirstdrc.org
The trusted audience of tokens which the Study Creator will accept.
-
AUTH0_SERVICE_AUD
¶ required
default
https://kf-study-creator.kidsfirstdrc.org
The audience for which the Study Creator will retrieve
client_credentials
service tokens for.
-
AUTH0_CLIENT
¶ required
The client id for use in the
client_credentials
flow.
-
AUTH0_SECRET
¶ required
The client secret for use in the
client_credentials
flow.
-
CACHE_AUTH0_KEY
¶ default
AUTH0_PUBLIC_KEY
The key name to store the public key from
AUTH0_JKWS
under in the cache.
-
CACHE_AUTH0_SERVICE_KEY
¶ default
AUTH0_SERVICE_KEY
The key name to store the service token retrieved from the
client_credentials
flow under in the cache.
-
CACHE_AUTH0_TIMEOUT
¶ default
86400
The time in seconds after which the
CACHE_AUTH0_KEY
andCACHE_AUTH0_SERVICE_KEY
will expire and be refetched.
Configuration¶
The Study Creator will work with the auth provider to both to verify incoming
requests against the public key specified by AUTH0_JKWS
and
verify itself by attaching tokens with a client_credentials
grant obtained
through the AUTH0_CLIENT
and AUTH0_SECRET
pair.
The verification of incoming tokens may be done by the Study Creator through
the public JWK endpoint as well as any other service that wishes to verify
them.
To verify outgoing requests by the Study Creator to external services, however,
require secrets to be stored to obtain tokens.
To do this, AUTH0_CLIENT
and AUTH0_SECRET
need to be
supplied in the environment.
These are generated by registering an application for the Study Creator in
Auth0 and registering a corresponding Auth0 API which allows Study Creator
application to access it.
The API’s Identifier
will be the aud
used to request new
client_credentials
token and will need to be set for
AUTH0_SERVICE_AUD
so that the Study Creator may request the correct
aud
.
See How to implement the Client Credentials Grant
on Auth0 for more information.