password rotation(feat.Auth0)

ding·2025년 2월 28일

Auth0을 활용하여 로그인이 구현되어있는 서비스에서, 6개월마다 유저에게 비밀번호를 바꾸도록 강제하려고 한다.

Auth0 Password Rotation

Auth0에서는 비밀번호 갱신일로부터 password expiry in days를 입력하여 해당 날짜가 지나면 로그인을 못하도록 한다.

문제점

문제는.. 정말 로그인만 못하게 한다. Password Rotation library를 설치할 때 error message 또한 설치할 수 있는데, 내가 설정한 비밀번호 유효기간이 끝나고 로그인을 시도하면 하얀 배경에 에러 메시지가 달랑 보여지게 된다.
결론적으로 로그인만 막을 뿐, 로그인이 막혔다라는 데이터를 얻을 수 없다. (Auth0 community에도 이와 관련된 질문들이 많지만, 대답은 불가능하다였다.)
아래 reference 중 마지막 community 참고문헌을 보면, 비밀번호가 만료되면 url이 https://{my-server-domain}/?error=access_denied&error_description=Your%20password%20has%20expired.%20%20Please%20reset%20it.&state={state variable}로 보여질 것이라고 되어있다. 이를 활용해서 urlSearchParams나 pathname을 활용해보려 했지만 콘솔에 전혀 찍히지 않는 것으로 보아 시간차가 있는 것 같았다.

reference
https://marketplace.auth0.com/integrations/auth-0-password-rotation
https://community.auth0.com/t/force-a-password-reset-after-a-specific-number-of-days/103037
https://community.auth0.com/t/auth0-password-rotation-action-incorrect-redirect-with-expired-password/115022/17

user metadata

어쩔 수 없이 auth0에서 제공하는 user_metadata에 password_changed_at와 같은 key를 만들어 password를 바꾸면 그 시간에 맞게 value 값도 바뀌도록 설정했다.
그리고 Auth0에서 제공하는 password reset 기능을 활용하지 않고 우리가 직접 만든 password 수정 페이지에 해당 기능을 연동했다.

0개의 댓글