Skip to content
Current

Duo: who is protected by multi-factor, and who is not

12 min read · Updated Oct 19, 2026

Duo is the multi-factor layer in front of your partners' logins. This connector reads three things out of it: who is actually protected, who is not, and what is happening at the sign-in prompt. The number an owner cares about is not how many licences they bought; it is how many of their people can still sign in with a password alone, and what in the account's own settings lets them. Everything hangs off the matching Current company, so it feeds your business reviews and the company alert band. The reporting key reads Duo and can never change anything in it.

The Duo card once connected: what it reads, when it last synced, and Manage for the reporting key.
Note
This connector reads people, and here is exactly what it keeps
Most read-only feeds in Current describe machines. This one describes employees, so it takes the minimum it can. It stores each person's Duo username, their display name, their email address, their Duo status, whether they are enrolled, which Duo groups put them in bypass, what kind of authenticators they carry as counts, and when they last signed in. It does not store phone numbers, date of birth, custom attributes, aliases, notes, or anything about a password. Sign-in activity arrives as daily totals and nothing else: Current never reads the individual sign-in events, so it holds no IP address, no city or country, and no record of who signed in to what. Administrators and bypass codes are stored as counts only, with no administrator names and never a code. Partner viewers never see any of it, and that is enforced at the database rather than hidden in the interface.

What Current syncs

