func (ci ClientIdentity) Anonymous() bool {
	a := ci[authenticated]
	return a != nil && a.(bool)
}
Anonymous returns true if this Identity had no identifying information (or the provided information was not trusted)
package iam
const authenticated = "Authenticated"
const anonymous = "Anonymous"
const loggableUserID = "LoggableUserID"
func NewAuthenticatedIdentity(loggableUserID string) ClientIdentity {
	i := make(ClientIdentity)
	i.SetAnonymous(false)
	i.SetAuthenticated(true)
	i.SetLoggableUserID(loggableUserID)
	return i
}
func NewAnonymousIdentity() ClientIdentity {
	i := make(ClientIdentity)
	i.SetAnonymous(true)
	i.SetAuthenticated(false)
	i.SetLoggableUserID("-")
	return i
}
type ClientIdentity map[string]interface{}
func (ci ClientIdentity) SetAuthenticated(b bool) {
	ci[authenticated] = b
}
func (ci ClientIdentity) Authenticated() bool {
	a := ci[authenticated]
	return a != nil && a.(bool)
}
func (ci ClientIdentity) SetAnonymous(b bool) {
	ci[anonymous] = b
}