-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Credential Management System
This page will talk about the credential management system developed in #208. This is a technical document for developers and assumes you know some basics about mRemoteNG.
This represents a set of credentials (user/domain/password). A credential record should be unique within an instance of mRemoteNG, as determined by its Id
property. Credentials are also given a Title
, which serves as a user-friendly name for the credential record.
A credential repository is responsible for providing and managing a collection of ICredentialRecord
objects. Its purpose is to load and (if applicable) save any credential changes. A repository represents an instance of a specific credential storage strategy.
It is possible to have several repositories defined and loaded at once with similar or differing implementations. For example, credentials provided by a web service (e.i. LassPass), from a local file (e.i. Xml), and from a database.
Each repository represents a discrete set of credentials and no single set can be loaded twice. For example, it is possible to load files C:\cred_1.xml
and C:\cred_2.xml
simultaneously (provided that they do not contain the same credential records). However, it is not valid to create 2 repositories that both point to C:\cred_1.xml
.
Credential repository configs define the information necessary for saving and loading an ICredentialRepository
. The construction of an ICredentialRepository
object may be complex and require more information than is immediately available when the list of configured repositories is loaded. The ICredentialRepositoryConfig
is an easily serializable object that represents all the generic information that we must know about a repository.
Responsible for creating instances of the required ICredentialRepository
when given an ICredentialRepositoryConfig
. The factory should read the ICredentialRepositoryConfig.TypeName
to determine if it can handle creating that type of repository.
This represents a list of all currently defined credential repositories.
This type is a facade for the credential management sub-system within mRemoteNG. It retains references to all other pieces of the credential management system and helps to orchestrate their use.
-
Contribute
-
Workflow
-
Developer Guides
-
Testing