One of member of OCE's microservices-architecture components. Identity & Access Management conforming to OAuth2 and JWT spec and provides Web GUI for managing organizations, users, and permission scopes. REST APIs allows your application easily converted to MSA-style services accessing underlying back-end services through token-based security.
App 에서 관리자가 사용자를 추가하는 경우는 기존 /rest/v1/user 를 통해서 진행할 수 있지만, 이메일을 통해 회원가입 및 패스워드 분실 조치를 하기 위해서는 아래 로직을 따르도록 한다.
한번 만들어놓으면 매번 어플리케이션을 만들 때마다 회원가입 절차를 코딩할 필요가 없어진다.
아래 요청들은 클라이언트 활동에 관련된 것이므로 요청 헤더에 client-key 와 client-secret 이 반드시 포함되어야 한다.
회원가입
1) IAM 에서 클라이언트의 회원가입 이메일 양식 작성.
2) 회원가입 요청, Client -> IAM
** email 을 유저 pk 로 사용하는 경우 userName 과 email 둘다 같은 값을 주면 된다.
아래의 케이스마다 보내는 body 정보가 다를 수 있음.
3) 회원가입 이메일 전송, IAM -> Mail IAM 에서는 데이터베이스에 유저 정보와 이메일 컨펌 토큰을 signup 버킷에 저장하고, 이메일 발송. 이때, IAM 은 이메일을 다음과 같이 발송.
4) 유저가 이메일을 확인함. Mail -> Client
5) 이메일 확인자 검증. Client -> IAM
6) 이메일 확인자 승인. Client -> IAM
IAM 에서는 수락시 signup 버킷의 유저정보를 User 테이블에 저장.
비밀번호 변경
1) Client -> IAM
비밀번호 분실
1) IAM 에서 클라이언트의 비밀번호 분실 이메일 양식 작성.
2) 비밀번호 분실 이메일 요청, Client -> IAM
** userName 에 해당하는 사용자의 email 프로퍼티로 발송이 된다.
3) 비번변경 이메일 전송, IAM -> Mail IAM 에서는 데이터베이스에 유저 정보와 이메일 컨펌 토큰을 forgot 버킷에 저장하고, 이메일 발송. 이때, IAM 은 이메일을 다음과 같이 발송.
4) 유저가 이메일을 확인함. Mail -> Client
5) IAM 에 이메일 확인자 검증. Client -> IAM
6) 비밀번호 변경