AuthServer
Dynamic Client Registration
Enable DCR only when you need runtime registration for compatibility clients.
DCR is the compatibility path in SqlOS.
It exists for real clients that still expect runtime registration at POST /register.
Enable DCR when:
Keep it off when:
CIMD is available and fits the clientbuilder.AddSqlOS<AppDbContext>(options =>
{
options.AuthServer.EnableChatGptCompatibility(dcr =>
{
dcr.MaxRegistrationsPerWindow = 25;
});
});Or enable it directly:
builder.AddSqlOS<AppDbContext>(options =>
{
options.AuthServer.ClientRegistration.Dcr.Enabled = true;
});SqlOS then advertises registration_endpoint in auth-server metadata.
SqlOS intentionally keeps DCR narrow:
authorization_coderesponse_types=codetoken_endpoint_auth_method=noneSqlOS does not use DCR for:
DCR creates real client rows in the existing store, so lifecycle controls matter.
SqlOS includes:
Use a policy hook when redirect rules alone are not enough:
builder.AddSqlOS<AppDbContext>(options =>
{
options.AuthServer.ClientRegistration.Dcr.Policy = async (context, cancellationToken) =>
{
if (context.RedirectUris.Count == 0)
{
return SqlOSClientRegistrationPolicyDecision.Deny("At least one redirect URI is required.");
}
return SqlOSClientRegistrationPolicyDecision.Allow();
};
});This is the right place for: