らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Cisco ACI でユーザのローカル認証時に OTP (ワンタイムパスワード) を利用する

Cisco ACI ではユーザをローカル認証する際、OTP (ワンタイムパスワード) を利用することが出来ます (※ リモートユーザでは試したことがありません… リモートユーザでも出来るのかも?)。 今回は OTP の設定方法をメモしておきます。 今回は ACI 4.2(2e) を利用しました。

尚、OTP は ACI 3.0(1) からサポートされた機能のようです。

Feature Description
Local User Authentication using OTP OTP is a one-time password that is valid for only one session. Once OTP is enabled, Cisco APIC generates a random human readable 16 binary octets that are base32 OTP Key.

目次

1. OTP を有効化したユーザを作成する

まず、最初にユーザを作成します。 Web GUI のユーザ作成ウィザードでは OTP の設定が出来ない為、ウィザードでユーザ作成を完了させた後、ユーザのプロパティを開いて OTP 設定を有効化します。

Step.1-1

admin 等、ユーザを作成出来る権限をもったユーザでログインし、AdminAAAUsersLocal UsersCreate Local User をクリックします。

f:id:sig9:20191013231014p:plain

Step.1-2

以下の必須パラメータを指定し、Next をクリックします。

  1. Login ID
  2. Password
  3. Confirm Password

f:id:sig9:20191013231025p:plain

Step.1-3

Security Domain を選択し、Next をクリックします。

f:id:sig9:20191013231034p:plain

Step.1-4

RoleRole Privilege Type を選択し、Finish をクリックします。

f:id:sig9:20191013231043p:plain

Step.1-5

これでユーザが作成出来ました。 OTP 設定を変更する為、ユーザ名をダブルクリックします。

f:id:sig9:20191013231052p:plain

Step.1-6

デフォルトで Enable OTPNo になっているので、これを Yes に変更し、Submit をクリックします。

f:id:sig9:20191013231101p:plain

Step.1-7

Policy Usage Warning 画面が表示されますが、特に影響を受けるノードはありません。 Submit Changes をクリックします。

f:id:sig9:20191013231110p:plain

2. OTP を有効化したユーザでログインする

OTP を有効化したユーザでログインしてみます。

Step.2-1

ユーザ作成直後の初回ログイン時は OTP を意識することなく、設定したユーザ名&パスワードでログインします。

f:id:sig9:20191013231120p:plain

Step.2-2

初回ログインなので Welcome to APIC 画面が表示されます。 Get Started をクリックします。

f:id:sig9:20191013231129p:plain

Step.2-3

OTP を有効化しているユーザの場合のみ、ここで Two-factor Authentication Enabled というウインドウが表示されます。 QR コードが表示されますので下記等のアプリケーションで読み取り、APIC を登録します。

f:id:sig9:20191013231139p:plain

Step.2-4

QR コードの登録が終わったら一度、ログアウトします。

f:id:sig9:20191013231149p:plain

Step.2-5

次は OTP を使ってログインします。 Password 欄にはユーザに登録したパスワードでは無く、「ユーザ登録パスワード」+「認証コード」を登録します。 例えば「パスワードは PASSWORDGoogle Authenticator 上の APIC に表示されている認証コードが 123 456」の場合、Password 欄には「PASSWORD123456」を入力します。 OTP は 30 秒毎に変更されます。 初回ログイン時は QR コードが表示されますが、2 回目以降のログインでは QR コードが表示されなくなります。

f:id:sig9:20191013231157p:plain

3. OTP をリセットする

一度、ユーザでログインしてしまうと OTP Code が変更されてしまいます。 万一、OTP Code が分からなくなってしまい、認証コードが生成出来なくなってしまった場合は admin 等、適切な権限を持った別ユーザでログインし、AdminAAAUsersLocal Users から OTP 設定をリセットしたいユーザ名上で右クリックし、表示されたコンテキストメニューから Reset OTP をクリックします。 特に確認ダイアログが表示されないので「OTP 設定がリセットされたのか?」分かりづらいですが、Step.2-3 の手順を使って該当ユーザでログインしなおせば再度、QR コードが表示されます。

f:id:sig9:20191013231208p:plain

4. CLI から OTP を設定する

CLI から OTP 設定を有効化するには以下のように実行します。

username [USERNAME]
  totp-enable

5. CLI から OTP 設定の有無を確認する

CLI から OTP 設定の有無を確認するには show username [USERNAME] を実行します。

OTP 設定が無効の場合

TOTP Statuc : no になっており、OTP 設定が無効であることが分かります。

apic# show username user
UserName                : user
First-Name              :
Last-Name               :
Email                   :
Account Status          : active
Password strength check : no
TOTP Status             : no
TOTP Secret             : N/A

OTP 設定が有効の場合

TOTP Status : yes になっており、OTP 設定が有効であることが分かります。

apic# show username user
UserName                : user
First-Name              :
Last-Name               :
Email                   :
Account Status          : active
Password strength check : no
TOTP Status             : yes
TOTP Secret             : otpauth://totp/user@apic?secret=ABCDEFG123456789