设为首页 收藏本站
查看: 766|回复: 0

[经验分享] openstack-ocata-身份验证2

[复制链接]

尚未签到

发表于 2017-6-26 15:33:04 | 显示全部楼层 |阅读模式
Identity service

  一、身份服务概述
  OpenStack身份管理服务提供一个单点集成身份验证、授权和目录服务。 身份服务通常是第一个服务用户与之交互。一旦身份验证,最终用户可以使用自己的身份访问其他OpenStack服务。同样,其他OpenStack服务利用身份服务确保用户是他们说他们是谁,发现在其他服务中部署。服务还可以与一些外部集成用户身份管理系统(如LDAP)。
  用户和服务可以找到其他服务通过使用服务目录,这是由身份管理服务。顾名思义,一个服务目录是可用的服务的集合在一个OpenStack部署。每个服务可以有一个或多个端点,每个端点可以三种类型之一:管理,内部或公共场合。在生产环境中,不同的端点类型可能驻留在单独的网络接触到不同类型的用户,是为了安全起见。例如,公共API网络可能是可见的互联网用户可以管理自己的云。管理API可能局限于组织内的运营商网络管理云基础设施。内部网络API可能会限制包含OpenStack的主机服务。此外,OpenStack支持可伸缩性的多个区域。为简单起见,本指南使用的管理网络端点类型和默认RegionOne地区。在一起,区域、服务和端点标识服务包括服务目录中创建一个部署。每个OpenStack服务在您的部署需要服务条目存储在相应的端点标识服务。这一切都已完成后身份服务已经安装和配置。

  身份服务包含这些组件:

         服务器

     一个集中的服务器使用RESTful接口提供身份验证和授权服务。

         驱动程序

           驱动程序或服务后端集成到集中式服务器。他们是用于访问存储库中的身份信息外部OpenStack,并且可能已经存在在OpenStack部署的基础设施(例如,SQL数据库或LDAP服务器)。

         模块

           中间件模块OpenStack的地址空间中运行的组件是使用单位服务。这些模块拦截服务请求,提取用户凭证,并将它们发送到中央服务器进行授权。之间的集成中间件模块和OpenStack组件使用Python Web服务器网关接口。

二、安装配置身份验证

         本节介绍如何安装和配置OpenStack身份服务,代号为keystone,安装在控制器节点上。可伸缩性的目的,这种配置部署Fernet令牌和Apache HTTP服务器处理请求。

         1.先决条件:在安装和配置身份服务之前,您必须创建一个数据库。

                   Mysql –u root –p

                   Create database keystone      创建keystone数据库

                   授予keystone用户接入数据库keystone相应权限:设置用户keystone密码为keystone

                   Grant all privileges on keystone.* to ‘keystone’@’’localhost’ identified by ‘keystone’;

                   Grant all privileges on keystone.* to ‘keystone’@’’%’ identified by ‘keystone’;

                   Flush privileges;

                   Exit

         2.安装和配置组件:

                   本指南使用Apache HTTP服务器与mod_wsgi服务标识服务请求端口5000和35357。默认情况下,keystone服务仍然监听这些端口。因此,本指南手动禁用keystone服务。

      ①    安装keystone数据包

                     Yum install openstack-keystone httpd mod_wsgi

      ②    配置/etc/keystone/keystone.conf

                     DSC0000.png

                     DSC0001.png

      ③    填充身份服务数据库:

        su -s /bin/sh -c "keystone-manage db_sync" keystone

      ④    初始化Fernet密钥存储库:

        keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

        keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

       ⑤引导identity service

                     #--bootstrap-password这里的密码是第4步,第二步骤定义的配置管理账户的密码

                     keystone-manage bootstrap --bootstrap-password admin --bootstrap-admin-url http://controller:35357/v3/ --bootstrap-internal-url http://controller:5000/v3/ --bootstrap-public-url http://controller:5000/v3/ --bootstrap-region-id RegionOne

       3.配置apache

              1.配置/etc/httpd/conf/httpd.conf 编辑ServerName

                     DSC0002.png

              2.创建/usr/share/keystone/wsgi-keystone.conf软连接

                     ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

       4.完成安装

              1.开启httpd和设置开机启动

                     systemctl enable httpd.service

                     systemctl start httpd.service

              2.配置管理账户

                     [iyunv@controller ~]# export OS_USERNAME=admin

       [iyunv@controller ~]# export OS_PASSWORD=admin

       [iyunv@controller ~]# export OS_PROJECT_NAME=admin

       [iyunv@controller ~]# export OS_USER_DOMAIN_NAME=Default

       [iyunv@controller ~]# export OS_PROJECT_DOMAIN_NAME=Default

       [iyunv@controller ~]# export OS_AUTH_URL=http://controller:35357/v3

       [iyunv@controller ~]# export OS_IDENTITY_API_VERSION=3

