专栏名称: 云技术实践
关注云计算,云技术,云运维,云存储,存储,分布式,OpenStack,SDN,Ceph,虚拟化,运维,分享在云计算/虚拟化/运维项目实施中的资讯、经验、技术,坚持干货。
目录
相关文章推荐
架构师之路  ·  全球软件工程技术大会,送福利! ·  7 小时前  
架构师之路  ·  美团的童鞋,有个问题麻烦您帮忙看一下... ·  昨天  
高可用架构  ·  这家公司对网关性能的优化历程,在 ... ·  昨天  
美团技术团队  ·  北斗计划 | 美团核心本地商业大模型全年招聘 ·  5 天前  
美团技术团队  ·  无需代码!美团 NoCode ... ·  5 天前  
51好读  ›  专栏  ›  云技术实践

《OpenDaylight》第一章:OpenDaylight原理(下)

云技术实践  · 公众号  · 架构  · 2017-05-19 13:07

正文

请到「今天看啥」查看全文



OpenDaylight安全功能由AAA项目提供,该机制提供的功能有:

  • 认证:用于认证用户

  • 授权:给用户访问资源的权限

  • 计费:记录用户访问的资源

默认情况下,当你安装任何特性,AAA认证就会安装。默认提供两个用户:

  • 用户admin,密码admin

  • 用户user,密码user


预备条件


这个方法不需要OpenDaylight以外的东西。

样例代码放在:

https://github.com/jgoodyear/OpenDaylightCookbook/tree/master/chapter1/chapter1-recipe7


操作指南


1.使用karaf脚本启动OpenDaylight karaf发行版本。使用这个脚本你可以访问到karaf CLI。

$ ./bin/karaf

2.安装面向用户的特性功能以及所有依赖,开启用户认证

OpenDaylight-user@root>feature:install odl-aaa-authn

3.检索已经存在的用户列表

type: GET
headers:
  Authorization: Basic YWRtaW46YWRtaW4=
url: http://localhost:8181/auth/v1/users
{
    "users":
    [
        {
            "userid": "admin@sdn",
            "name": "admin",
            "description": "admin user",
            "enabled": true,
            "email": "",
            "password": "**********",
            "salt": "**********",
            "domainid": "sdn"
        },
        {
            "userid": "user@sdn",
            "name": "user",
            "description": "user user",
            "enabled": true,
            "email": "",
            "password": "**********",
            "salt": "**********",
            "domainid": "sdn"
        }
    ]
}

4.更新用户配置

更新用户的密码,使用以下请求:

type: PUT
headers:
  Authorization: Basic YWRtaW46YWRtaW4=

这是基本的admin/admin认证,我们可以修改它

Payload:
{
"userid": "user@sdn",
"name": "user",
"description": "user user",
"enabled": true,
"email": "",
"password": "newpassword",
"domainid": "sdn"
}
url: http://localhost:8181/auth/v1/users/user@sdn

5.试一下新的用户密码。打开浏览器并访问http://localhost:8181/auth/v1/users,可以请求认证。使用:

username: user
password: newpassword

你可以使用新密码登入了。


工作原理


AAA项目支持基于Apache Shiro系统的角色访问控制协议(RBAC)。它定义了一个REST应用用于交互h2数据库。每个数据库表拥有独立的REST endpoint,通过使用REST CLI修改h2数据库中的内容,比如用户信息。







请到「今天看啥」查看全文