# aaa authentication login

モード
  グローバルコンフィグモード
カテゴリー
  運用・管理 / ユーザー認証

## 構文

コマンド構文

`(config)# aaa authentication login {default|LISTNAME} METHODLIST`

`(config)# no aaa authentication login {default|LISTNAME}`

## コマンド説明

ログイン用の認証順序リストを新規作成あるいは変更する。
no形式で実行した場合は認証順序リストを削除する。
初期状態では認証順序リストはユーザー認証データベースのみ使用する設定(aaa authentication login default local)が適用される。

## パラメーター

`default`
  デフォルト認証順序リスト。ユーザー定義の認証順序リストが設定されていない端末には、デフォルト認証順序リストで指定された認証方式が順に適用される。なお、デフォルト認証順序リストの初期設定では、ユーザー認証データベースだけを使用する
`LISTNAME`
  ユーザー定義の認証順序リスト。任意の名前を指定できる。ユーザー定義の認証順序リストはラインモードのlogin authenticationコマンドで端末に関連付けることで初めて意味を持つ。半角英数字とハイフン、アンダースコアのみ使用可能
`METHODLIST := {local | group SERVER | group SERVER local}`
  認証順序。使用したい認証方式を使用順に列挙する。なお、RADIUSサーバーとユーザー認証データベースを併用する場合は、RADIUSサーバー、ユーザー認証データベースの順（`group SERVER local`）のみ設定可能
  `local`
    ユーザー認証データベース。usernameコマンドで設定したユーザー情報を使う
  `group SERVER := group {ldap|radius|tacacs+|GROUPNAME}`
    認証要求の送信先サーバー。次のいずれかを指定する
    `ldap`
      ldap-serverコマンドとそのサブコマンドで設定したすべてのLDAPサーバーを順に試行する
    `radius`
      radius-server hostコマンドで設定したすべてのRADIUSサーバーを順に試行する
    `tacacs+`
      tacacs-server hostコマンドで設定したすべてのTACACS+サーバーを順に試行する
    `GROUPNAME`
      指定したサーバーグループ（aaa group server ldapコマンドまたはaaa group server radiusコマンドで作成）に所属するLDAPまたはRADIUSサーバーだけを順に試行する

## 使用例

デフォルト認証順序リストを編集し、原則としてすべての端末において、ログイン認証ではRADIUSサーバー、ユーザー認証データベースの順に認証を行うよう設定する。

    awplus(config)# aaa authentication login default group radius local

独自の認証順序リスト「RemoteLogin」を作成し、すべての仮想端末（vty 0～32）に適用する。これにより、TelnetやSSHによるリモートログインには該当認証順序リストが適用され、コンソールターミナルからのログインにはデフォルトの認証順序リストが適用されるようになる。
ここではデフォルトの認証順序リストは初期設定のままなので、結果的にコンソールターミナルからのログイン時は内蔵のユーザー認証データベースだけが使用され、リモートログイン時はRADIUSサーバー、ユーザー認証データベースの順で認証処理が行われることとなる。

    awplus(config)# aaa authentication login RemoteLogin group radius local
    awplus(config)# line vty 0 32
    awplus(config-line)# login authentication RemoteLogin

## 注意・補足事項

ユーザー認証データベースだけを使って認証を行うよう設定している場合、次のように認証が行われる。

1. 受け取ったユーザー名、パスワードをもとに、ユーザー認証データベースを検索する。
   - ユーザー名がユーザー認証データベースに登録されており、ユーザー名に対応するパスワードが正しい場合、ユーザー認証データベースに登録されている権限レベルで認証成功とする（処理終了）
   - ユーザー名がユーザー認証データベースに登録されており、ユーザー名に対応するパスワードが正しくない場合、認証失敗とする。（処理終了）
   - ユーザー名がユーザー認証データベースに登録されていない場合、認証失敗とする（処理終了）

RADIUSサーバーとユーザー認証データベースを併用する場合、認証順序はRADIUSサーバー、ユーザー認証データベースの順のみ設定可能。この場合、ユーザー認証データベースは、RADIUSサーバーへの通信ができないときのバックアップ用となる。
RADIUSサーバーだけを使って認証を行うよう設定している場合、および、認証順序をRADIUSサーバー、ユーザー認証データベースの順にしている場合は、次のように認証が行われる。

1. 受け取ったユーザー名、パスワードをもとに、RADIUSサーバーに認証を要求する。
   - 応答がAccess-Acceptの場合
     - Service-Type属性がAdministrative(6)なら権限レベル15を割り当て、手順2のa)に進む
     - Service-Type属性がNAS Prompt(7)なら権限レベル1を割り当て、手順2のa)に進む
     - それ以外の場合は権限レベル0を割り当て、手順2のa)に進む
   - 応答がAccess-Rejectの場合は認証失敗とする（処理終了）
   - RADIUSサーバーが登録されていない場合、または、登録されているRADIUSサーバーを順にトライし、すべてのサーバーが無応答だった場合は権限レベル0を割り当て、手順2のb)に進む
2. ユーザー認証データベースを検索する。このときの動作は、手順1の結果によってa)、b)の2とおりにわかれる。
   a) 手順1でAccess-Acceptを受信した場合、手順1と同じユーザー名をもとに、ユーザー認証データベースを検索する。
   - ユーザー名がユーザー認証データベースに登録されている場合、手順1で割り当てられた権限レベルをユーザー認証データベースに登録されている値に書き換え、手順3に進む（パスワードはチェックしない）
   - ユーザー名がユーザー認証データベースに登録されていない場合、何もせずに手順3に進む
   b) 手順1でRADIUSサーバーから応答を得られなかった場合（RADIUSサーバー未登録のケースを含む）は、手順1と同じユーザー名、パスワードをもとに、ユーザー認証データベースを検索する。
   - ユーザー名がユーザー認証データベースに登録されており、ユーザー名に対応するパスワードが正しい場合、手順1で割り当てられた権限レベルをユーザー認証データベースに登録されている値に書き換え、手順3に進む
   - ユーザー名がユーザー認証データベースに登録されており、ユーザー名に対応するパスワードが正しくない場合、何もせずに手順3に進む
   - ユーザー名がユーザー認証データベースに登録されていない場合、何もせずに手順3に進む
3. ログイン可否と権限の最終判定を行う
   - 権限レベルが15または1の場合、それぞれのレベルで認証成功とする（処理終了）
   - 権限レベルが0の場合、認証失敗とする（処理終了）

RADIUSのService-Type属性とユーザーの権限レベルの関係は次のとおり

表 1
Service-Type属性値 | 権限レベル
Administrative(6) | 15（管理者権限。特権EXECモードにパスワードなしで移行できる）
NAS Prompt(7) | 1（一般ユーザー権限。特権EXECモードの移行には、enable passwordコマンドで事前に設定された正しいパスワードの入力が必要）
上記以外の値 | 0（ログイン不可）
属性なし

ログイン認証にRADIUSサーバーを使う場合、ログイン用のユーザーとして以下の名前をRADIUSサーバーに登録しないこと。

- root
- httpd
- sshd
- daemon
- manager
- nobody
- tss

ログイン認証にRADIUSサーバー、TACACS+サーバーを使っている場合、先頭文字が `@ % / \` のユーザーは使用できない。
バージョン5.5.0-2.x以降のファームウェアでは、起動時コンフィグ内でLISTNAME、GROUPNAMEに半角英数字、ハイフン、アンダースコア以外の文字が使用されていた場合、該当文字をランニングコンフィグ上でアンダースコアに置き換える。

## コマンドツリー

## 関連コマンド