- 시스템 내부의 장기 계정 ID를 만들 때 OIDC가 이메일 주소를 돌려준다는 이유만으로 영구 ID로 쓰면 변경과 재사용 문제를 함께 떠안게 됨
- 이메일 주소는 한 조직 안에서도 이름이나 로그인처럼 바뀔 수 있어, 계정의 기준값으로 삼기에는 안정적이지 않음
- 예전 주소로 메일 접근이나 전달이 남아 있더라도, 그 주소가 OIDC 인증 같은 비메일 용도에서 계속 작동한다는 보장은 없음
- 계정 복구에는 이메일 주소가 필요할 수 있지만, 인증 시스템이 별도의 고유하고 영구적인 ID를 제공한다면 내부 ID로는 그 값을 써야 함
- 사용자에게 보이지 않는 값이라도 계정 내부 식별자는 의미 없는 ID로 두는 편이 장기 운영과 보안 측면에서 단순함
이메일 주소를 영구 ID로 쓰고 싶어지는 이유
- 계정별 내부 식별자를 만들 때 이메일 주소가 후보로 떠오르는 이유는, OIDC 같은 인증 시스템이 이메일 주소를 포함한 데이터를 반환하기 때문임
- 하지만 이메일 주소를 계정의 영구 내부 식별자로 삼으면 변경 가능성과 재사용 가능성이라는 두 문제가 생김
변경될 수 있는 주소는 기준값이 되기 어려움
- 가장 큰 문제는 이메일 주소가 변경될 수 있음
- 한 조직 안에서도 사람의 이메일 주소는 바뀔 수 있음
- 사람의 일상적으로 쓰는 이름이나 로그인이 바뀌는 이유와 같은 종류의 이유로 변경될 수 있음
- 조직이 할당한 이메일 주소의 변경이나 재발급을 거부하는 것은 여러 곳에서 법적으로 지속되기 어려울 만큼 가혹할 수 있음
- 예전 이메일 주소가 완전히 사라지지 않더라도 영구 식별자로는 부족함
- 예전 주소로 접근하거나 포워딩이 남아 있을 수 있음
- 그래도 예전 주소가 OIDC 인증 같은 비메일 용도에서 계속 작동하지 않을 수 있음
- 사용자는 불편할 수 있는 예전 이메일 주소 대신 현재 새 주소를 쓰고 싶어함
재사용과 복구 이메일은 별도로 다뤄야 함
- 더 작은 문제로, 조직이 이메일 주소를 재사용하지 않는다는 보장이 없음
- 일반적으로 재사용될 수도 있음
- 특히 선호도가 높은 주소는 영향력 있는 사람이 원해 예외적으로 재사용되거나 재할당될 수 있음
- 계정 복구가 등록된 이메일 주소를 통해 이뤄져야 하는 경우에는 이메일을 저장해야 할 수 있음
- 하지만 OIDC처럼 이론상 고유하고 영구적인 내부 ID가 있는 경우에는 그 내부 ID를 써야 함
- 계정 복구용 이메일을 저장해야 하더라도, 계정의 내부 식별자는 의미 없는 ID여야 함
- 이 값이 사용자에게 노출되지 않더라도 장기적으로 운영이 더 단순해짐
- 이메일 주소에 지나치게 많은 의미를 부여하면 보안 문제도 숨어 있을 수 있음