Data setWhat Current storesWhere it lands
AccountsEach Duo account the key reaches (your subaccounts and your own parent account if you manage subaccounts, or the single account if you do not) by identifier and name, with Duo's own user, administrator and application counts, the account's edition, how many users are pending deletion, and the billable user count Current works outThe mapping panel on the Duo card, and the People section of a company record
PeoplePer person: Duo username, display name, email, Duo status, whether they are enrolled, whether a Duo group puts them in bypass, when they last signed in, and how many phones, hardware tokens and security keys they carryThe People section, the at-risk list on the company card, and the MFA dashboard metrics
Authenticator devicesPer enrolled phone or tablet: platform, model, operating system and app version, which methods it can receive (push, SMS and so on), when Duo last saw it, and the screen lock, encryption, tamper and quarantine state Duo reportsThe device hygiene numbers on the company card, each shown with its own denominator
EndpointsOn Duo Advantage and Premier: each computer or phone that reached Duo, with its operating system, browser, model, whether Duo trusts it, the health flags Duo reports (disk encryption, firewall, password, operating system status), and when it was last seen. No user name or email is stored with itStored per account. Duo itself purges an endpoint after 30 days without activity
Sign-in totalsPer account per day: how many authentications were granted, denied, reported as fraud, and ended in an error. A finished day is final; today and yesterday are re-read each runThe denied sign-ins trend on the company card and in a business review
Protected applicationsEach application Duo protects: its name, its type, who may use it (all users, no users, or chosen groups), and whether it uses Duo's Universal Prompt. Current stores a fingerprint of the application's integration key and never the key itself or its secretThe People section of the company card
AdministratorsCounts only: how many administrators hold the Owner role, and how many active administrators have not signed in for 90 days or never haveThe People section of the company card, and the AI brief
PoliciesYes or no for each setting that lets a person in without a second factor (see Policy gaps below), and the longest window a remembered device can skip the second factorThe People section, the company alert band, the AI brief and business reviews
Bypass codesCounts only: how many bypass codes exist, and how many are standing codes that never expire or can be reused without limit. Duo's API never returns the codes themselvesThe People section of the company card, and the AI brief
Note
The one number to look at first
At risk means a person can sign in without a second factor, and it covers two situations that look different in Duo and identical to an attacker: somebody in bypass, and somebody whose account is active but who never finished enrolling. Bypass is the one worth pausing on, and it comes two ways. A person's own status can be bypass, and a person with a normal-looking status can sit in a Duo group whose status is Bypass, which Duo lets override the person's own. Both authenticate with a password alone, usually because somebody put them there during a phone upgrade eighteen months ago and nobody took them out. Current reads your Duo groups so the second kind is counted too, and marks which people are in bypass through a group. A Bypass group wins over everything except the Trash: Duo lets its members in even when their own status is disabled or locked out, or they also sit in a Disabled group, so Current counts them as at risk too. A person who cannot sign in at all (disabled, locked out, pending deletion in Duo's Trash, or in a Duo group whose status is Disabled) is not counted as at risk, and is not counted as covered either: the People section lists them on their own line. Current lists the people at risk by name when there are few enough to act on, and counts them when there are not. If a status arrives that Current does not recognise, that person is counted as unknown rather than as fine.

Covered means a person whose account is active, who has a second factor enrolled, and who is not in bypass. Coverage is the covered people out of the covered people plus the people at risk; people who cannot sign in at all, and people Duo gave no clear answer for, are left out of both. The company page shows it as MFA covered. The People section, the dashboards and business reviews all use that one definition, so the coverage figure on a company card and the one in a review always agree. The authenticator mix calls a person SMS only when none of their devices can receive a push and at least one can receive SMS codes; a person with Duo Mobile on their phone is never counted as SMS only, even if the phone can also take a text.

Policy gaps

A Duo account can be fully enrolled and still let people in without a second factor, because its policies say so. Current reads the account's policies and flags each setting that does it:

  • +The global policy bypasses the second factor for everyone it covers.
  • +Some other policy bypasses it, for the applications or groups that policy covers.
  • +A new user policy lets people Duo has never seen sign in without MFA.
  • +A list of network addresses where the second factor is not required.
  • +A list of countries, or a default, that lets people in without the second factor.
  • +How long a remembered device can skip the second factor, shown as the longest window any policy allows.

When a mapped Duo account has any of the first five, the company alert band raises an entry saying people can sign in without MFA because of a policy, and names the setting. It is critical when the global policy bypasses the second factor or lets unknown new users in without MFA, because those reach everyone, and a warning otherwise. It clears itself once a complete read finds none of them. On the company page, Policy gaps reads as a count of Duo accounts, such as 1/3: the accounts with a policy that lets people skip MFA, out of the accounts whose policies Current read. The policy figures stay blank, never a clean result, when Current could not read the policies, and the stat then says policies not read.

Billable users

Duo's licensing rule is that every user in the Admin Panel consumes a seat except users in the Trash, which Duo calls pending deletion. Active, bypass, disabled and locked-out users all count, and so does a user who never finished enrolling or has no phone at all. Administrators never consume a seat. Current applies that rule to the users it read and shows the result as billable users beside the account's edition. It writes the number only after reading every user in that account on that run; a run that stopped part way leaves the previous figure in place rather than a smaller one.

Note
An MSP bill can count differently
Duo's MSP program bills on the users in your console at the end of each month, and its MSP pages do not repeat the Trash exception that its seat-licence article states. So for subaccounts, treat Current's billable users as a figure to reconcile against Duo's invoice rather than as the invoice itself. A user restored from the Trash before month end may also count. The edition comes from Duo in two forms: for a subaccount, Duo's billing edition, and for any account, the edition name in its summary. They come from different Duo reads, and Current never compares one to the other.
Note
What Current does not read
The Duo Admin API can do much more than read. It can create and delete people, issue a working multi-factor bypass code, enrol and remove authenticators, create administrators, rewrite account-wide policy, and on a parent account create and delete entire customer subaccounts or change their edition. None of those are in the reporting code. Every request is checked against a fixed list of read addresses before it is sent, so the rest are unreachable rather than merely unused. Two reads are left out on purpose: the older applications list, which returns every application's secret key in plain text, and the per-application secret reads. The connector also does not read Duo Trust Monitor, which Cisco removed from the Duo Admin Panel in July 2026, or the activity and telephony logs.

Create the Admin API application in Duo

Duo retired its separate Accounts API on June 11, 2026, and converted every existing Accounts API integration to an Admin API one with no action needed from you. Subaccounts are now read through the Admin API, so one Admin API application in your main account is all Current needs, however many partners you manage. There is no application to create inside each subaccount.

  1. 1
    1 · Sign in to the Duo Admin Panel as an owner
    Only an administrator with the Owner role can create an Admin API application. If you manage partners as subaccounts, sign in to your main (parent) account. The Admin API itself is available on the Essentials, Advantage and Premier plans and on Advantage and Premier trials; a free Duo account has no Admin API at all.
  2. 2
    2 · Add the Admin API application
    Go to Applications, then Application Catalog, find Admin API, and add it. Duo creates the application and shows its page.
  3. 3
    3 · Tick the three read permissions, and leave every write permission off
    Tick Grant read information (the account summary and the daily sign-in totals), Grant resource - Read (people, devices, groups, endpoints, applications, policies and bypass codes), and Grant administrators - Read (the administrator counts, which Duo also requires Grant resource - Read for). Current reads no Duo log, so there is no log permission to tick. If you manage partners as subaccounts, the application page has a Subaccount permissions section: tick Grant accounts - Read there (it reads the list of subaccounts and their editions) plus the same three read permissions. Leave every write box unticked, including Grant resource - Write, Grant applications, Grant settings, Grant accounts - Write and Grant set Admin API permissions. That way this key has no way to change anything in Duo, which is a stronger guarantee than any promise Current can make about its own code.
  4. 4
    4 · Copy the three values
    The application page shows an integration key, a secret key, and an API hostname. The hostname looks like api-XXXXXXXX.duosecurity.com. Copy it exactly as Duo shows it, including for a data-residency account where it may look different. Current takes it as given and never rewrites it.
  5. 5
    5 · Paste all three into Current and test
    Integrations → Duo → Connect. Paste the API hostname, the integration key and the secret key, then press Test connection. Current signs a read to confirm the key works, lists how many subaccounts it can see if you manage any, and reports each area it reads as working, not included in the account's Duo edition, or refused for a missing permission. An area your edition does not include does not fail the test. The values are stored server-side only; they are never shown again and never reach your browser. The secret key never travels to Duo at all. Current uses it to sign each request rather than sending it.
Note
An over-permissioned key works, which is the problem
If you tick more boxes than the reads above, everything still works and nothing warns you. You have handed Current a credential that could change your partners' Duo accounts, and Current's own code is then the only thing stopping it. Ticking only the reads is what makes that impossible rather than merely unlikely. The opposite mistake is quieter: a key with too few permissions authenticates cleanly and then reads less, which shows up as a connected card with a section missing. Test connection names the areas a missing permission refused.

Map Duo accounts to your companies

If you manage partners as Duo subaccounts, each subaccount is one end-customer and Current lists all of them, plus your own parent account, which holds your own staff and which you can map to your own company or ignore. If your key covers a single Duo account, or Duo reports no subaccounts, Current writes exactly one entry so the mapping panel works the same way. Either way, Current links each account to a Current company by normalized name (lowercased, with punctuation and Inc/LLC/Ltd-style suffixes stripped) when exactly one company matches. When two or more of your companies share that name and the names differ only by a suffix like Inc or LLC, Current links the one that is an active customer, or, if none of them is, the one linked to your PSA. Anything still tied stays unmapped for you to decide.

  1. 1
    Let the auto-matcher run first
    Every sync links each Duo account to the one Current company whose normalized name matches or, when several share the name and differ only by a suffix like Inc or LLC, to the active customer among them (else the one linked to your PSA). Most map themselves; only the ambiguous ones need a hand.
  2. 2
    Open the mapping panel
    Integrations → Duo → Manage → Customer mapping. It opens on the Unmapped tab, which lists every Duo account the matcher could not place.
  3. 3
    Map an account to its company
    On an unmapped row press Map, type a few letters of the Current company, and pick it. That account's people and devices attach to the company right away, rather than waiting for the next six-hour sync.
  4. 4
    Ignore internal or test accounts
    For an account that should never map to a partner (your own staff, a lab, a demo) press Ignore. It moves to the Ignored tab and stops counting against the card's unmapped badge.
  5. 5
    Fix a wrong match later
    The Mapped tab lists every linked account; Unmap corrects a bad auto-match, and the Ignored tab's Un-ignore brings a dismissed one back. A mapping you set by hand is never overwritten by a later auto-match, and neither is a manual unlink.

Duo syncs every six hours. With a large number of subaccounts, Current reads a share of them on each run and works through the rest over the following runs, and it only removes a person or a device that has gone from Duo after reading that account in full.

Where the data shows up

  • +The People section of a company record: how many people are covered out of the people Duo gave a clear answer for, how many are at risk broken out as in bypass (by status or through a group) and not enrolled, how many people cannot sign in at all (disabled, locked out, pending deletion, or in a Duo group whose status is Disabled), and the authenticator mix across push, SMS, hardware tokens and security keys.
  • +The at-risk list itself, naming the people when there are few enough to do something about today.
  • +Device hygiene: how many enrolled phones have no screen lock or no encryption, each shown as n of m reported, so a device Duo did not report on never counts as a pass.
  • +Denied sign-ins, this week against the week before, which is the proof that the control is catching things rather than sitting there. A week Current could read only part of says how many of its 7 days were read, so a short week is never compared as a full one.
  • +Protected applications: the applications Duo protects for that company's account.
  • +Administrators: how many hold the Owner role, and how many have not signed in for 90 days.
  • +Policy gaps in words, and the standing bypass codes that never expire or can be reused without limit.
  • +The account's edition and its billable users.
  • +Stale accounts: people who are still enabled and have not signed in for ninety days, which is both a licence being paid for and a way in nobody is watching.
  • +The Security posture chapter of a Strategic Business Review, beside your other security feeds, including the policy gaps as counts.
  • +The company AI brief, which names policy gaps, standing bypass codes and administrators who have not signed in for 90 days when there are any.
  • +The company alert band, which raises an entry when somebody at that company can sign in without a second factor, and a second one when a Duo policy lets people in without it.
Note
Numbers that stay blank on purpose
If Duo does not answer for part of a run, the numbers it would have produced stay blank instead of showing a zero. A blank means Current could not ask; a zero would mean it asked and the answer was none, and those are different things to put in front of a partner. Some areas are blank for a reason that is not a fault: endpoints need Duo Advantage or Premier, and Duo does not offer the administrator list to accounts provisioned through Cisco Security Cloud Control after May 11, 2026. Device hygiene works the same way at the level of a single device: Current counts the ones Duo reported a value for and shows the denominator beside them, rather than turning silence into a finding.

When something looks wrong

What you seeWhat it means
"Duo rejected these credentials"All three values are signed into every request, so any one of them being wrong reads the same way. Check the integration key, the secret key and the API hostname against the Admin API application page. The most common cause is the hostname: it is the api- address on that page, not the address you sign in at.
"Duo accepted these credentials but refused the user list"A permissions gap, not a wrong key, and regenerating the key will not help. Go back to the Admin API application and confirm Grant resource - Read is ticked. If it is, check the integration key came from an Admin API application rather than an Auth API one. The two look alike, Duo answers the same way for both, and telling them apart by the key alone is not possible.
Test connection says an area was refused for a permissionThe key is missing the permission that area needs. Tick it on the Admin API application (and in Subaccount permissions if you manage subaccounts) and test again. The rest keeps syncing meanwhile.
Test connection says an area is not in the account's editionDuo does not offer it on that edition, which is expected. Endpoints, for example, need Duo Advantage or Premier. The area stays blank on the card and nothing is wrong with the key.
"Couldn't reach Duo"A network or firewall problem between Current and your Duo API hostname, not a credential problem. Current retries on its own at the next scheduled sync.
"Duo is rate-limiting the request"Duo publishes no read limit for this API, so Current paces itself well under any plausible one and backs off the moment Duo says to. Nothing is wrong with the credentials; wait and press Test again.
Connected, but no partners listedIf you manage subaccounts, the key is missing Grant accounts - Read under Subaccount permissions, so Current sees the parent account only. If you do not manage subaccounts, one entry is correct. That entry is the whole account.
A company shows no Duo dataIts Duo account is not mapped yet. Check the Unmapped tab on the card.
Somebody shows as at risk who looks fine in DuoLook at their status and their groups. Bypass is the usual answer, either on the person or on a Duo group they belong to, and it is easy to miss in Duo because the account otherwise looks healthy. Anyone whose account is active but who never finished enrolling counts too. People who are disabled, locked out, pending deletion, or in a Duo group whose status is Disabled are not at risk, because they cannot sign in at all, unless a Bypass group lets them in (it never does for somebody pending deletion).
The administrator figures are missingThe key lacks Grant administrators - Read, or the account was provisioned through Cisco Security Cloud Control after May 11, 2026, where Duo does not offer the administrator list.
Billable users is blank or did not changeCurrent writes it only after reading every user in that account on one run. On a large estate the account may not have been read in full yet; the next runs fill it.
The denied sign-ins trend has a gapA day Current has not read stays blank rather than showing zero. On the first sync Current reads back the last 14 days, and after that it re-reads today and yesterday on every run.
Note
Who can do this, and disconnecting
Connecting, testing, mapping, and disconnecting are Tenant Admin actions; sales leadership can run a manual sync and read status. Disconnect stops the sync and skips your workspace on the six-hour sweep. The people, devices and sign-in totals already pulled stay put, and reconnecting resumes from where it left off. Partner (read-only) viewers never see any of this data; it is blocked at the database, not just hidden.
Was this helpful?