[英]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文檔中描述的tenantName
和tenantId
屬性。創建
OpenStackIdentityProvider
的實例,並將先前創建的憑據傳遞給構造函數。當創建一個服務提供者的實例,如
CloudFilesProvider
或CloudQueuesProvider
,傳遞null為CloudIdentity
參數和來自前一步驟的身份提供者IIdentityProvider
參數。限制
OpenStackIdentityProvider
僅支持使用用戶名和密碼憑據進行身份驗證,並可以選擇指定租戶名稱和/或租戶ID(從Identity Service API v3開始稱為項目名稱和ID)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.