1. 목표
keycloak으로 email 서버를 활용한 기능을 테스트해본다. 유저의 email을 검증하는 메일을 보내고, 메일의 링크를 눌렀을 때 사용자가 검증된(verified) 상태로 처리되어야한다.
2. Mailtrap
로컬에서 테스트를 위해서 SMTP 서버를 따로 만들 필요가 없다. Mailtrap과 같은 서비스에서 테스트가 가능하다. 아래 글의 Do you really need SMTP server? 항목을 살펴보면 로컬에서 SMTP를 만드는건 굳이 할 필요가 없다고 한다. 이를 제공하는 서비스들이 많기 때문이다.
https://mailtrap.io/blog/setup-smtp-server/
회원 가입을 하고, Email Testing -> Inboxes -> My Inbox에 들어가보면 SMTP, API, POP3용 인프라를 만들어주는 것을 확인할 수 있다. 이 내용을 keycloak에 적어주면 된다.
3. Keycloak 설정
위 mailtrap의 정보들을 keycloak의 realm settings -> Email 탭에 있는 항목들에 적어주면된다. from과 host만 잘 기입해주고, Authentication 토글을 ON 해서 id, pw를 mailtrap의 Username, Password로 적어주고 Test Connection을 눌러주면 된다.
그리고 keycloak의 admin으로 로그인한 경우, admin의 email 주소가 설정되어야한다. admin의 email 주소도 {mailtrap의 Username}@{mailtrap의 host} 로 설정해주면 된다.
그리고 새로운 유저를 만든다음, user 정보 -> required actions에서 verify email을 클릭하여 save 해준다. 해당 유저로 로그인하면 다음과 같이 email 검증이 필요하다는 화면이 뜨고, mailtrap의 inbox에 메일이 온 것을 확인할 수 있다.
검증 링크를 누르면 해당 유저가 로그인되고 mypage로 이동한다. admin console에서 user 정보를 확인해보면 email verified가 ON 된 것을 확인할 수 있다.
forgot password
forgot password 기능을 ON하고 버튼을 클릭했을 때 오는 reset password 이메일은 다음과 같다.
링크를 클릭하면 다음과 같이 비밀번호 재설정을 할 수 있다.
'Programming-[Backend] > Keycloak' 카테고리의 다른 글
Keycloak-infinispan k8s 세팅 관련 공부 내용 (0) | 2024.09.20 |
---|---|
[공식 문서] Keycloak DB 설정 (1) | 2024.09.20 |
Keycloak <-> Okta SAML 연동, Attribute to Role (0) | 2024.09.19 |
Keycloak Device flow (1) | 2024.09.17 |
[TIL] Keycloak logout (0) | 2024.09.09 |