SlideShare a Scribd company logo
1 of 20
Download to read offline
Friday, April 20, 12
OpenStack Identity

               State of the Project: Keystone


                                                 Joe Heck
                                    Project Technical Lead



Friday, April 20, 12
Who Am I
                              Joe Heck
          choose to live       @heckj
               here


                                     grew up here




Friday, April 20, 12
Outline

                   ‣   Why keystone
                   ‣   What is keystone
                   ‣   Basic concepts
                   ‣   High level architecture
                   ‣   Essex release
                   ‣   Folsom plans




Friday, April 20, 12
Why Keystone

                   ‣   the first “openstack common”
                   ‣   common internal API expressing relevant identity
                       information to OpenStack projects
                   ‣   need for knowledge of OpenStack service
                       endpoints




Friday, April 20, 12
Keystone history

                   ‣   protocols and mechanisms originally disparate in
                       compute and object storage
                   ‣   aggressively prototyped in Diablo release
                       ‣   OpenStack internal token-based HTTP API
                       ‣   administrative API
                   ‣   consolidated in Essex release
                       ‣   architecture shift to focus on independent drivers
                       ‣   migrated to administrative CRUD operations


Friday, April 20, 12
What is Keystone

                   ‣   single source of authentication, authorization
                       ‣   same account and credentials for starting a VM instance
                           and accessing a container in object storage
                   ‣   means of expressing API endpoints
                       ‣   basic service catalog




Friday, April 20, 12
What is Keystone - core internal services

                   ‣   identity
                   ‣   policy
                   ‣   token
                   ‣   catalog




Friday, April 20, 12
Basic Concepts - Identity

                   ‣   Tenant == Project
                       ‣   basic unit of ownership
                       ‣   collection of resources (vm, volume, container, etc)
                   ‣   User
                       ‣   individual or service
                       ‣   identified by basic credentials
                   ‣   Role
                       ‣   name relationship between a user and tenant

Friday, April 20, 12
Basic Concepts - Policy

                   ‣   Policy file - private/internal in Essex
                       ‣   Nova, Glance, and Keystone
                       ‣   Simple rule based mechanism for expressing
                           authorization
                   ‣   Enforcement at the services




Friday, April 20, 12
Basic Concepts - Token

                   ‣   Token
                       ‣   arbitrary string to be used in HTTP headers
                       ‣   identity associated with token retrievable by other
                           OpenStack services
                           ‣   token
                           ‣   user, tenant, roles
                           ‣   catalog




Friday, April 20, 12
Basic Concepts - Catalog

                   ‣   service --> endpoint
                   ‣   OpenStack Services
                       ‣   identity
                       ‣   compute
                       ‣   volume
                       ‣   image
                       ‣   ec2
                       ‣   object-store

Friday, April 20, 12
HTTP_X_AUTH_TOKEN: 87d45c4c6e9b445997da68f399b49704
                   ‣   {u'access': {u'serviceCatalog': [{u'endpoints': [{u'adminURL': u'http://vol:8776/v1/c566cb3adfab4f4a859250f4f7d4f56c',
                                                                     u'internalURL': u'http://vol:8776/v1/c566cb3adfab4f4a859250f4f7d4f56c',
                                                                     u'publicURL': u'http://vol:8776/v1/c566cb3adfab4f4a859250f4f7d4f56c',
                                                                     u'region': u'RegionOne'}],
                                                     u'endpoints_links': [],
                                                     u'name': u'Volume Service',
                                                     u'type': u'volume'},
                                                    {u'endpoints': [{u'adminURL': u'http://image:9292/v1',
                                                                     u'internalURL': u'http://image:9292/v1',
                                                                     u'publicURL': u'http://image:9292/v1',
                                                                     u'region': u'RegionOne'}],
                                                     u'endpoints_links': [],
                                                     u'name': u'Image Service',
                                                     u'type': u'image'},
                                                     ...
                                                     ...
                                                     ...
                                                    {u'endpoints': [{u'adminURL': u'http://ident:35357/v2.0',
                                                                     u'internalURL': u'http://ident:5000/v2.0',
                                                                     u'publicURL': u'http://ident:5000/v2.0',
                                                                     u'region': u'RegionOne'}],
                                                     u'endpoints_links': [],
                                                     u'name': u'Identity Service',
                                                     u'type': u'identity'}],
                                u'token': {u'expires': u'2012-04-19T00:06:53Z',
                                           u'id': u'87d45c4c6e9b445997da68f399b49704',
                                           u'tenant': {u'description': None,
                                                       u'enabled': True,
                                                       u'id': u'c566cb3adfab4f4a859250f4f7d4f56c',
                                                       u'name': u'demo'}},
                                u'user': {u'id': u'30e5d97149cf4621b9dbeb7681917aed',
                                          u'name': u'frank',
                                          u'roles': [{u'id': u'089c23c4f82f4c9d8882f6919dd51103',
                                                      u'name': u'Admin'},
                                                     {u'id': u'da104b278a2b463e89dd5e072740702e',
                                                      u'name': u'Member'}],
                                          u'roles_links': [],
                                          u'username': u'frank'}}}




