(MIT) Kerberos V and PHP(4)?
Steve Langasek
vorlon at dodds.net
Sun Dec 29 01:52:23 EST 2002
On Sun, Dec 29, 2002 at 12:22:19AM +0100, Turbo Fredriksson wrote:
> >>>>> "Steve" == Steve Langasek <vorlon at dodds.net> writes:
> Steve> On Sat, Dec 28, 2002 at 08:04:23PM +0100, Turbo Fredriksson
> Steve> wrote:
> >> Have anyone (heard of) something that can get me tickets, add
> >> and remove principals, change passwords etc from a PHP
> >> 'script'?
> >> I'd prefers not to go through external commands and/or scripts,
> >> but use a proper API. Searching for this on the web revealed
> >> nothing! This is the last attempt. If no one HERE know
> >> anything, then it doesn't exists :)
> Steve> If it exists, it hasn't been announced for the benefit of
> Steve> others to download. Personally, I think you're much better
> Steve> off using external commands than trying to sanely expose
> Steve> the Kerberos API to the weakly-typed PHP.
> Now we're talking! This is exactly why I haven't already started to
> implement the API in PHP. I suspected that someone would object
> for some reason. I have no idea myself why this would be a bad idea,
> so please enlightenment me (no pun or sarcasm intended!).
The only way to represent opaque pointers (something the Kerberos API
deals heavily in) in PHP is as a 'reference' -- an integer offset into a
lookup table for the specified object type. It's possible for a PHP
extension to do runtime type checking of a reference to prevent
segfaults, but the programmer really has no way to tell one type of
reference from another within a PHP script: given that one may be working
with ten or so opaque data types at a time in some portions of the KRB5
API, I don't relish the idea of trying to keep track of these in a weakly
typed language; it lends itself to fragile code.
Alternatively, you could only expose a limited number of specific,
higher-level Kerberos functions to the PHP script, corresponding to common
operations you're likely to perform; but at that point, I see little
advantage to not simply wrapping the commandline tools, which have already
been written.
I also think the number of PHP programmers in the world who could safely
be trusted to not botch the security of a Kerberos extension is in the low
double-digits (optimistically), so I don't imagine you'd get much help in
coding such an extension.
--
Steve Langasek
postmodern programmer
More information about the Kerberos
mailing list