> For the complete documentation index, see [llms.txt](https://authdocs.skill-mine.com/licentio-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://authdocs.skill-mine.com/licentio-documentation/references/openid-connect.md).

# OpenID Connect

## OpenID Well-Known URL

### Introduction

The OpenID Well-Known URL, also known as the OpenID Connect Discovery, is a crucial feature in the OpenID Connect protocol.

It provides a standardized way for clients (applications) to discover essential configuration details about an Identity Provider (IdP).&#x20;

This discovery process is essential for setting up secure authentication and authorization flows between the client and the IdP.

### Purpose of the Well-Known URL

The primary purpose of the OpenID Well-Known URL is to allow clients to retrieve configuration information about the IdP dynamically. This dynamic configuration retrieval has several advantages

1. **Simplified Integration**: Clients can integrate with multiple IdPs without hardcoding configuration details for each one. This flexibility makes it easier to switch between IdPs or support various authentication providers seamlessly.
2. **Security**: By obtaining configuration details directly from the IdP, clients reduce the risk of misconfiguration and security vulnerabilities. They can trust that the information received is up-to-date and accurate.
3. **Standardization**: OpenID Connect Discovery defines a standardized set of configuration parameters, ensuring consistent implementations across different IdPs and clients.

### Accessing the Well-Known URL

The OpenID Well-Known URL is constructed by replacing the Issuer URL with the following example. The Issuer URL will be the base URL of the IdP's authorization server.

```arduino
https://[Issuer-URL]/.well-known/openid-configuration
```

To retrieve the configuration, a client can perform an HTTP GET request to this URL and receive a JSON response containing critical information about the IdP.

### Configuration Details

The JSON response from the Well-Known URL typically includes the following key configuration details:

* **issuer**: The base URL of the IdP, used for identifying the IdP.
* **authorization\_endpoint**: The URL where the authentication and authorization process begins.
* **token\_endpoint**: The URL for obtaining access tokens and ID tokens.
* **userinfo\_endpoint**: An optional endpoint for retrieving additional user information.
* **jwks\_uri**: The URL where the IdP publishes its JSON Web Key Set (JWKS), used for token validation.
* **registration\_endpoint**: URL for dynamic client registration with the IdP.
* **check\_session\_iframe**: URL for checking the session status of a user.
* **end\_session\_endpoint**: URL for initiating single sign-out (logout).
* **social\_token\_exchange\_url**: URL for exchanging tokens with social identity providers.
* **device\_authorization\_endpoint**: Endpoint for device-based authentication.
* **scopes\_supported**: Supported scopes that can be requested when obtaining tokens.
* **response\_types\_supported**: Supported OAuth 2.0 response types.
* **response\_modes\_supported**: Supported response modes for authorization responses.
* **grant\_types\_supported**: Supported OAuth 2.0 grant types.
* **acr\_values\_supported**: Supported authentication context class references (ACR) values.
* **subject\_types\_supported**: Supported subject (user identifier) types.
* **id\_token\_signing\_alg\_values\_supported**: Supported algorithms for signing ID tokens.
* **id\_token\_encryption\_alg\_values\_supported**: Supported algorithms for encrypting ID tokens.
* **id\_token\_encryption\_enc\_values\_supported**: Supported encryption encodings for ID tokens.
* **userinfo\_signing\_alg\_values\_supported**: Supported algorithms for signing user information.
* **userinfo\_encryption\_alg\_values\_supported**: Supported algorithms for encrypting user information.
* **userinfo\_encryption\_enc\_values\_supported**: Supported encryption encodings for user information.
* **request\_object\_signing\_alg\_values\_supported**: Supported algorithms for signing request objects.
* **request\_object\_encryption\_alg\_values\_supported**: Supported algorithms for encrypting request objects.
* **request\_object\_encryption\_enc\_values\_supported**: Supported encryption encodings for request objects.
* **token\_endpoint\_auth\_methods\_supported**: Supported authentication methods at the token endpoint.
* **token\_endpoint\_auth\_signing\_alg\_values\_supported**: Supported algorithms for signing tokens at the token endpoint.
* **display\_values\_supported**: Supported display parameter values.
* **claim\_types\_supported**: Supported claim types.
* **claims\_supported**: Supported claims (user attributes).
* **claims\_locales\_supported**: Supported language tags for claims.
* **ui\_locales\_supported**: Supported language tags for the user interface.
* **claims\_parameter\_supported**: Indicates whether the `claims` request parameter is supported.
* **request\_parameter\_supported**: Indicates whether the `request` request parameter is supported.
* **request\_uri\_parameter\_supported**: Indicates whether the `request_uri` request parameter is supported.
* **require\_request\_uri\_registration**: Indicates whether clients must register `request_uri` values for request objects.
* **service\_documentation**: URL pointing to documentation for the IdP's services.
* **op\_policy\_uri**: URL for the IdP's policy document.
* **op\_tos\_uri**: URL for the IdP's terms of service.
* **code\_challenge\_methods\_supported**: Supported PKCE(Proof Key for Code Exchange) code challenge methods.

### Conclusion

The OpenID Well-Known URL is a fundamental feature of the OpenID Connect protocol, enabling secure, flexible, and standardized integration between clients and Identity Providers.&#x20;

By dynamically discovering configuration details, clients can streamline the authentication and authorization process while enhancing security and interoperability.
