For Developers

Well-Known

The OpenID Connect (OIDC) well-known configuration endpoint provides essential information about Edlink's OIDC provider. This endpoint helps clients (applications) interact with Edlink by dynamically discovering necessary endpoints and supported features.

You can find the well-known configuration endpoint at https://ed.link/api/authentication/oidc/.well-known/openid-configuration/. This endpoint returns a JSON object containing details such as the issuer, authorization endpoint, token endpoint, scopes supported, response types supported, and more.

Purpose of the Well-Known Configuration Endpoint

The main purpose of the well-known configuration endpoint is to streamline the process of integrating with Edlink. By providing a single, consistent location to retrieve configuration details, it simplifies client setup and ensures that all clients have access to the latest configuration without manual updates.

Example Configuration

Here is the provided well-known configuration:

{
    "issuer": "https://ed.link/api/authentication/oidc",
    "authorization_endpoint": "https://ed.link/api/authentication/oidc/authorize",
    "token_endpoint": "https://ed.link/api/authentication/oidc/token",
    "token_endpoint_auth_methods_supported": ["client_secret_basic"],
    "token_endpoint_auth_signing_alg_values_supported": ["RS256"],
    "userinfo_endpoint": "https://ed.link/api/authentication/oidc/userinfo",
    "jwks_uri": "https://ed.link/api/authentication/oidc/jwks",
    "scopes_supported": ["openid", "profile", "email"],
    "response_types_supported": ["code", "token", "id_token", "code token", "code id_token", "id_token token", "code id_token token", "none"],
    "subject_types_supported": ["public"],
    "userinfo_signing_alg_values_supported": ["RS256"],
    "id_token_signing_alg_values_supported": ["RS256"],
    "introspection_endpoint": "https://ed.link/api/authentication/oidc/introspect",
    "introspection_endpoint_auth_methods_supported": ["client_secret_basic"],
    "revocation_endpoint": "https://ed.link/api/authentication/oidc/revoke",
    "revocation_endpoint_auth_methods_supported": ["client_secret_basic"],
    "service_documentation": "https://ed.link/docs",
    "ui_locales_supported": ["en-US"]
}

How to Use the Well-Known Configuration

1. Issuer

The issuer field is Edlink's identifier. It must match exactly with the iss field in the ID Token.

"issuer": "https://ed.link/api/authentication/oidc"

2. Authorization Endpoint

This endpoint is used to initiate the authentication request. Clients redirect users to this endpoint to start the login process.

"authorization_endpoint": "https://ed.link/api/authentication/oidc/authorize"

3. Token Endpoint

After authentication, clients use this endpoint to exchange the authorization code for an access token.

"token_endpoint": "https://ed.link/api/authentication/oidc/token"

4. Token Endpoint Authentication Methods Supported

Lists the supported methods for client authentication at the token endpoint.

"token_endpoint_auth_methods_supported": [
  "client_secret_basic"
]

5. Token Endpoint Authentication Signing Algorithms Supported

Specifies the algorithms that can be used for signing at the token endpoint.

"token_endpoint_auth_signing_alg_values_supported": [
  "RS256"
]

6. Userinfo Endpoint

This endpoint provides user profile information. Clients use the access token to retrieve user details from this endpoint.

"userinfo_endpoint": "https://ed.link/api/authentication/oidc/userinfo"

7. JWKS URI

The JSON Web Key Set (JWKS) URI is used to retrieve the public keys necessary to verify the signatures of tokens.

"jwks_uri": "https://ed.link/api/authentication/oidc/jwks"

8. Scopes Supported

The scopes define the level of access requested by the client. The supported scopes in this configuration include openid, profile, and email.

"scopes_supported": [
  "openid",
  "profile",
  "email"
]

9. Response Types Supported

Defines the types of responses supported by the authorization endpoint.

"response_types_supported": [
  "code",
  "token",
  "id_token",
  "code token",
  "code id_token",
  "id_token token",
  "code id_token token",
  "none"
]

10. Subject Types Supported

Indicates the types of subject identifiers supported. In this case, only public is supported.

"subject_types_supported": [
  "public"
]

11. Userinfo Signing Algorithms Supported

Specifies the algorithms supported for signing the Userinfo responses.

"userinfo_signing_alg_values_supported": [
  "RS256"
]

12. ID Token Signing Algorithms Supported

Lists the algorithms supported for signing ID tokens.

"id_token_signing_alg_values_supported": [
  "RS256"
]

13. Introspection Endpoint

Clients use this endpoint to introspect (validate) access tokens.

"introspection_endpoint": "https://ed.link/api/authentication/oidc/introspect"

14. Introspection Endpoint Authentication Methods Supported

Defines the supported authentication methods for the introspection endpoint.

"introspection_endpoint_auth_methods_supported": [
  "client_secret_basic"
]

15. Revocation Endpoint

The endpoint to revoke access tokens, typically used when a client wants to invalidate a token before it expires.

"revocation_endpoint": "https://ed.link/api/authentication/oidc/revoke"

16. Revocation Endpoint Authentication Methods Supported

Specifies the supported authentication methods for the revocation endpoint.

"revocation_endpoint_auth_methods_supported": [
  "client_secret_basic"
]

17. Service Documentation

A link to the documentation for further information and detailed guides on how to use Edlink's OIDC provider.

"service_documentation": "https://ed.link/docs"

18. UI Locales Supported

Indicates the supported locales for the user interface, which in this case includes English (United States).

"ui_locales_supported": [
  "en-US"
]