使用 OpenStack Identity

在使用 Identity 服务之前,您需要通过遵循 连接 用户指南来创建与您的 OpenStack 云的连接。这将为您提供下面的示例中使用的 conn 变量。

OpenStack Identity 服务是 OpenStack 的默认身份管理系统。Identity 服务的身份验证过程通过验证用户提供的凭据集来确认用户和传入请求的身份。最初,这些凭据是用户名和密码或用户名和 API 密钥。当 Identity 服务验证用户凭据时,它会颁发一个身份验证令牌,用户在后续请求中提供该令牌。身份验证令牌是一个字母数字文本字符串,可用于访问 OpenStack API 和资源。令牌可以随时撤销,并且在有限的时间内有效。

列出用户

用户是使用 OpenStack 云服务的人员、系统或服务的数字表示。Identity 服务验证传入请求是由声称发起调用的用户发起的。用户拥有登录名,并且可以使用分配的令牌访问资源。用户可以被直接分配到特定项目,并表现得好像包含在该项目中一样。

def list_users(conn):
    print("List Users:")

    for user in conn.identity.users():
        print(user)

完整示例:identity 资源列表

列出凭据

凭据是确认用户身份的数据。例如,用户名和密码、用户名和 API 密钥,或者 Identity 服务提供的身份验证令牌。

def list_credentials(conn):
    print("List Credentials:")

    for credential in conn.identity.credentials():
        print(credential)

完整示例:identity 资源列表

列出项目

项目是一个容器,用于分组或隔离资源或身份对象。

def list_projects(conn):
    print("List Projects:")

    for project in conn.identity.projects():
        print(project)

完整示例:identity 资源列表

列出域

是 Identity 服务 API v3 实体,代表一组项目和用户,定义了 Identity 实体管理的行政边界。用户可以被授予域的管理员角色。域管理员可以在域中创建项目、用户和组,并将角色分配给域中的用户和组。

def list_domains(conn):
    print("List Domains:")

    for domain in conn.identity.domains():
        print(domain)

完整示例:identity 资源列表

列出组

是 Identity 服务 API v3 实体,代表由域拥有的用户集合。授予域或项目的组角色适用于组中的所有用户。将用户添加到组或从组中删除用户分别授予或撤销他们与相关域或项目的角色和身份验证。

def list_groups(conn):
    print("List Groups:")

    for group in conn.identity.groups():
        print(group)

完整示例:identity 资源列表

列出服务

服务是一个 OpenStack 服务,例如 Compute、Object Storage 或 Image 服务,它通过一个或多个端点提供用户可以访问资源和执行操作的方式。

def list_services(conn):
    print("List Services:")

    for service in conn.identity.services():
        print(service)

完整示例:identity 资源列表

列出端点

端点是一个可通过网络访问的地址,通常是 URL,您可以通过它访问服务。

def list_endpoints(conn):
    print("List Endpoints:")

    for endpoint in conn.identity.endpoints():
        print(endpoint)

完整示例:identity 资源列表

列出区域

区域是 Identity 服务 API v3 实体,代表 OpenStack 部署中的一般划分。您可以将零个或多个子区域与区域关联,以创建一个类似树的结构化层次结构。

def list_regions(conn):
    print("List Regions:")

    for region in conn.identity.regions():
        print(region)

完整示例:identity 资源列表