140 likes | 156 Views
This summary highlights the updates made to the KMIP server credential system, including simpler structures, improved compatibility, and better credential management. Implicit and explicit self-registration processes are explained, along with access control and authentication processes. Other operations, future work, and potential improvements are also mentioned.
E N D
Client Registration Examples Alan Frindell Denis Pochuev 4/27/2011
Summary of updates since Feb F2F • Complex structures scrapped for simpler ones with better v1.0 compatibility • More discretion left to server implementers • Credential is now a “first class” Attribute in addition to a base object • Facilitates Credential updates with minimal spec angst • Minor updates based on F2F feedback
Certificate Entity: Implicit self-registration • Server implicitly creates Entity record as a side effect of another KMIP request • No special TTLV required – KMIP server extracts needed values from TLS certificate • Client MAY already have a cert signed by a CA trusted by KMIP server • Resulting Object: Entity UUID: ABCD-1234 Attribute Attribute Name: “Credential” Attribute Value: Credential Type: Transport Certificate Credential Value: Certificate Certificate Type: X.509 Certificate Value: <cert>
Certificate Entity: Explicit self-registration Register Object Type=Entity Template-Attribute Attribute Attribute Name: “Credential” Attribute Value: Credential Type: Transport Certificate Credential Value: <empty> • Certificate fields extracted from TLS
Certificate Entity: Registration Register Object Type=Entity Template-Attribute Attribute Attribute Name: “Credential” Attribute Value: Credential Type: Transport Certificate Credential Value: Certificate Certificate Type: X.509 Certificate Value: <cert> • Assumption: Registering Entity has privilege to register Entities
Certificate Entity: Authentication and Access Control Authentication Credential Credential Type: Transport Certificate Credential Value: <empty> • Server looks up Entity based on TLS certificate information • Server policy: may be dynamic mapping or exact match • For access control, server checks authenticated Entity UUID against request object Owner attribute
Username/Password User: Registration Register Object Type=Entity Template-Attribute Attribute Attribute Name: “Credential” Attribute Value: Credential Type: Username and Password Credential Value: Username: “user1” Password: “password” • Resulting Object: Entity UUID: ABCD-1234 Attribute Attribute Name: “Credential” Attribute Value: Credential Type: Username and Password Credential Value: Username: “user1” Password: “password”
Username/Password User: Authentication and Access Control • Same as v1.0 Authentication Credential Credential Type: Username and Password Credential Value: Username: “user1” Password: “password” • Server looks up Entity based on Credential (username) • For access control, server checks authenticated Entity UUID against request object Owner attribute
Multi-factor Entity: Registration Register Object Type=Entity Template-Attribute Attribute Attribute Name: “Credential” Attribute Value: Credential Type: Transport Certificate Credential Value: Certificate Certificate Type: X.509 Certificate Value: <cert> Attribute Attribute Name: “Credential” Attribute Value: Credential Type: Username and Password Credential Value: Username: “user1” Password: “password”
Multi-factor Entity: Authentication Authentication Credential Credential Type: Transport Certificate Credential Value: <empty> Credential Credential Type: Username and Password Credential Value: Username: “user1” Password: “password” • Server looks up Entity based on each Credential – all must resolve to the same Entity • For access control, server checks authenticated Entity UUID against request object Owner attribute
Locate Entity and Objects by Entity • Find all Entities with Transport Certificate Credentials: Locate Credential Credential Type: Transport Certificate • Find an Entity by its transport certificate: Locate Credential Credential Type: Transport Certificate Credential Value: Certificate: <certificate> • Find yourself: Locate Entity Identifier = Self • Find all objects owned by <UUID>: Locate Owner = <UUID>
Credential Refresh Modify Attribute Attribute: “Credential” Attribute Index: N Attribute Value: Credential Type: Transport Certificate Credential Value: Certificate: <certificate> Modify Attribute Attribute: “Credential” Attribute Index: N Attribute Value: Credential Type: Username and Password Credential Value: Username: “user1” Password: “new-password”
Other operations • Get Entity Info Locate Entity Identifier = Self Get Attributes Attribute Name: “Credential” • Server is not allowed to return Password values in Username and Password structure • Destroy Entity Destroy UUID: “ABCD-1234”
Future work • Define error handling behavior and update respective chapter in the specification • Update Usage Guide and Use-Case documents • Define another Credential Type for explicit two-factor authentication (if needed and if the proof of possession issue is resolved)