Friday, April 20, 12
High Level Architecture

                   ‣   Typical OpenStack Pattern
                       ‣   WSGI Application, configured with Paste
                       ‣   URI routes mapped to configurable backends
                       ‣   Configurable backends per internal service:
                           ‣   SQL
                           ‣   LDAP
                           ‣   key-value store
                           ‣   ...yours...

Friday, April 20, 12
High Level Architecture

                   ‣   operational facade to existing systems
                       ‣   identity
                       ‣   token
                       ‣   policy
                       ‣   catalog




Friday, April 20, 12
Essex Backends

                   ‣   Identity
                       ‣   SQL, LDAP, PAM, KeyValue
                   ‣   Catalog
                       ‣   SQL, Template, KeyValue
                   ‣   Token
                       ‣   SQL, Memcache, KeyValue
                   ‣   Policy
                       ‣   Rules

Friday, April 20, 12
Essex Release

                   ‣   API Stability
                       ‣   architecture reset - maintained Diablo API compatibility
                       ‣   functional test driven
                       ‣   “auth_token” middleware - rewritten
                   ‣   Operational Focus
                       ‣   Additional logging
                       ‣   Basic RBAC “policy” (nova, glance, keystone)



Friday, April 20, 12
Folsom Plans

                   ‣   theme: steady, stable, tested
                       ‣   careful, thoughtful improvement
                       ‣   keep core simple, stable
                       ‣   continued focus on integration tests and stability




Friday, April 20, 12
Folsom Plans

                   ‣   iterate forward on API
                   ‣   Identity
                       ‣   domain (collections of tenants)
                       ‣   additional backends (ldap to Active Directory)
                   ‣   authentication enhancements
                       ‣   PKI support
                       ‣   multi-factor support



Friday, April 20, 12
fini




Friday, April 20, 12

More Related Content

Similar to Spring 2012 state of project keystone

Oct 2012 state of project keystone
Oct 2012 state of project keystoneOct 2012 state of project keystone
Oct 2012 state of project keystoneJoseph Heck
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack apiLiang Bo
 
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Revelation Technologies
 
OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101Steve Martinelli
 
Interoperability and APIs in OpenStack
Interoperability and APIs in OpenStackInteroperability and APIs in OpenStack
Interoperability and APIs in OpenStackpiyush_harsh
 
Nova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-serviceNova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-servicePratik Bandarkar
 
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesOracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesBobby Curtis
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStackSteve Martinelli
 
NSA for Enterprises Log Analysis Use Cases
NSA for Enterprises   Log Analysis Use Cases NSA for Enterprises   Log Analysis Use Cases
NSA for Enterprises Log Analysis Use Cases WSO2
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesSreenivas Makam
 
Cloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementationsCloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementationsFlorian Feldhaus
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformWSO2
 
Puppetpreso
PuppetpresoPuppetpreso
Puppetpresoke4qqq
 
AWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labs
AWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labsAWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labs
AWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labsHATech LLC
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for CassandraEdward Capriolo
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"DataStax Academy
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationNelson Calero
 

Similar to Spring 2012 state of project keystone (20)

Oct 2012 state of project keystone
Oct 2012 state of project keystoneOct 2012 state of project keystone
Oct 2012 state of project keystone
 
Pyrax talk
Pyrax talkPyrax talk
Pyrax talk
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
 
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
 
OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101OpenStack Toronto Meetup - Keystone 101
OpenStack Toronto Meetup - Keystone 101
 
Interoperability and APIs in OpenStack
Interoperability and APIs in OpenStackInteroperability and APIs in OpenStack
Interoperability and APIs in OpenStack
 
Nova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-serviceNova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-service
 
Oracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API ExamplesOracle GoldenGate 18c - REST API Examples
Oracle GoldenGate 18c - REST API Examples
 
Core Context Management
Core Context ManagementCore Context Management
Core Context Management
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStack
 
NSA for Enterprises Log Analysis Use Cases
NSA for Enterprises   Log Analysis Use Cases NSA for Enterprises   Log Analysis Use Cases
NSA for Enterprises Log Analysis Use Cases
 
Aws iot
Aws iotAws iot
Aws iot
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
 
Cloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementationsCloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementations
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 Platform
 
Puppetpreso
PuppetpresoPuppetpreso
Puppetpreso
 
AWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labs
AWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labsAWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labs
AWS Las Vegas meetup 5-31-16 building &scaling web apps - slide deck & labs
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operation
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

