C# IdentityOptions

Broken Authentication

การใช้ ASP.NET Core Identity framework ได้มีการกำหนดค่าเริ่มต้นมาแล้วเป็นอย่างดี โดยใช้ Password hashes ใช้งานร่วมกับ salt Identity ใช้ฟังก์ชันการแฮช PBKDF2 สำหรับรหัสผ่านและสร้าง salt สำหรับผู้ใช้แต่ละคน ในบทความนี้เป็นตัวอย่างการใช้ IdentityOptions Class ในการกำหนด Password Policy

IdentityOptions Class

Namespace: Microsoft.AspNetCore.Builder
Assembly: Microsoft.AspNetCore.Identity.dll

IdentityOptions Class ใช้สำหรับการ Config ระบบ Identity โดยมี Properties มากมายให้เรียกใช้งานได้ ดังนี้ (บทความนี้เป็นตัวอย่างของการใช้ Password Property)

Properties  
ClaimsIdentity Gets or sets the ClaimsIdentityOptions for the identity system.
Cookies Gets or sets the IdentityCookieOptions for the identity system.
Lockout Gets or sets the LockoutOptions for the identity system.
OnSecurityStampRefreshingPrincipal Invoked when the default security stamp validator replaces the user’s ClaimsPrincipal in the cookie.
Password Gets or sets the PasswordOptions for the identity system.
SecurityStampValidationInterval Gets or sets the TimeSpan after which security stamps are re-validated.
SignIn Gets or sets the SignInOptions for the identity system.
Tokens Gets or sets the TokenOptions for the identity system.
User Gets or sets the UserOptions for the identity system.

การกำหนด Password Policy โดยใช้ IdentityOptions Class

กำหนด Password Policy สำหรับใช้ในการลงทะเบียนเพื่อเข้าใช้งานระบบ ดังนี้

  • ความยาวอย่างน้อย 8 ตัวอักษร
  • ต้องมีตัวเลข
  • ต้องมีตัวพิมพ์ใหญ่
  • ต้องมีอักขระพิเศษ

ทดสอบการลงทะเบียนเข้าใช้งานระบบ ถ้าเราใส่ Password ไม่ถูกต้องตาม Password Policy จะไม่สามารถลงทะเบียนได้ ดังรูปด้านล่าง


Reference:

AKA

BlackDragon