Configure an Authentication Provider
Configures an Authentication Provider on the tenant.
An authentication or identity provider (IdP) is a platform that is typically used to store and manage user accounts on behalf of an organization or a service provider. MATTR VII uses the authentication provider to authenticate end users before issuing them credentials.
The /.well-known/openid-configuration endpoint of the Authentication Provider must contain values for the authorization_endpoint, token_endpoint and scopes_supported.
Roles
Analytics Events
bearerAuthAuthorizationBearer <token>The Authentication Provider payload
application/json- body
scope?array<string>OpenID scopes to use during authentication. Each scope returns a set of user attributes which are called claims. Be sure to test that right scopes are added to get all the information you need. If no scopes are provided, [openid,profile,email] are added by default. If any scopes are provided, openid must also be included in the array.
[ "openid", "profile", "email"]clientId*stringThe client ID of the application client created on your IdP.
clientSecret*stringThe client secret of the application client created on your IdP.
tokenEndpointAuthMethod?stringAuthentication method for your IdP token endpoint:
client_secret_post: Your credentials are passed as parameters in the request body.client_secret_basic(default): Your credentials are passed as a base 64 encoded token.
"client_secret_basic""client_secret_basic""client_secret_post"staticRequestParameters?Additional parameters (maximum 1000 entries allowed) that will be included in the request to your IdP. These parameters are identical for every request as defined in your configuration. An example would be setting the prompt to be login to let your IdP know it should show the login page every time. Keys must be strings. Values of top-level object keys must stringify to less than 1000 characters.
properties <= 1000forwardedRequestParameters?array<>In contrast to staticRequestParameters, you can provide dynamic parameters that are fetched uniquely for each request to make the user journey more seamless. You can forward params to your IdP like login_hint which will pass the email of the user starting the flow. Values are limited to 1000 characters each, and cannot override any core Authorize Parameters.
[]claimsToPersist?array<string>List of claims to persist from your IdP to MATTR VII. If you have attributes from the ID token (e.g. user identifier, email, etc.) that you would like persisted on MATTR VII, add them to this array. By default this array is empty, meaning no claims are persisted on MATTR VII.
[]url*stringBase url for your Authentication Provider well-known endpoint:
- Must be a valid URL.
- Must use the HTTPS protocol.
- Must not be an IP address.
- Must not contain query parameters. Port and fragment parameters will be dropped.
- URL must use https and have a valid public TLD.
- Unicode will be converted to ASCII.
uriAuthentication Provider configured
application/json- response
id?stringUnique identifier for the configured authentication provider. This identifier can be used to retrieve, update or remove the authentication provider configuration.
uuidredirectUrl?stringYou will need to add this URL to your IdP's allowed redirects list, to enable it to redirect the user back to the wallet upon successful authentication with your IdP. If you are using Auth0 as your identity provider, this guide shows how to add callback URLs. For others, consult your provider for instructions on adding callback URLs.
uriurl?stringBase url for your Authentication Provider well-known endpoint.
uriscope?array<string>OpenID scopes to use during authentication. Each scope returns a set of user attributes which are called claims. Be sure to test that right scopes are added to get all the information you need. If no scopes are provided, [openid,profile,email] are added by default. If any scopes are provided, openid must also be included in the array.
[ "openid", "profile", "email"]clientId*stringThe client ID of the application client created on your IdP.
clientSecret*stringYour authentication provider client secret will be masked in the response without revealing the actual secret. If the secret is less than 20 characters it will be completely masked, and if it is over 20 only the last 5 characters are revealed.
tokenEndpointAuthMethod?stringAuthentication method for your IdP token endpoint:
client_secret_post: Your credentials are passed as parameters in the request body.client_secret_basic(default): Your credentials are passed as a base 64 encoded token.
"client_secret_basic""client_secret_basic""client_secret_post"staticRequestParameters?Additional parameters (maximum 1000 entries allowed) that will be included in the request to your IdP. These parameters are identical for every request as defined in your configuration. An example would be setting the prompt to be login to let your IdP know it should show the login page every time. Keys must be strings. Values of top-level object keys must stringify to less than 1000 characters.
properties <= 1000forwardedRequestParameters?array<>In contrast to staticRequestParameters, you can provide dynamic parameters that are fetched uniquely for each request to make the user journey more seamless. You can forward params to your IdP like login_hint which will pass the email of the user starting the flow. Values are limited to 1000 characters each, and cannot override any core Authorize Parameters.
[]claimsToPersist?array<string>List of claims to persist from your IdP to MATTR VII. If you have attributes from the ID token (e.g. user identifier, email, etc.) that you would like persisted on MATTR VII, add them to this array. By default this array is empty, meaning no claims are persisted on MATTR VII.
[]curl -X POST 'https://example.vii.au01.mattr.global/v1/users/authentication-providers' \ -H 'Content-Type: application/json' \ -d '{ "clientId": "vJ0SCKchr4XjC0xHNE8DkH6Pmlg2lkCN"}'{ "id": "983c0a86-204f-4431-9371-f5a22e506599", "redirectUrl": "https://tenant.vii.mattr.global/v1/oauth/authentication/callback", "url": "http://example.com", "scope": [ "openid", "profile", "email", "address", "phone" ], "clientId": "vJ0SCKchr4XjC0xHNE8DkH6Pmlg2lkCN", "tokenEndpointAuthMethod": "client_secret_post", "staticRequestParameters": { "prompt": "login", "max_age": 10000 }, "forwardedRequestParameters": [ "login_hint" ], "claimsToPersist": [ "userId" ], "clientSecret": "***********************************************************6-OjH"}How would you rate this page?
Unlink a credential reference POST
Unlink every credential bundle held against the specified credential reference. Each bundle has its state set to `unlinked`, the credentials it holds are revoked, and the refresh token issued for its session is invalidated. Use this to withdraw a credential from every device the user holds it on, rather than one device at a time. The response lists the bundles that were unlinked. Bundles that were already unlinked are left alone and are not returned, so a reference with nothing left to unlink returns an empty list. An unlinked bundle cannot be targeted for a [credential update](/docs/issuance/update/overview). Unlinking is permanent and cannot be reversed. To put a credential back in the holder's wallet, issue a new one. Credential update is offered as an **open beta preview** feature and is not generally available yet. It is available on all tenants, and its behavior may change in a way that breaks existing integrations before it becomes generally available.
Retrieve all Authentication Providers GET
Returns a list of all Authentication Providers on your tenant.