repoze.who.plugins.digestauth är repoze.who plugin genomföra HTTP Digest åtkomst autentisering enligt RFC-2617:
& Nbsp; http: //tools.ietf.org/html/rfc2617
Det ger bra stöd för protokollet som det används normalt i det vilda:
- Både QoP = "auth" och QOP = "auth-int" lägen
- Kompatibilitetsläge för äldre klienter
- Kontroll klient nonce-count
- Nästa nonce generation via Autentisering-Info header
Följande funktioner i protokollet sällan stöds av HTTP-klienter och därför har ännu inte genomförts:
- MD5-sess, eller någon hash-algoritm än MD5
- Ömsesidig autentisering via Autentisering-Info header
Konfiguration
Konfiguration av digest-auth plugin kan göras från standard repoze.who konfigurationsfil som så:
[Plugin: digestauth]
användning = repoze.who.plugins.digestauth: make_plugin
rike = myrealm
get_pwdhash = mymodule: get_pwdhash
Följande alternativ finns:
- Realm: sfären strängen; ingår ordagrant i utmaningen header
- Domain: domänen strängen; ingår ordagrant i utmaningen header
- QoP: den önskade kvaliteten på skyddet ("auth" eller "auth-int")
- Get_password: prickade namnet på en callback för att få användarens lösenord
- Get_pwdhash: prickade namnet på en callback för att få användarens lösenord hash
- Nonce_manager: prickade namnet på en klass som ska användas för nonce hantering
Authentication
Att autentisera en användare via Digest Auth, behöver denna plugin tillgång till antingen sin råa lösenord eller deras "lösenord hash", som är den MD5 sammandrag av deras användarnamn, lösenord och autentisering rike:
def calculate_pwdhash (användarnamn, lösenord, sfär):
. & Nbsp; returnera md5 ("% s:% s:% s"% (username, sfär, lösenord)) hexdigest ()
Du måste ange callback-funktionen "get_password" eller "get_pwdhash" till DigestAuthPlugin.
Nonce Hantering
Säkerheten i Digest åtkomst autentisering beror ytterst på den säkra generationen och mana av kryptografiska nonces. För att förhindra reprisen angriper servern måste avvisa ansökningar som har en återkommande nonce.
Detaljerna i nonce förvaltning har extraherats i en separat gränssnitt, som definieras av repoze.who.plugins.digestauth.noncemanager: NonceManager klass. Genomförandet standard använder HMAC-signerade polletter och en in-memory cache av nyligen sett nonce räknas. Om du har mer specifika behov som du kanske gillar att implementera en egen NonceManager underklass
Vad är nytt i den här versionen:.
- Uppdatera licens till MPL 2.0.
Krav :
- Python
Kommentarer hittades inte