キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2213
閲覧回数
0
いいね!
0
コメント
takasano
Cisco Employee
Cisco Employee

はじめに

本稿では Cisco Application Centric Infrastructure (ACI) における API 利用の最初の一歩であるログイン認証の Token の取得方法について解説します。
本稿では Postman と cURL を用いた Token の取得方法を解説します。
利用した環境は下記になります。

APIC : 5.2(2g)
Postman : v9.1.3 ( for Windows 64 bits )
cURL : 7.68.0

 

Postman を利用する場合

Postman を使用した操作については「REST クライアントを用いた設定」も参照してください。

Postman アプリのインストール

公式サイトから Postman アプリをインストールし、アプリを起動してください。
※ 無料アカウントを作成しサインインが必要です。

Token の取得定義

Collections を選択し、New をクリックして新しい Workspace を作成します。

01_new.png

HTTP Request を選択します。

02_HTTP_Request.png

POST を選択し、'https://<APIC IP Address>/api/aaaLogin.json' を URL として入力します。
なお、<APIC IP address> は「アクセスする APIC の Management IP Address」を表します。
次に Body をクリックして raw を選択し形式を JSON にします。
送信する Body のデータには下記を入力します。
なお、<Username> は「ログインに使用するUsername」、<Password> は「ログインに使用するUserのPassword」を表しています。

{
    "aaaUser": {
        "attributes": {
            "name": "<Username>",
            "pwd": "<Password>"
        }
    }
}

例えば、User が「admin」でその Password  が「cisco」で APIC の IP Address が「192.168.1.1」の場合、下記のようになります。

03_aaaLogin.png

適切な情報の入力が完了したら、Send をクリックして Request を実行します。

04_Send.png

成功すると下記のように Token が表示されます。
なお、下記の画像では Token の一部だけを表示していて実際には非常に長い文字列です。
また、Token 取得時の Cookie が有効であれば、下記の文字列をコピーする必要はありません。

05_Token.png

取得した Token の動作確認

取得した Token が実際に使えるかを試すため、ACI Fabric 内の Tenant の情報を取得します。
新しい HTTP Request を作成して Get を選択し 'https://<APIC IP Address>/api/node/class/fvTenant.json' を URL として入力して Send をクリックします。
なお、<APIC IP address> は「アクセスする APIC の Management IP Address」を表します。
例えば、APIC の IP Address が「192.168.1.1」の場合、下記のようになります。

06_Get_Tenant.png

Request が成功した場合、下記のような Response を受け取ります。

07_Response.png

なお、Cookie がうまく有効でない場合は Headers に下記のような情報を追加することで認証出来るようになります。
XXXXXXXXXXXXXX は取得した Token を表しています。

Cookie:  APIC-cookie=XXXXXXXXXXXXXX

08_header.png

 

cURL を利用する場合

Token の取得

cURL で Token を取得するには下記のコマンドを実行します。
なお、<Username> は「ログインに使用するUsername」、<Password> は「ログインに使用するUserPassword」、<APIC IP address> は「アクセスする APIC の Management IP Address」をそれぞれ表しています。

curl -X POST -d '{"aaaUser":{"attributes":{"name":"<Username>","pwd":"<Password>"}}}' -k https://<APIC IP Address>/api/aaaLogin.json

例えば、User が「admin」でその Password  が「cisco」で APIC の IP Address が「192.168.1.1」の場合、下記のようになります。

curl -X POST -d '{"aaaUser":{"attributes":{"name":"admin","pwd":"cisco"}}}' -k https://192.168.1.1/api/aaaLogin.json

上記のコマンドを実行して成功すると下記のような出力を得ます。
下記の aaaLogin 内の attributes 内の token がここで取得しようとしていた Token です。
なお、下記には XXXXXXXXXXXXXX と短く記載していますが、実際には非常に長い文字列が出力されます。

{"totalCount":"1","imdata":[{"aaaLogin":{"attributes":{"token":"XXXXXXXXXXXXXX","siteFingerprint: (snip) }}}]}

 

取得した Token の動作確認

取得した Token が実際に使えるかを試すため、下記のコマンドでACI Fabric 内の Tenant の情報を取得します。
なお、<APIC IP Address> は Token を取得した APIC の IP Address で XXXXXXXXXXXXXX の部分に取得した Token を入力してください。

curl -k -X GET -H 'Cookie: APIC-cookie=XXXXXXXXXXXXXX' https://<APIC IP Address>/api/node/class/fvTenant.json

コマンドが成功すると下記のように Tenant の情報が出力されます。

{"totalCount":"25","imdata":[{"fvTenant":{"attributes":{"annotation":"","childAction":"","descr":"","dn":"uni/tn-testtenant", (snip) }}}]}

 

Token のコピーが不要な方法

下記のように -c で Cookie の情報をファイルに保存しておくことで、Token を手動でコピーする必要は無くなります。

curl -X POST -d '{"aaaUser":{"attributes":{"name":"<Username>","pwd":"<Password>"}}}' -k https://<APIC IP Address>/api/aaaLogin.json -c cookie.txt

下記のように -b でその情報を Request 実行に利用します。

curl -k -X GET -b cookie.txt https://<APIC IP Address>/api/node/class/fvTenant.json

本稿は以上となります。

 

参考情報

REST クライアントを用いた設定
Cisco APIC REST API Configuration Guide, Release 4.2(x) and Later

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします

Quick Links