Spring 2012 state of project keystone

  • 2. OpenStack Identity State of the Project: Keystone Joe Heck Project Technical Lead Friday, April 20, 12
  • 3. Who Am I Joe Heck choose to live @heckj here grew up here Friday, April 20, 12
  • 4. Outline ‣ Why keystone ‣ What is keystone ‣ Basic concepts ‣ High level architecture ‣ Essex release ‣ Folsom plans Friday, April 20, 12
  • 5. Why Keystone ‣ the first “openstack common” ‣ common internal API expressing relevant identity information to OpenStack projects ‣ need for knowledge of OpenStack service endpoints Friday, April 20, 12
  • 6. Keystone history ‣ protocols and mechanisms originally disparate in compute and object storage ‣ aggressively prototyped in Diablo release ‣ OpenStack internal token-based HTTP API ‣ administrative API ‣ consolidated in Essex release ‣ architecture shift to focus on independent drivers ‣ migrated to administrative CRUD operations Friday, April 20, 12
  • 7. What is Keystone ‣ single source of authentication, authorization ‣ same account and credentials for starting a VM instance and accessing a container in object storage ‣ means of expressing API endpoints ‣ basic service catalog Friday, April 20, 12
  • 8. What is Keystone - core internal services ‣ identity ‣ policy ‣ token ‣ catalog Friday, April 20, 12
  • 9. Basic Concepts - Identity ‣ Tenant == Project ‣ basic unit of ownership ‣ collection of resources (vm, volume, container, etc) ‣ User ‣ individual or service ‣ identified by basic credentials ‣ Role ‣ name relationship between a user and tenant Friday, April 20, 12
  • 10. Basic Concepts - Policy ‣ Policy file - private/internal in Essex ‣ Nova, Glance, and Keystone ‣ Simple rule based mechanism for expressing authorization ‣ Enforcement at the services Friday, April 20, 12
  • 11. Basic Concepts - Token ‣ Token ‣ arbitrary string to be used in HTTP headers ‣ identity associated with token retrievable by other OpenStack services ‣ token ‣ user, tenant, roles ‣ catalog Friday, April 20, 12
  • 12. Basic Concepts - Catalog ‣ service --> endpoint ‣ OpenStack Services ‣ identity ‣ compute ‣ volume ‣ image ‣ ec2 ‣ object-store Friday, April 20, 12
  • 13. HTTP_X_AUTH_TOKEN: 87d45c4c6e9b445997da68f399b49704 ‣ {u'access': {u'serviceCatalog': [{u'endpoints': [{u'adminURL': u'http://vol:8776/v1/c566cb3adfab4f4a859250f4f7d4f56c', u'internalURL': u'http://vol:8776/v1/c566cb3adfab4f4a859250f4f7d4f56c', u'publicURL': u'http://vol:8776/v1/c566cb3adfab4f4a859250f4f7d4f56c', u'region': u'RegionOne'}], u'endpoints_links': [], u'name': u'Volume Service', u'type': u'volume'}, {u'endpoints': [{u'adminURL': u'http://image:9292/v1', u'internalURL': u'http://image:9292/v1', u'publicURL': u'http://image:9292/v1', u'region': u'RegionOne'}], u'endpoints_links': [], u'name': u'Image Service', u'type': u'image'}, ... ... ... {u'endpoints': [{u'adminURL': u'http://ident:35357/v2.0', u'internalURL': u'http://ident:5000/v2.0', u'publicURL': u'http://ident:5000/v2.0', u'region': u'RegionOne'}], u'endpoints_links': [], u'name': u'Identity Service', u'type': u'identity'}], u'token': {u'expires': u'2012-04-19T00:06:53Z', u'id': u'87d45c4c6e9b445997da68f399b49704', u'tenant': {u'description': None, u'enabled': True, u'id': u'c566cb3adfab4f4a859250f4f7d4f56c', u'name': u'demo'}}, u'user': {u'id': u'30e5d97149cf4621b9dbeb7681917aed', u'name': u'frank', u'roles': [{u'id': u'089c23c4f82f4c9d8882f6919dd51103', u'name': u'Admin'}, {u'id': u'da104b278a2b463e89dd5e072740702e', u'name': u'Member'}], u'roles_links': [], u'username': u'frank'}}} Friday, April 20, 12
  • 14. High Level Architecture ‣ Typical OpenStack Pattern ‣ WSGI Application, configured with Paste ‣ URI routes mapped to configurable backends ‣ Configurable backends per internal service: ‣ SQL ‣ LDAP ‣ key-value store ‣ ...yours... Friday, April 20, 12
  • 15. High Level Architecture ‣ operational facade to existing systems ‣ identity ‣ token ‣ policy ‣ catalog Friday, April 20, 12
  • 16. Essex Backends ‣ Identity ‣ SQL, LDAP, PAM, KeyValue ‣ Catalog ‣ SQL, Template, KeyValue ‣ Token ‣ SQL, Memcache, KeyValue ‣ Policy ‣ Rules Friday, April 20, 12
  • 17. Essex Release ‣ API Stability ‣ architecture reset - maintained Diablo API compatibility ‣ functional test driven ‣ “auth_token” middleware - rewritten ‣ Operational Focus ‣ Additional logging ‣ Basic RBAC “policy” (nova, glance, keystone) Friday, April 20, 12
  • 18. Folsom Plans ‣ theme: steady, stable, tested ‣ careful, thoughtful improvement ‣ keep core simple, stable ‣ continued focus on integration tests and stability Friday, April 20, 12
  • 19. Folsom Plans ‣ iterate forward on API ‣ Identity ‣ domain (collections of tenants) ‣ additional backends (ldap to Active Directory) ‣ authentication enhancements ‣ PKI support ‣ multi-factor support Friday, April 20, 12