1*ebfedea0SLionel Sambuc.\" $NetBSD: krb5_get_creds.3,v 1.1.1.2 2011/04/14 14:09:23 elric Exp $ 2*ebfedea0SLionel Sambuc.\" 3*ebfedea0SLionel Sambuc.\" Copyright (c) 2006 Kungliga Tekniska Högskolan 4*ebfedea0SLionel Sambuc.\" (Royal Institute of Technology, Stockholm, Sweden). 5*ebfedea0SLionel Sambuc.\" All rights reserved. 6*ebfedea0SLionel Sambuc.\" 7*ebfedea0SLionel Sambuc.\" Redistribution and use in source and binary forms, with or without 8*ebfedea0SLionel Sambuc.\" modification, are permitted provided that the following conditions 9*ebfedea0SLionel Sambuc.\" are met: 10*ebfedea0SLionel Sambuc.\" 11*ebfedea0SLionel Sambuc.\" 1. Redistributions of source code must retain the above copyright 12*ebfedea0SLionel Sambuc.\" notice, this list of conditions and the following disclaimer. 13*ebfedea0SLionel Sambuc.\" 14*ebfedea0SLionel Sambuc.\" 2. Redistributions in binary form must reproduce the above copyright 15*ebfedea0SLionel Sambuc.\" notice, this list of conditions and the following disclaimer in the 16*ebfedea0SLionel Sambuc.\" documentation and/or other materials provided with the distribution. 17*ebfedea0SLionel Sambuc.\" 18*ebfedea0SLionel Sambuc.\" 3. Neither the name of the Institute nor the names of its contributors 19*ebfedea0SLionel Sambuc.\" may be used to endorse or promote products derived from this software 20*ebfedea0SLionel Sambuc.\" without specific prior written permission. 21*ebfedea0SLionel Sambuc.\" 22*ebfedea0SLionel Sambuc.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 23*ebfedea0SLionel Sambuc.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24*ebfedea0SLionel Sambuc.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25*ebfedea0SLionel Sambuc.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 26*ebfedea0SLionel Sambuc.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27*ebfedea0SLionel Sambuc.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28*ebfedea0SLionel Sambuc.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29*ebfedea0SLionel Sambuc.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30*ebfedea0SLionel Sambuc.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31*ebfedea0SLionel Sambuc.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32*ebfedea0SLionel Sambuc.\" SUCH DAMAGE. 33*ebfedea0SLionel Sambuc.\" 34*ebfedea0SLionel Sambuc.\" Id 35*ebfedea0SLionel Sambuc.\" 36*ebfedea0SLionel Sambuc.Dd June 15, 2006 37*ebfedea0SLionel Sambuc.Dt KRB5_GET_CREDS 3 38*ebfedea0SLionel Sambuc.Os 39*ebfedea0SLionel Sambuc.Sh NAME 40*ebfedea0SLionel Sambuc.Nm krb5_get_creds , 41*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_add_options , 42*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_alloc , 43*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_free , 44*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_enctype , 45*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_impersonate , 46*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_options , 47*ebfedea0SLionel Sambuc.Nm krb5_get_creds_opt_set_ticket 48*ebfedea0SLionel Sambuc.Nd get credentials from the KDC 49*ebfedea0SLionel Sambuc.Sh LIBRARY 50*ebfedea0SLionel SambucKerberos 5 Library (libkrb5, -lkrb5) 51*ebfedea0SLionel Sambuc.Sh SYNOPSIS 52*ebfedea0SLionel Sambuc.In krb5/krb5.h 53*ebfedea0SLionel Sambuc.Ft krb5_error_code 54*ebfedea0SLionel Sambuc.Fo krb5_get_creds 55*ebfedea0SLionel Sambuc.Fa "krb5_context context" 56*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt" 57*ebfedea0SLionel Sambuc.Fa "krb5_ccache ccache" 58*ebfedea0SLionel Sambuc.Fa "krb5_const_principal inprinc" 59*ebfedea0SLionel Sambuc.Fa "krb5_creds **out_creds" 60*ebfedea0SLionel Sambuc.Fc 61*ebfedea0SLionel Sambuc.Ft void 62*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_add_options 63*ebfedea0SLionel Sambuc.Fa "krb5_context context" 64*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt" 65*ebfedea0SLionel Sambuc.Fa "krb5_flags options" 66*ebfedea0SLionel Sambuc.Fc 67*ebfedea0SLionel Sambuc.Ft krb5_error_code 68*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_alloc 69*ebfedea0SLionel Sambuc.Fa "krb5_context context" 70*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt *opt" 71*ebfedea0SLionel Sambuc.Fc 72*ebfedea0SLionel Sambuc.Ft void 73*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_free 74*ebfedea0SLionel Sambuc.Fa "krb5_context context" 75*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt" 76*ebfedea0SLionel Sambuc.Fc 77*ebfedea0SLionel Sambuc.Ft void 78*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_enctype 79*ebfedea0SLionel Sambuc.Fa "krb5_context context" 80*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt" 81*ebfedea0SLionel Sambuc.Fa "krb5_enctype enctype" 82*ebfedea0SLionel Sambuc.Fc 83*ebfedea0SLionel Sambuc.Ft krb5_error_code 84*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_impersonate 85*ebfedea0SLionel Sambuc.Fa "krb5_context context" 86*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt" 87*ebfedea0SLionel Sambuc.Fa "krb5_const_principal self" 88*ebfedea0SLionel Sambuc.Fc 89*ebfedea0SLionel Sambuc.Ft void 90*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_options 91*ebfedea0SLionel Sambuc.Fa "krb5_context context" 92*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt" 93*ebfedea0SLionel Sambuc.Fa "krb5_flags options" 94*ebfedea0SLionel Sambuc.Fc 95*ebfedea0SLionel Sambuc.Ft krb5_error_code 96*ebfedea0SLionel Sambuc.Fo krb5_get_creds_opt_set_ticket 97*ebfedea0SLionel Sambuc.Fa "krb5_context context" 98*ebfedea0SLionel Sambuc.Fa "krb5_get_creds_opt opt" 99*ebfedea0SLionel Sambuc.Fa "const Ticket *ticket" 100*ebfedea0SLionel Sambuc.Fc 101*ebfedea0SLionel Sambuc.Sh DESCRIPTION 102*ebfedea0SLionel Sambuc.Fn krb5_get_creds 103*ebfedea0SLionel Sambucfetches credentials specified by 104*ebfedea0SLionel Sambuc.Fa opt 105*ebfedea0SLionel Sambucby first looking in the 106*ebfedea0SLionel Sambuc.Fa ccache , 107*ebfedea0SLionel Sambucand then it doesn't exists, fetch the credential from the KDC 108*ebfedea0SLionel Sambucusing the krbtgts in 109*ebfedea0SLionel Sambuc.Fa ccache . 110*ebfedea0SLionel SambucThe credential is returned in 111*ebfedea0SLionel Sambuc.Fa out_creds 112*ebfedea0SLionel Sambucand should be freed using the function 113*ebfedea0SLionel Sambuc.Fn krb5_free_creds . 114*ebfedea0SLionel Sambuc.Pp 115*ebfedea0SLionel SambucThe structure 116*ebfedea0SLionel Sambuc.Li krb5_get_creds_opt 117*ebfedea0SLionel Sambuccontrols the behavior of 118*ebfedea0SLionel Sambuc.Fn krb5_get_creds . 119*ebfedea0SLionel SambucThe structure is opaque to consumers that can set the content of the 120*ebfedea0SLionel Sambucstructure with accessors functions. All accessor functions make copies 121*ebfedea0SLionel Sambucof the data that is passed into accessor functions, so external 122*ebfedea0SLionel Sambucconsumers free the memory before calling 123*ebfedea0SLionel Sambuc.Fn krb5_get_creds . 124*ebfedea0SLionel Sambuc.Pp 125*ebfedea0SLionel SambucThe structure 126*ebfedea0SLionel Sambuc.Li krb5_get_creds_opt 127*ebfedea0SLionel Sambucis allocated with 128*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_alloc 129*ebfedea0SLionel Sambucand freed with 130*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_free . 131*ebfedea0SLionel SambucThe free function also frees the content of the structure set by the 132*ebfedea0SLionel Sambucaccessor functions. 133*ebfedea0SLionel Sambuc.Pp 134*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_add_options 135*ebfedea0SLionel Sambucand 136*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_options 137*ebfedea0SLionel Sambucadds and sets options to the 138*ebfedea0SLionel Sambuc.Fi krb5_get_creds_opt 139*ebfedea0SLionel Sambucstructure . 140*ebfedea0SLionel SambucThe possible options to set are 141*ebfedea0SLionel Sambuc.Bl -tag -width "KRB5_GC_USER_USER" -compact 142*ebfedea0SLionel Sambuc.It KRB5_GC_CACHED 143*ebfedea0SLionel SambucOnly check the 144*ebfedea0SLionel Sambuc.Fa ccache , 145*ebfedea0SLionel Sambucdon't got out on network to fetch credential. 146*ebfedea0SLionel Sambuc.It KRB5_GC_USER_USER 147*ebfedea0SLionel Sambucrequest a user to user ticket. 148*ebfedea0SLionel SambucThis options doesn't store the resulting user to user credential in 149*ebfedea0SLionel Sambucthe 150*ebfedea0SLionel Sambuc.Fa ccache . 151*ebfedea0SLionel Sambuc.It KRB5_GC_EXPIRED_OK 152*ebfedea0SLionel Sambucreturns the credential even if it is expired, default behavior is trying 153*ebfedea0SLionel Sambucto refetch the credential from the KDC. 154*ebfedea0SLionel Sambuc.It KRB5_GC_NO_STORE 155*ebfedea0SLionel SambucDo not store the resulting credentials in the 156*ebfedea0SLionel Sambuc.Fa ccache . 157*ebfedea0SLionel Sambuc.El 158*ebfedea0SLionel Sambuc.Pp 159*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_enctype 160*ebfedea0SLionel Sambucsets the preferred encryption type of the application. Don't set this 161*ebfedea0SLionel Sambucunless you have to since if there is no match in the KDC, the function 162*ebfedea0SLionel Sambuccall will fail. 163*ebfedea0SLionel Sambuc.Pp 164*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_impersonate 165*ebfedea0SLionel Sambucsets the principal to impersonate., Returns a ticket that have the 166*ebfedea0SLionel Sambucimpersonation principal as a client and the requestor as the 167*ebfedea0SLionel Sambucservice. Note that the requested principal have to be the same as the 168*ebfedea0SLionel Sambucclient principal in the krbtgt. 169*ebfedea0SLionel Sambuc.Pp 170*ebfedea0SLionel Sambuc.Fn krb5_get_creds_opt_set_ticket 171*ebfedea0SLionel Sambucsets the extra ticket used in user-to-user or contrained delegation use case. 172*ebfedea0SLionel Sambuc.Sh SEE ALSO 173*ebfedea0SLionel Sambuc.Xr krb5 3 , 174*ebfedea0SLionel Sambuc.Xr krb5_get_credentials 3 , 175*ebfedea0SLionel Sambuc.Xr krb5.conf 5 176