We describe a design for security in a distributed system and its impl
ementation. In our design, applications gain access to security servic
es through a narrow interface. This interface provides a notion of ide
ntity that includes simple principals, groups, roles, and delegations.
A new operating system component manages principals, credentials, and
secure channels. It checks credentials according to the formal rules
of a logic of authentication. Our implementation is efficient enough t
o support a substantial user community.