Smart Card Authentication with Microsoft 365 on Rocky Linux 10

These are my notes on configuring Rocky Linux 10 to authenticate to Microsoft 365 using a smart card and Microsoft Edge. This allows me to access Microsoft 365 web applications, including Outlook and Teams, using certificate-based authentication.
The following documents the configuration I verified in November 2026.

Install Microsoft Edge

Import the Microsoft package-signing key:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

Configure the Microsoft Edge repository:

sudo tee /etc/yum.repos.d/microsoft-edge.repo > /dev/null <<'EOF'
[microsoft-edge]
name=Microsoft Edge
baseurl=https://packages.microsoft.com/yumrepos/edge/
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
EOF

Install Microsoft Edge:

sudo dnf install -y microsoft-edge-stable

Install Smart Card Support

Install the PC/SC smart-card infrastructure, OpenSC middleware, and Public-Key Cryptography Standards #11 (PKCS#11) libraries:

sudo dnf install -y \
  pcsc-lite \
  pcsc-lite-ccid \
  opensc \
  opensc-libs \
  nss-tools \
  p11-kit

Enable the PC/SC smart-card service:

sudo systemctl enable --now pcscd.socket

Verify Smart Card Detection

Insert the smart card into the reader and verify that Rocky Linux recognizes it:

opensc-tool --list-readers

The output should identify the reader and show Yes in the Card column:

# Detected readers (pcsc)
Nr. Card Features Name
0 Yes <Smart Card Reader>

Verify that OpenSC can access the smart card through the PKCS#11 interface:

pkcs11-tool \
  --module /usr/lib64/pkcs11/opensc-pkcs11.so \
  --list-slots

For a compatible, initialized smart card, the output should identify the token and its authentication requirements.

Verify that OpenSC is registered with the system-wide PKCS#11 infrastructure:

p11-kit list-modules

The output should include:

module: opensc
path: /usr/lib64/pkcs11/opensc-pkcs11.so

On my Rocky Linux 10 workstation, OpenSC was already registered through p11-kit. No additional module registration was required.

Authenticate to Microsoft 365

Launch Microsoft Edge and navigate to your organization’s Microsoft 365 portal.

For example, organizations using commercial Microsoft 365 may use:

microsoft-edge-stable https://www.microsoft365.com/

The appropriate URL depends on the organization’s Microsoft 365 environment.

I completed authentication using the same certificate-based process available on Windows:

  1. Enter organizational email address.
  2. Select the appropriate smart-card authentication certificate.
  3. Enter smart-card PIN.

After authentication, I accessed my Microsoft 365 Outlook calendar and joined a Microsoft Teams meeting using a link from a calendar invitation.

The availability of certificate-based authentication depends on the organization’s identity provider and authentication policies.

Verified Configuration

ComponentVerified configuration
Operating systemRocky Linux 10 (x86-64)
BrowserMicrosoft Edge 157.0.4341.46
Smart-card readerBroadcom 58200
Smart-card middlewareOpenSC 0.26.1
PKCS#11 integrationOpenSC with system-wide p11-kit

Additional Notes

The configuration worked with Rocky Linux 10’s standard smart-card packages. No Microsoft Identity Broker installation or manual Network Security Service (NSS) module registration was required.

This procedure documents a working configuration with a compatible smart card and an organization-managed Microsoft 365 environment. Other smart-card models and Microsoft 365 environments may require additional configuration.