Library for making assertions against an auth service.
npm install @d2l/brightspace-auth-provisioning --savevar AuthTokenProvisioner = require('@d2l/brightspace-auth-provisioning');
var provisioner = new AuthTokenProvisioner({
issuer: 'ece083bc-e6ac-11e4-8e1b-54ee750fffa4',
keyLookup: function () {
return Promise.resolve({
kid: '0a9e68f6-e6ad-11e4-8ab6-54ee750fffa4',
pem: '...'
});
}
});
var tokenPromise = provisioner
.provisionToken({
user: '32647',
tenant: '5492ff8a-e6ad-11e4-84d6-54ee750fffa4',
scopes: ['updates:feed-items:read']
});The String used to identify your local issuer/service. This must be registered
with the auth service.
A function which returns a Promise to an Object representing your current
signing key. The object must have the properties kid, which is a unique
String, and pem which is the String representing the private key.
NOTE: Only RSA keys are supported at this time.
Option: remoteIssuer String (https://auth.proddev.d2l:44331/core)
You may optionally specifiy the endpoint of the remote issuer, or auth service.
You may optionally specify an instance of an object inheriting from
AuthTokenProvisioner.AbstractProvisioningCache.
Given the set of claims provided, will make an assertion against the auth service. Returns a promise to the encoded access token.
The set of scopes to include in the auth token. The contained scopes should
fit our semantic scope formatting: <group>:<resource>:<permission>.
The GUID of the tenant this token is meant for.
The id of the user this token is meant for. Requires the tenant option has been set.
Available on the export is a reference to the AbstractProvisioningCache
npm test-
Fork the repository. Committing directly against this repository is highly discouraged.
-
Make your modifications in a branch, updating and writing new unit tests as necessary in the
specdirectory. -
Ensure that all tests pass with
npm test -
rebaseyour changes against master. Do not merge. -
Submit a pull request to this repository. Wait for tests to run and someone to chime in.
This repository is configured with EditorConfig, jscs and JSHint rules. See the docs.dev code style article for information on installing editor extensions.