簡體   English   中英

Openstack.Net SDK無法訪問服務

[英]Openstack.Net SDK cannot access services

我們已經在自己的硬件上安裝了所有組件的OpenStack系統,並通過Web界面創建了網絡和VM,一切似乎都很好。

我正在嘗試使用openstack.net SDK以編程方式執行操作。 我似乎可以使用用戶名和密碼來進行身份驗證,但是在訪問已安裝的其他服務時,我們會收到錯誤消息,提示用戶無法使用API​​端點。

我們正在使用的代碼在下面可以正常工作,直到出現錯誤的CreateServer行為止

“無法驗證用戶身份和檢索授權的服務端點。”

 Uri baseUrl = new Uri("http://mycloudip:5000/v2.0");
 CloudIdentity cloudId = new CloudIdentity()
            {
                Username = userName,
                Password = password
            };
 CloudIdentityProvider cip = new CloudIdentityProvider(cloudId, baseUrl);
 UserAccess ua = cip.Authenticate(cloudId);

 CloudServersProvider provider = new CloudServersProvider(cloudId);

 Metadata metaData = new Metadata(); // Add some metadata just because we can
 metaData.Add("Description", "Example 4 - Getting Started");

 string serverName = "Example4";
 string imageId = "48df4181-040e-4821-8723-d9e4ba908d2f";
 string flavorId = "3";

NewServer newServer = provider.CreateServer(serverName, imageId, flavorId, DiskConfiguration.Manual, metaData);

在儀表板中以同一用戶身份登錄時,我可以在“訪問和安全>> API端點”部分中看到所有服務url,但是UserAccess.ServiceCatalog似乎沒有任何內容。

任何幫助或指針,不勝感激。

默認IIdentityProvider由所使用的CloudServersProvider在openstack.net SDK 1.3.2.0實現的設計是圍繞為Rackspace公司的認證要求。 為了對其他與OpenStack兼容的安裝進行身份驗證,您需要按照以下文檔中描述的步驟進行操作:

OpenStack身份驗證(openstack.net API參考文檔)

以下是當前文檔的摘錄:

此頁面描述了針對參考OpenStack安裝進行身份驗證的過程,包括但不限於DevStack和Rackspace私有雲。

使用說明

針對參考OpenStack安裝的客戶端身份驗證需要以下內容。

創建CloudIdentityWithProject的實例,並使用所需的身份驗證憑據初始化其屬性。 CloudIdentityWithProject憑證類允許定義OpenStack文檔中描述的tenantNametenantId屬性。

創建OpenStackIdentityProvider的實例,並將先前創建的憑據傳遞給構造函數。

當創建一個服務提供者的實例,如CloudFilesProviderCloudQueuesProvider ,傳遞nullCloudIdentity參數和來自前一步驟的身份提供者IIdentityProvider參數。

限制

OpenStackIdentityProvider僅支持使用用戶名和密碼憑據進行身份驗證,並可以選擇指定租戶名稱和/或租戶ID(從Identity Service API v3開始稱為項目名稱和ID)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM