Como pegar uma sessão para o login no JSF?

Boa tarde!

Eu sou novo com a linguagem JSF, eu gostaria de saber se tem alguma maneira de pegar uma sessão exclusiva para um usuário, e se tem como eu faço isso?
Obs: Banco de Dados Access.

Eu tenho minha classe LoginBean, LoginMB e o login.xhtml, segue abaixo, o meu código:

//LoginBean

public class LoginBean{

private int codigo;
private String nome;
private String senha;
private boolean ativo;
private boolean loginOk;
private int cod_tipo; // código do tipo de Acesso do usuario(Funcionario normal, ou Funcionario Administrador).
		
public boolean isLoginOk(){
	return loginOk;
}

public void setLoginOk(boolean loginOk) {
	this.loginOk = loginOk;
}

public boolean isAtivo() {
	return ativo;
}

public void setAtivo(boolean ativo) {
	this.ativo = ativo;
}

public int getCodigo() {
	return codigo;
}


public void setCodigo(int codigo) {
	this.codigo = codigo;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getSenha() {
	return senha;
}

public void setSenha(String senha) {
	this.senha = senha;
}

public int getCod_tipo() {
	return cod_tipo;
}

public void setCod_tipo(int codTipo) {
	cod_tipo = codTipo;
}

//LoginMB

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class LoginMB {

private List<LoginBean> logins;
private LoginBean login;
private DBAccessDAO db = new DBAccessDAO();

public LoginMB() throws SQLException {

	login = new LoginBean();
	logins = new ArrayList<LoginBean>();

}

public DBAccessDAO getDb() {
	return db;
}

public void setDb(DBAccessDAO db) {
	this.db = db;
}

public List<LoginBean> getLogins() {
	return logins;
}

public void setLogins(List<LoginBean> logins) {
	this.logins = logins;
}

public LoginBean getLogin() {
	return login;
}

public void setLogin(LoginBean login) {
	this.login = login;
}

public String verificarLogin() throws SQLException{

	String result = "";
	
	db.conectar();
	logins.clear();
	logins = db.consultaLogin(login);
	
	if (logins.isEmpty()){
		//FacesContext.getCurrentInstance().addMessage("", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Nome e Senha não existe na base de dados!", ""));  
		return "erro";
	}else{
		for (int i = 0; i < logins.size(); i++) {

			if (logins.get(i).isAtivo() == true	&& logins.get(i).getCod_tipo() == 1) {
				result = "sucesso";
				login.setLoginOk(true);
				//FacesContext.getCurrentInstance().addMessage("1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Bem vindo ao sistema - Administrador", ""));  
			
			}else{
				if (logins.get(i).isAtivo() == true	&& logins.get(i).getCod_tipo() == 2) {
				
					result = "sucesso";
					login.setLoginOk(true);
					//FacesContext.getCurrentInstance().addMessage("2", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Bem vindo ao sistema - Funcionario", ""));  
				}	
				else{
				result = "erro";
				login.setLoginOk(false);
				//FacesContext.getCurrentInstance().addMessage("3", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Seu login não está ativo peça para o Administrador ativar!", ""));  
				
			}
		}
	}
	
	
	db.desconectar();
	//facesMessage
	return result;
	}	
}

}

obrigado.

Pelo próprio FacesContext:

FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);