Add option to require initial kca_service tickets
Default to TRUE, and allow setting it on a per-realm basis.
This commit is contained in:
13
kdc/kx509.c
13
kdc/kx509.c
@@ -342,6 +342,7 @@ _kdc_do_kx509(krb5_context context,
|
|||||||
Kx509Response rep;
|
Kx509Response rep;
|
||||||
size_t size;
|
size_t size;
|
||||||
krb5_keyblock *key = NULL;
|
krb5_keyblock *key = NULL;
|
||||||
|
krb5_boolean def_bool;
|
||||||
|
|
||||||
krb5_data_zero(reply);
|
krb5_data_zero(reply);
|
||||||
memset(&rep, 0, sizeof(rep));
|
memset(&rep, 0, sizeof(rep));
|
||||||
@@ -374,6 +375,18 @@ _kdc_do_kx509(krb5_context context,
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
def_bool = krb5_config_get_bool_default(context, NULL, TRUE, "kdc",
|
||||||
|
"require_initial_kca_tickets",
|
||||||
|
NULL);
|
||||||
|
if (!ticket->ticket.flags.initial &&
|
||||||
|
krb5_config_get_bool_default(context, NULL, def_bool, "kdc",
|
||||||
|
krb5_principal_get_realm(context,
|
||||||
|
cprincipal),
|
||||||
|
"require_initial_kca_tickets", NULL)) {
|
||||||
|
ret = KRB5KDC_ERR_POLICY;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
ret = krb5_unparse_name(context, cprincipal, &cname);
|
ret = krb5_unparse_name(context, cprincipal, &cname);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
Reference in New Issue
Block a user