blob: def9b11bf81827c81ee5d4fb88d51a7b84fb9024 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package authpolicy;
// D-Bus call error codes. These values are written to logs. New enum values can
// be added, but existing enums must never be renumbered or deleted and reused.
enum ErrorType {
// Everything is A-OK!
ERROR_NONE = 0;
// Unspecified error.
ERROR_UNKNOWN = 1;
// Unspecified D-Bus error.
ERROR_DBUS_FAILURE = 2;
// Badly formatted user principal name.
ERROR_PARSE_UPN_FAILED = 3;
// Auth failed because of bad user name.
ERROR_BAD_USER_NAME = 4;
// Auth failed because of bad password.
ERROR_BAD_PASSWORD = 5;
// Auth failed because of expired password.
ERROR_PASSWORD_EXPIRED = 6;
// Auth failed because of bad realm or network.
ERROR_CANNOT_RESOLVE_KDC = 7;
// kinit exited with unspecified error.
ERROR_KINIT_FAILED = 8;
// net exited with unspecified error.
ERROR_NET_FAILED = 9;
// smdclient exited with unspecified error.
ERROR_SMBCLIENT_FAILED = 10;
// authpolicy_parser exited with unknown error.
ERROR_PARSE_FAILED = 11;
// Parsing GPOs failed.
ERROR_PARSE_PREG_FAILED = 12;
// GPO data is bad.
ERROR_BAD_GPOS = 13;
// Some local IO operation failed.
ERROR_LOCAL_IO = 14;
// Machine is not joined to AD domain yet.
ERROR_NOT_JOINED = 15;
// User is not logged in yet.
ERROR_NOT_LOGGED_IN = 16;
// Failed to send policy to Session Manager.
ERROR_STORE_POLICY_FAILED = 17;
// User doesn't have the right to join machines to the domain.
ERROR_JOIN_ACCESS_DENIED = 18;
// General network problem.
ERROR_NETWORK_PROBLEM = 19;
// Machine name contains restricted characters.
ERROR_INVALID_MACHINE_NAME = 20;
// Machine name too long.
ERROR_MACHINE_NAME_TOO_LONG = 21;
// User joined maximum number of machines to the domain.
ERROR_USER_HIT_JOIN_QUOTA = 22;
// Kinit or smbclient failed to contact Key Distribution Center.
ERROR_CONTACTING_KDC_FAILED = 23;
// Kerberos credentials cache not found.
ERROR_NO_CREDENTIALS_CACHE_FOUND = 24;
// Kerberos ticket expired while renewing credentials.
ERROR_KERBEROS_TICKET_EXPIRED = 25;
// Klist exited with unspecified error.
ERROR_KLIST_FAILED = 26;
// Kinit failed because of bad machine name.
ERROR_BAD_MACHINE_NAME = 27;
// Should be the last.
ERROR_COUNT = 28;
}
// Message sent to Chromium by authpolicy service as a response of a successful
// AuthenticateUser call. Contains information about authenticated user fetched
// from Active Directory server with "net ads search ...".
message ActiveDirectoryAccountInfo {
// Unique id of the user account. Taken from the objectGUID property of the
// Active Directory user account information.
optional string account_id = 1;
// Display name of the user. Taken from the displayName property of the Active
// account information.
optional string display_name = 2;
// Given name of the user. AKA first name. Taken from the givenName property
// of the Active Directory user account information.
optional string given_name = 3;
// Logon name of the user (without @realm). Taken from the sAMAccountName
// property of the Active Directory user account information.
optional string sam_account_name = 4;
// Timestamp when the password was last set, see
// https://msdn.microsoft.com/en-us/library/ms679430(v=vs.85).aspx. Taken from
// the pwdLastSet property of the Active Directory user account information.
// Used in authpolicyd only, unused in Chrome.
optional uint64 pwd_last_set = 5;
// User account control flags, see
// https://msdn.microsoft.com/en-us/library/ms680832(v=vs.85).aspx. Taken from
// the userAccountControl property of the Active Directory user account
// information. Used in authpolicyd only, unused in Chrome.
optional uint32 user_account_control = 6;
// Common name of the user, e.g. "John Doe [jdoe]". Taken from the commonName
// property of the Active Directory user account information.
optional string common_name = 7;
// Next ID to use: 8
}
// Message sent to Chromium by authpolicy service as a response to a successful
// GetUserStatus call.
message ActiveDirectoryUserStatus {
// Ticket-granting-ticket status.
enum TgtStatus {
TGT_VALID = 0; // Ticket is still valid.
TGT_EXPIRED = 1; // Ticket expired.
TGT_NOT_FOUND = 2; // Kerberos credentials cache not found.
// Next ID to use: 3
}
// Whether the password has to be changed or sync'ed with cryptohome.
enum PasswordStatus {
PASSWORD_VALID = 0; // Valid as far as we can tell.
PASSWORD_EXPIRED = 1; // User has to enter a new password on next logon.
PASSWORD_CHANGED = 2; // Changed on server, possibly from other client.
// Next ID to use: 3
}
// User's account information, see above.
optional ActiveDirectoryAccountInfo account_info = 1;
// Status of the user's ticket-granting-ticket (TGT).
optional TgtStatus tgt_status = 2;
// Status of the user's password.
optional PasswordStatus password_status = 3;
// Last error returned from AuthenticateUser D-Bus call.
optional ErrorType last_auth_error = 4;
// Next ID to use: 5
}