Client
Clients are entities that request access to Resources on behalf of Users or backend services. Mekarge A3 is designed around Confidential Clients only. This means Clients are expected to securely store secrets or private keys. Public Clients are intentionally not supported. Mekarge A3 supports four main application types, each with specific features and requirements based on their intended use.
Machine-to-Machine (M2M) Application Clients
M2M application Clients are used for automated interactions between machines or services, without direct user involvement. These Clients can authenticate directly with the Mekarge A3 Authorization Server using Client Credentials Flow.

Web Application Clients
Web application Clients are part of an application that is accessed and interacted with via a web browser. This application is expected to use HTTP redirects to initiate Authorization Grant Flow towards Mekarge A3 Authorization Server.
All Permissions granted to this type of Client must have at least one Role attached.
These Clients can make use of features including PKCE, OpenID Connect, Refresh Tokens (Offline Access), and Remember Me functionality. Remember Me allows for persistent sessions, enhancing user convenience while maintaining security.

Native Application Clients
Native Application Clients are designed for applications running directly on user devices such as mobile phones. These Clients require device attestation through a separate Attestation Server in order to verify device authenticity and integrity. The Attestation Server is expected to use HTTP redirects to initiate Authorization Grant Flow towards Mekarge A3 Authorization Server.
All Permissions granted to this type of Client must have at least one Role and one Attestation Profile attached.
These Clients can make use of features including Device Attestation Enforcement, PKCE, OpenID Connect, and Refresh Tokens (Offline Access).

MCP Host Clients
MCP Host Clients are specifically designed for applications that interact with MCP Servers using Streamable HTTP as the transport layer. In addition to Permissions, they can be associated with Contexts providing additional access metadata for MCP Server Resources.
All Permissions granted to this type of Client must have at least one Role attached. Similarly, all Context Visibility granted to this type of Client must have at least one Role attached as well.
These Clients can make use of features including PKCE, OpenID Connect, Refresh Tokens (Offline Access), and Remember Me functionality. Remember Me allows for persistent sessions, enhancing user convenience while maintaining security.
