web-dev-qa-db-ja.com

F5により、ユーザーはiControl RESTfulAPIにアクセスできます

REST apiを使用してF5ロードバランサーと対話しようとしています。iControlが有効になっていることを確認しましたが、コマンドを実行しようとすると、許可されていないと言われます。

curl -k -u someone -H "Content-Type: application/json" -X GET https://f5.example.com/mgmt/
Enter Host password for user 'someone':
{"code":404,"message":"http://localhost:8100/mgmt/","restOperationId":202459,"errorStack":["com.f5.rest.common.RestWorkerUriNotFoundException: http://localhost:8100/mgmt/","at com.f5.rest.common.RestServer.trySendInProcess(RestServer.Java:231)","at com.f5.rest.common.RestRequestReceiver.dispatchToService(RestRequestReceiver.Java:93)","at com.f5.rest.common.RestRequestReceiver.processNext(RestRequestReceiver.Java:57)","at com.f5.rest.common.RestHelper$2.run(RestHelper.Java:1910)","at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1145)","at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:615)","at Java.lang.Thread.run(Thread.Java:722)\n"]}

私のユーザーはActiveDirectoryに対して認証されています。

REST apiを使用するには、ユーザーアクセスを明示的に許可する必要がありますか?
ローカルアカウントが必要ですか?

更新

これは別の例です

ユーザー「誰か」は実際に存在します。それが私がWebポータルにログインする方法だからです。

curl -k -u someone -H "Content-Type: application/json" -X GET https://f5.example.com/mgmt/tm/sys
Enter Host password for user 'someone':
{"code":401,"message":"Authorization failed: no user named someone found. Uri:http://localhost:8100/mgmt/tm/sys Referer:null","restOperationId":869853,"errorStack":["Java.lang.SecurityException: Authorization failed: no user named someone found. Uri:http://localhost:8100/mgmt/tm/sys Referer:null","at com.f5.rest.workers.ForwarderWorker.evaluatePermission(ForwarderWorker.Java:411)","at com.f5.rest.workers.ForwarderPassThroughWorker.onForward(ForwarderPassThroughWorker.Java:191)","at com.f5.rest.workers.ForwarderPassThroughWorker.onGet(ForwarderPassThroughWorker.Java:321)","at com.f5.rest.common.RestWorker.callDerivedRestMethod(RestWorker.Java:735)","at com.f5.rest.common.RestWorker.callRestMethodHandler(RestWorker.Java:702)","at com.f5.rest.common.RestServer.processQueuedRequests(RestServer.Java:1092)","at com.f5.rest.common.RestServer.access$000(RestServer.Java:45)","at com.f5.rest.common.RestServer$1.run(RestServer.Java:136)","at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1145)","at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:615)","at Java.lang.Thread.run(Thread.Java:722)\n"]}
1
spuder

残りのインターフェイスは、設定した通常のF5方式を使用して認証されません。これを行う場合は、プールメンバーとしてF5を使用して仮想サーバーを作成し、いくつかのiruleを修正して残りのユーザーを削除し、それを認証に渡す必要があります...後で多くのコードが成功します。

Restは、f5上のプロセスに対してローカルなユーザーとロールを使用します。 tmosを介してユーザーを作成し、それをPATCHを介してiControl_REST_API_Userロールに関連付けます。

1
Chad

IControl RESTリモート認証のサポートについては、 F5のDevCentralに関するこの記事 を参照してください。

0
Jason Rahm