2024-07-18 04:10 PM 2024-07-28 11:31 AM 更新
本ドキュメントは、リアルタイムでクライアント証明書の失効をチェックするため、Online Certificate Status Protocol(OCSP)を用いて Identity Services Engine(ISE)によるクライアントへの EAP-TLS 認証を実現するための設定例と動作確認方法について紹介します。本ドキュメントは、Identity Services Engine Virtual 3.2 Patch 6、C1000-48FP-4G-L 15.2(7)E9にて確認、作成をしております。
本ドキュメントは、以下の構成で、設定・動作確認例を紹介します。
本ドキュメントで使用されている各証明書の共通名(Common Name)を含む証明書チェーンは以下の通りです。
以下はC1000での最小限の設定です。
aaa new-model
radius server ISE32
address ipv4 1.x.x.181
key cisco123
aaa group server radius AAASERVER
server name ISE32
aaa authentication dot1x default group AAASERVER
aaa authorization network default group AAASERVER
aaa accounting dot1x default start-stop group AAASERVER
dot1x system-auth-control
interface Vlan12
ip address 192.168.10.254 255.255.255.0
interface Vlan14
ip address 1.x.x.101 255.0.0.0
interface GigabitEthernet1/0/1
Switch port access vlan 14
Switch port mode access
interface GigabitEthernet1/0/3
switchport access vlan 12
switchport mode access
authentication host-mode multi-auth
authentication port-control auto
dot1x pae authenticator
spanning-tree portfast edge
「Authentication」に移動し、「Enable IEEE 802.1X authentication」をチェックした後、「Microsoft: Smart Card or other certificate」を選択します。「Settings」ボタンをクリックして「Use a certificate on this computer」をチェックした後、CA(ocsp-ca-common-name)を選択します。
「Authentication」に移動し、「Additional Settings」をクリックした後、プルダウンリストから「User or computer authentication」を選択します。
「Certificates - Current User > Personal > Certificates」に移動し、認証用のクライアント証明書(Common Name = clientcertCN)を確認します。
クライアント証明書をダブルクリックし、「Details」に移動して、「Subject」、「CRL Distribution Points」、「Authority Information Access」の詳細を確認します。
「Active Directory Users and Computers」に移動し、「Users」をクリックした後、clientcertCN をドメインユーザーとして追加します。
「Windows」に移動し、「Online Responder Management」をクリックした後、OCSPサービスが正常に稼働していることを確認します。
「winserver.ad.rem-xxx.com」をクリックして、「OCSP signing certificate」が正常であることを確認します。
「Administration > Network Devices」に移動し、「Add」ボタンをクリックしてC1000デバイスを追加します。
「Administration > External Identity Sources > Active Directory」に移動し、「Connection」タブでActive Directoryを追加します。
「Groups」タブでドロップダウンリストから「Select Groups From Directory」を選択します。
「Retrieve Groups」をクリックしてから、「ad.rem-xxx.com/Users/Cert Publishers」をチェックして、「OK」をクリックします。
「Administration > External Identity Sources > Certificate Authentication Profile」に移動し、「Add」ボタンをクリックして新しい証明書認証用のプロファイルを追加します。
「Administration > Identity Source Sequences」に移動し、Identity Source Sequenceを追加します。
「Administration > Certificates > System Certificates」に移動し、試験用のサーバー証明書がCA(ocsp-ca-common-name)により発行されていることを確認します。
「Administration > Certificates > OCSP Client Profile」に移動し、「Add」ボタンをクリックした後、新しいOCSPクライアントプロファイルを追加します。
「Administration > Certificates > Trusted Certificates」に移動し、試験用のCA(ocsp-ca-common-name)がISEにインポートされていることを確認します。
上記のCAをチェックし、「Edit」ボタンをクリックした後、「Certificate Status Validation」項目で、OCSPサービスの詳細を入力します。
「Policy > Results > Authentication > Allowed Protocols」に移動し、「Default Network Access」に対し、「Allow EAP-TLS」をチェックします。
「Policy > Policy Sets」に移動し、「+」をクリックし、policy setを追加します。
「Policy > Policy Sets」に移動し、「EAP-TLS-Test」をクリックし、policy setに新しいauthentication policyを追加します。
「Policy > Policy Sets」に移動し、「EAP-TLS-Test」をクリックし、policy setに新しいauthorization policyを追加します。
「show authentication sessions interface GigabitEthernet1/0/3 details」コマンドを実行して、Authenticationセッション(User-Name: clientcertCN)を確認します。
Switch#show authentication sessions interface GigabitEthernet1/0/3 details
Interface: GigabitEthernet1/0/3
MAC Address: b496.9114.398c
IPv6 Address: Unknown
IPv4 Address: 192.168.10.10
User-Name: clientcertCN
Status: Authorized
Domain: DATA
Oper host mode: multi-auth
Oper control dir: both
Session timeout: N/A
Restart timeout: N/A
Periodic Acct timeout: N/A
Session Uptime: 111s
Common Session ID: 01C20065000000933E4E87D9
Acct Session ID: 0x00000078
Handle: 0xB6000043
Current Policy: POLICY_Gi1/0/3
Local Policies:
Service Template: DEFAULT_LINKSEC_POLICY_SHOULD_SECURE (priority 150)
Server Policies:
Method status list:
Method State
dot1x Authc Success
ISE GUIの「Operations > RADIUS > Live Logs」に移動し、EAP-TLS認証のlive logを確認します。
EAP-TLS認証の詳細なログを確認します。
これらのデバッグログ(prrt-server.log)はISE側での認証において詳細な動作を確認するのに役立ちます。
// OCSP request and response
Crypto,2024-06-05 09:43:33,064,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, CryptoLib.CSSL.OCSP Callback - starting OCSP request to primary,SSL.cpp:1444
Crypto,2024-06-05 09:43:33,064,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Start processing OCSP request, URL=http://winserver.ad.rem-xxx.com/ocsp, use nonce=1,OcspClient.cpp:144
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Received OCSP server response,OcspClient.cpp:411
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Nonce verification passed,OcspClient.cpp:426
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - OCSP responser name 8CD12ECAB78607FA07194126EDA82BA7789CE00C,OcspClient.cpp:462
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Verify response signature and KU/EKU attributes of response signer certificate,OcspClient.cpp:472
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Response signature verification passed,OcspClient.cpp:482
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - Response contains 1 single responses for certificates,OcspClient.cpp:490
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, Crypto.OcspClient::performRequest - User certificate status: Good,OcspClient.cpp:598
Crypto,2024-06-05 09:43:33,104,DEBUG,0x7f9822961700,NIL-CONTEXT,Crypto::Result=0, CryptoLib.CSSL.OCSP Callback - perform OCSP request succeeded, status: Good,SSL.cpp:1684
// Radius session
Radius,2024-06-05 09:43:33,120,DEBUG,0x7f982d7b9700,cntx=0000017387,sesn=ise32-01/506864164/73,CPMSessionID=01C20065000000933E4E87D9,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=1(AccessRequest) Identifier=238 Length=324
[1] User-Name - value: [clientcertCN]
[4] NAS-IP-Address - value: [1.x.x.101]
[5] NAS-Port - value: [50103]
[24] State - value: [37CPMSessionID=01C20065000000933E4E87D9;31SessionID=ise32-01/506864164/73;]
[87] NAS-Port-Id - value: [GigabitEthernet1/0/3]
Radius,2024-06-05 09:43:33,270,DEBUG,0x7f982d9ba700,cntx=0000017387,sesn=ise32-01/506864164/73,CPMSessionID=01C20065000000933E4E87D9,user=clientcertCN,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=2(AccessAccept) Identifier=238 Length=294
[1] User-Name - value: [clientcertCN]
Radius,2024-06-05 09:43:33,342,DEBUG,0x7f982d1b6700,cntx=0000017401,sesn=ise32-01/506864164/74,CPMSessionID=01C20065000000933E4E87D9,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=4(AccountingRequest) Identifier=10 Length=286
[1] User-Name - value: [clientcertCN]
[4] NAS-IP-Address - value: [1.x.x.101]
[5] NAS-Port - value: [50103]
[40] Acct-Status-Type - value: [Interim-Update]
[87] NAS-Port-Id - value: [GigabitEthernet1/0/3]
[26] cisco-av-pair - value: [audit-session-id=01C20065000000933E4E87D9]
[26] cisco-av-pair - value: [method=dot1x] ,RADIUSHandler.cpp:2455
Radius,2024-06-05 09:43:33,350,DEBUG,0x7f982e1be700,cntx=0000017401,sesn=ise32-01/506864164/74,CPMSessionID=01C20065000000933E4E87D9,user=clientcertCN,CallingStationID=B4-96-91-14-39-8C,RADIUS PACKET:: Code=5(AccountingResponse) Identifier=10 Length=20,RADIUSHandler.cpp:2455
ISEのTCP dumpでは、認証時にOCSPサーバーとの通信やRadius認証セッションに関する情報を確認することができます。
OCSP サーバーとの通信:
OCSP レスポンスの詳細(certStatus: good):
Radius認証セッション:
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます