pub struct SsoLogin {
pub account: String,
pub subject: String,
pub user_name: String,
pub display_name: String,
pub email: String,
pub email_verified: bool,
pub idp_subjects: Vec<String>,
pub candidates: Vec<Principal>,
pub room: RoomAsk,
pub session: Option<(String, UnixMillis)>,
pub now: UnixMillis,
}Expand description
What one SSO login asks of the table.
Fields§
§account: StringThe account whose identity provider verified the person.
subject: Stringcrate::sso::subject_key of the verified IdP subject.
user_name: StringThe directory user name the IdP named (normalized), for a first login: a provisioned user of that name is claimed, or a NEW employee is created under it.
display_name: StringThe person’s name, as the IdP says it.
email: StringThe person’s address, as the IdP says it.
email_verified: boolThe IdP ASSERTED that email is verified (OIDC
email_verified: true). SAML carries no such assertion: false.
idp_subjects: Vec<String>The IdP’s own stable ids for the person, raw (OIDC sub, and Entra’s
oid when sent; the SAML persistent NameID). A provisioned user whose
externalId is one of them was bound to this person by the admin.
candidates: Vec<Principal>The ids a NEW employee may take, in order, already filtered against the namespaces (which the table does not hold). The first one that is no principal and no name is taken.
room: RoomAskThe room a NEW employee holds: an open seat when the account has one,
else room.room_bytes out of its unused room.
session: Option<(String, UnixMillis)>The web session key to enrol (one OpenSSH line) and when it expires;
None when a second factor must come first.
now: UnixMillisThe caller’s clock.