Authenticate

翻译 2015年11月18日 10:50:35

Authenticate against an Identity endpoint

To authenticate against the Identity v2.0 endpoint, instantiate a keystoneclient.v_20.client.Client object:

为通过 Identity v2.0 endpoint 认证,需要创建一个 keystoneclient.v_20.client.Client 对象。

from os import environ as env
import keystoneclient.v2_0.client as ksclient
keystone = ksclient.Client(auth_url=env['OS_AUTH_URL'],
                           username=env['OS_USERNAME'],
                           password=env['OS_PASSWORD'],
                           tenant_name=env['OS_TENANT_NAME'],
                           region_name=env['OS_REGION_NAME'])

After you instantiate a Client object, you can retrieve the token by accessing itsauth_token attribute object:

可以查看token通过上面创建的对象。

print keystone.auth_token

Authenticate against an Image service endpoint

To authenticate against an Image service endpoint, instantiate aglanceclient.v2.client.Client object:

通过Image服务认证,需要创建 glanceclient.v2.client.Client 对象。

from os import environ as env
import glanceclient.v2.client as glclient
import keystoneclient.v2_0.client as ksclient

keystone = ksclient.Client(auth_url=env['OS_AUTH_URL'],
                           username=env['OS_USERNAME'],
                           password=env['OS_PASSWORD'],
                           tenant_name=env['OS_TENANT_NAME'],
                           region_name=env['OS_REGION_NAME'])
glance_endpoint = keystone.service_catalog.url_for(service_type='image')
glance = glclient.Client(glance_endpoint, token=keystone.auth_token)

Authenticate against a Compute endpoint

To authenticate against a Compute endpoint, instantiate anovaclient.v_1_1.client.Client object:

<span style="font-size:14px;">from os import environ as env
import novaclient.v1_1.client as nvclient

nova = nvclient.Client(auth_url=env['OS_AUTH_URL'],
                       username=env['OS_USERNAME'],
                       api_key=env['OS_PASSWORD'],
                       project_id=env['OS_TENANT_NAME'],
                       region_name=env['OS_REGION_NAME'])</span>

Alternatively, you can instantiate a novaclient.client.Client object and pass the version number:

或者,创建不写版本号 novaclient.client.Client对象

from os import environ as env
import novaclient.client
nova = novaclient.client.Client("1.1", auth_url=env['OS_AUTH_URL'],
                                username=env['OS_USERNAME'],
                                api_key=env['OS_PASSWORD'],
                                project_id=env['OS_TENANT_NAME'],
                                region_name=env['OS_REGION_NAME'])

Compute 的验证版本是V1.1,这个版本太老,今后将不支持使用,所以运行会有如下警告:

python auth_compute.py 
Version 1.1 is deprecated, using alternative version 2 instead. 

解决方法:查看现有的版本号,改上面的版本号即可

Authenticate against a Networking endpoint

To authenticate against a Networking endpoint, instantiate a neutronclient.v_2_0.client.Client object:

from os import environ as env
from neutronclient.v2_0 import client as neutronclient
neutron = neutronclient.Client(auth_url=env['OS_AUTH_URL'],
                               username=env['OS_USERNAME'],
                               password=env['OS_PASSWORD'],
                               tenant_name=env['OS_TENANT_NAME'],
                               region_name=env['OS_REGION_NAME'])

You can also authenticate by explicitly specifying the endpoint and token:

或者明确的指定 endpoint 和 token。

from os import environ as env
import keystoneclient.v2_0.client as ksclient
from neutronclient.v2_0 import client as neutronclient
keystone = ksclient.Client(auth_url=env['OS_AUTH_URL'],
                           username=env['OS_USERNAME'],
                           password=env['OS_PASSWORD'],
                           tenant_name=env['OS_TENANT_NAME'],
                           region_name=env['OS_REGION_NAME'])
endpoint_url = keystone.service_catalog.url_for(service_type='network')
token = keystone.auth_token
neutron = neutronclient.Client(endpoint_url=endpoint_url, token=token)



详情见:

http://docs.openstack.org/user-guide/sdk_authenticate_against_identity_endpoint.html

python 登录验证

python请求服务器数据,验证用户名和密码,除了常用的HTTPBasicAuthHandler,还有HTTPDigestAuthHandler,可以通过fiddler抓包,查看服务器返回数据中的验证...
  • feiniao8651
  • feiniao8651
  • 2015年10月14日 15:42
  • 2278

MongoDB升级到2.6.x版本后,用户无法登录的解决方案

今天没事跑去MongoDB的官方网站逛了下,发现有新的版本,于是就决定将开发环境下的mongodb-2.4.7直接升级到最新版本2.6.5版本。升级倒是异常快速,但使用客户端登录的时候就傻眼了,账号、...
  • xht555
  • xht555
  • 2014年11月08日 13:14
  • 10234

CentOS 7配置OpenVPN踩坑记录

网上有很多OpenVPN的配置教程,但是照着弄完后,发现无法上网,经过研究发现两个坑...
  • dybb8999
  • dybb8999
  • 2017年03月31日 10:17
  • 2903

通过SQLyog远程管理linux下mysql过程中遇到的问题以及解决方法

通过SQLyog实现远程管理linux服务器中的mysql数据库所遇到的问题以及解决方法
  • qq_27063119
  • qq_27063119
  • 2016年06月21日 11:25
  • 2041

HttpClient学习研究---第四章:HTTP authenticationHTTP身份验证

第四章。HTTP authenticationHTTP身份验证 HttpClient provides full support for authentication schemes d...
  • oJianDanai1234567893
  • oJianDanai1234567893
  • 2013年10月05日 17:03
  • 4520

Sailfish应用开发入门(四)ApplicationWindow与Cover

一、Sailfish Silica 基于QT Quick提供了Sailfish的UI界面。每个Sailfish 引用必须定义为一个Qt C++应用项目,在项目里使用QDeclarativeView加载...
  • liuhongwei123888
  • liuhongwei123888
  • 2013年05月01日 22:10
  • 2259

[转]www-authenticate认证过程浅析

一、www-authenticate简介www-authenticate是早期的一种简单的,有效的用户身份认证技术。 很多网站验证都采用这种简单的验证方式来完成对客户端请求的数据的合法性进行验证。尤...
  • maoliran
  • maoliran
  • 2016年07月06日 18:22
  • 1664

django 自定义auth的中间件的验证

今天在做django的用户验证这块的功能,想用django自带的auth的验证等现有的方法。从网上查到,auth的使用,详见:http://my.oschina.net/u/569730/blog/3...
  • corner1024
  • corner1024
  • 2015年07月14日 22:18
  • 1297

django使用email进行身份验证

版权所有,转载请注明出处:http://guangboo.org/2013/03/27/authentication-using-email-in-django django自带的验证功能免去了我们...
  • guangboo
  • guangboo
  • 2013年03月27日 22:23
  • 1510

kerberos管理开发总结

从10月23日左右,到10月27日搬完代码,到今天11月20日;小一个月已经过去了; kerberos管理所花的时间超出了我的预期。 当然,中间出了很多七七八八的是,干扰了开发。 比如,...
  • tianbaochao
  • tianbaochao
  • 2017年11月21日 15:19
  • 182
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Authenticate
举报原因:
原因补充:

(最多只允许输入30个字)