ZCML File
configure.zcml

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:apidoc="http://namespaces.zope.org/apidoc"
    xmlns:browser="http://namespaces.zope.org/browser"
    xmlns:zcml="http://namespaces.zope.org/zcml"
    i18n_domain="zope"
    >
<class
    class=".PluggableAuthentication"
    >
<require
    permission="zope.ManageSite"
    interface=".interfaces.IPluggableAuthentication"
    set_schema=".interfaces.IPluggableAuthentication"
    />
<require
    permission="zope.ManageServices"
    attributes="registrationManager"
    />
</class>
<adapter
    factory=".authentication.QuerySchemaSearchAdapter"
    provides=".interfaces.IQueriableAuthenticator"
    for="
       .interfaces.IQuerySchemaSearch
       .interfaces.IPluggableAuthentication
       "

    />
<utility
    component=".vocabulary.credentialsPlugins"
    name="CredentialsPlugins"
    />
<utility
    component=".vocabulary.authenticatorPlugins"
    name="AuthenticatorPlugins"
    />
<utility
    factory=".generic.NoChallengeCredentialsPlugin"
    provides=".interfaces.ICredentialsPlugin"
    name="No Challenge if Authenticated"
    />
<configure
    zcml:condition="have apidoc"
    >
<apidoc:bookchapter
    id="authentication"
    title="Pluggable Authentication"
    doc_path="README.txt"
    parent="security"
    />
</configure>
<include
    file="password.zcml"
    />
<include
    file="session.zcml"
    />
<include
    file="httpplugins.zcml"
    />
<include
    file="principalfolder.zcml"
    />
<include
    file="groupfolder.zcml"
    />
<include
    file="ftpplugins.zcml"
    />
<include
    package=".browser"
    />
</configure>