|PAT||Authentication & Authorization||Version:||0.1|
|Document type:||Pattern Type||Owner:|
This Pattern Type belongs to "Infrastructure Sector Core".
In fact Authentication and Authorization are functions that are carried out by human beings. Authentication is done when someone wants to make sure - to a certain extend - that a claim about a subject is true. A special form of authentication is identification, which is a check of the identity of a subject. Authorizations is the process of granting rights to a subject to use a certain resource.
When it comes down to the use of automated systems and data, a process is needed to check if someone is entitled to this use. This means that records are made of authorizations (permissions), that need to be validated if someone is issuing rights (Permission Validation). To identify a digital user as a real world person or system, the digital identity (a digital representation of the real world identity) claim is validated by means of comparing one or more credentials that are provided during the validation with credentials that were stored earlier when the digital identity was created and administered (e.g. password hashes, biometric hashes, tokens, certificates). Thus, the Identity Validation function is an automated rematch of the real identity with the digital identity of a user. The Permission Validation function is an automated check whether a user has the right permissions to use a certain resource or data
- It is a good practice to limit digital identities to Natural Persons and Physical Systems. In that case, the validation of this type of digital identities (and it's logging) does have meaning in a legal context.
- Identity Validation can also be used in conjunction with logging, which makes the process of Auditing possible in a way that does have meaning in a legal context, if digital identities are limited to Natural Persons and Physical Systems.
This is the graphical representation of the infrastructure functions in this Pattern Type, plus their main relations:
Pattern Type Composition
This pattern has the following mandatory and optional subfunctions, expressed in Building Block Types:
|Identity Validation||MW||mandatory||This facility delivers the functionality of validating a digital identity.|
|Identity Store||MW||mandatory||This facility is required because it offers the Identity Validation the data it needs to perform the validation.|
|Permission Validation||MW||optional||If authorization is needed, then this facility will provide it. Note that it requires access to a Permission Register, but most likely also to an Identity Store, since many permissions are granted based on identity attributes like user ID, group membership or (for example) Job Title.|
|Permission Register||MW||optional||This facility provides Permission Validation with the ability to retrieve the current valid (set of) permissions. Note that the permissions themselves likely have a relation with a (particular) Identity Store, since many permissions are granted based on identity attributes like user ID, group membership or (for example) Job Title.|
|Control Interface||SE||optional||The purpose of this facility within the Pattern is to focus the attention on the security aspects of an available means to read and/or alter the content of either the Identity Store or the Permission Register.|
Pattern Type Neighbors
This pattern has the following mandatory and optional relations with adjacent (sub)functions, expressed in Pattern Types (PAT). Note: if the table below is empty, then there are no architecturally prescribed relations with adjacent subfunctions:
|Identity & Permission Management||optional||To maintain the information in the Identity Store and Permission Register (if present), the Identity & Permission Management Pattern is required. It provisions accounts, ensures information is kept correct and current, and makes auditing possible, both on granted permissions and on changes in identity and/or permission information itself.|
Pattern Variants based on this type
|Pattern Variant||Brief description||Owner||maturity|