repoze.who.plugins.digestauth is repoze.who plugin uitvoering Digest Access Authentication HTTP als per RFC-2617:
& Nbsp; http: //tools.ietf.org/html/rfc2617
Dit geeft een goede ondersteuning van het protocol zoals typisch wordt gebruikt in het wild:
- Zowel QoP = "auth" en QoP = "auth-int" modes
- Compatibiliteit modus voor oudere clients
- Opdrachtgever nonce-count controle
- Next-nonce generatie via de authenticatie-informatie header
De volgende eigenschappen van het protocol worden zelden ondersteund door HTTP-cliënten en daarmee zijn nog niet geïmplementeerd:
- MD5-sess of anders dan MD5 hash-algoritme
- Wederzijdse authenticatie via de authenticatie-informatie header
Configuratie
Configuratie van de digest-auth plugin kan worden gedaan vanaf de standaard repoze.who configuratiebestand als volgt:
[Plugin: digestauth]
gebruik = repoze.who.plugins.digestauth: make_plugin
realm = mijndomein
get_pwdhash = mymodule: get_pwdhash
De volgende configuratieopties zijn beschikbaar:
- Rijk: het rijk touwtje; opgenomen letterlijk in de uitdaging header
- Domein: het domein touwtje; opgenomen letterlijk in de uitdaging header
- QoP: de gewenste kwaliteit van bescherming ("auth" of "auth-int")
- Get_password: bezaaid naam van een callback om het wachtwoord van de gebruiker te krijgen
- Get_pwdhash: bezaaid naam van een callback naar wachtwoord hash van de gebruiker te krijgen
- Nonce_manager: bezaaid naam van een klasse om te gebruiken voor nonce beheer
Authenticatie
Om een gebruiker te verifiëren via Digest Auth, deze plugin moet de toegang tot ofwel hun rauwe wachtwoord of hun "password hash", dat is de MD5-overzicht van hun gebruikersnaam, wachtwoord en authenticatie rijk:
def calculate_pwdhash (gebruikersnaam, wachtwoord, rijk):
. & Nbsp; terug md5 ("% s:% s:% s"% (gebruikersnaam, domein, wachtwoord)) hexdigest ()
U moet de callback functie "get_password" of "get_pwdhash" om de DigestAuthPlugin bieden.
Nonce management
De veiligheid van Digest Access-verificatie is sterk afhankelijk van de beveiligde generatie en managent van cryptografische nonces. Om herhaling te voorkomen aanvallen van de server moet verzoeken dat een herhaalde nonce moeten verwerpen.
De details van nonce beheer zijn uitgepakt in een aparte interface, gedefinieerd door de repoze.who.plugins.digestauth.noncemanager: NonceManager klasse. De standaard implementatie maakt gebruik van HMAC-ondertekend tokens en een in-memory cache van de onlangs gezien nonce telt. Als u meer specifieke behoeften die je misschien leuk om te implementeren uw eigen NonceManager subklasse
Wat is nieuw in deze release:.
- licentie-update naar MPL 2.0.
Eisen
- Python
Reacties niet gevonden