2

すべてのコンポーネントをインストールする独自のハードウェアに 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 には何も入力されていないようです。

どんな助けや指針も大歓迎です。

4

1 に答える 1

3

openstack.net SDK 1.3.2.0IIdentityProviderの実装で使用されるデフォルトは、Rackspace の認証要件に合わせて設計されています。CloudServersProvider別の OpenStack 互換のインストールに対して認証するには、次のドキュメントで説明されている手順に従う必要があります。

OpenStack 認証 (openstack.net API リファレンス ドキュメント)

以下は、現在のドキュメントの抜粋です。

このページでは、DevStack や Rackspace Private Cloud を含むがこれらに限定されないリファレンス OpenStack インストールに対して認証を行うプロセスについて説明します。

使用上の注意

リファレンス OpenStack インストールに対するクライアント認証には、以下が必要です。

のインスタンスを作成し、CloudIdentityWithProjectそのプロパティを目的の認証資格情報で初期化します。CloudIdentityWithProject資格情報クラスを使用すると、OpenStack のドキュメントで説明されているtenantNameおよびプロパティを定義できます。tenantId

のインスタンスを作成しOpenStackIdentityProvider、以前に作成した資格情報をコンストラクターに渡します。

CloudFilesProviderやなどのサービス プロバイダー インスタンスを作成する場合は、パラメーターにnullCloudQueuesProvider渡し、前の手順の ID プロバイダーをパラメーターとして渡します。CloudIdentityIIdentityProvider

制限事項

OpenStackIdentityProvider、必要に応じてテナント名やテナント ID (Identity Service API v3 以降ではプロジェクト名と ID と呼ばれる) を指定すると共に、ユーザー名とパスワードのクレデンシャルを使用した認証のみをサポートします。

于 2014-06-18T18:28:45.310 に答える