三、创建一个域、项目、用户和角色

       服务提供身份认证服务为每个OpenStack服务。身份验证服务使用的领域,项目,用户和角色。


  • 创建service project:
  openstack project create --domain default --description "Service Project" service
     DSC0003.png

      2.创建demo project 和user:

              ①创建demo项目     

                openstack project create --domain default --description "Demo Project" demo

                DSC0004.png

              ②创建demo用户:

                     openstack user create --domain default --password-prompt demo

                     DSC0005.png

              ③创建user 角色:

                     openstack role create user

                     DSC0006.png

              ④将user添加到demo项目和user:

                     openstack role add --project demo --user demo user

四、校验操作

       验证操作的身份服务在安装之前做其他服务(在控制节点上操作)


  • 出于安全原因,禁用临时身份验证令牌机制:
    编辑/etc/keystone/keystone-paste.ini;

    删除[pipeline:public_api] [pipeline:admin_api] [pipeline:api_v3] 下边的admin_token_auth

     DSC0007.png

  2.删除OS_AUTH_URL OS-PASSWORD 临时环境变量

  unset OS_AUTH_URL OS_PASSWORD
  3.作为管理用户,请求身份验证令牌:
    这里用的是用户admin和密码admin;上边设置的管理员

  openstack --os-auth-url http://controller:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue
     DSC0008.png

  4.作为demo用户,请求身份验证令牌:

    这里用的是用户demo和密码demo;上边设置的demo用户

  openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name demo --os-username demo token issue
     DSC0009.png

    提示:

    这个命令使用是demo用户的密码和API 5000端口只允许普通(非管理)访问身份服务API。

五、创建客户机环境openstack脚本

       前一节中使用环境变量的组合和命令选项与身份服务通过openstack客户机交互。增加客户端操作效率,OpenStack支持简单的客户机环境脚本也称为OpenRC文件。这些脚本通常包含常见的选项对所有客户,但也支持独特的选择。有关更多信息,请参见OpenStack最终用户指南。

  1.创建脚本:
    创建admin和demo项目和users的客户机环境脚本。未来本指南的部分参考这些脚本加载客户端操作的适当的凭证。

    a)创建和编辑admin-openrc文件并添加以下内容:(目录自己定义)

      vi admin-openrc

      export OS_PROJECT_DOMAIN_NAME=Default

      export OS_USER_DOMAIN_NAME=Default

      export OS_PROJECT_NAME=admin

      export OS_USERNAME=admin

      export OS_PASSWORD=admin       #用户admin的密码

      export OS_AUTH_URL=http://controller:35357/v3

      export OS_IDENTITY_API_VERSION=3

      export OS_IMAGE_API_VERSION=2

    b)创建和编辑demo-openrc文件并添加以下内容: (目录自己定义)

      vi demo-openrc

      export OS_PROJECT_DOMAIN_NAME=Default

      export OS_USER_DOMAIN_NAME=Default

      export OS_PROJECT_NAME=demo

      export OS_USERNAME=demo

      export OS_PASSWORD=demo        #用户demo的密码

      export OS_AUTH_URL=http://controller:5000/v3

      export OS_IDENTITY_API_VERSION=3

      export OS_IMAGE_API_VERSION=2

  2.使用脚本:
    a) 加载admin-openrc文件填充环境变量与身份的位置服务和管理项目和用户凭证:

      . admin-openrc

    b) 请求身份验证令牌:

  openstack token issue
       DSC00010.png

         身份验证服务完成!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388241-1-1.html 上篇帖子: OpenStack基础环境 [一] 下篇帖子: OpenStack架构入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表