Home
Home/resources/sign in with microsoft
Ed25519 signaturesSHA-256 hashes8 SDKs
Status
Sign inStart free
Home
ProductMicrosoftEntra IDSingle Sign-On

Sign In With Microsoft Is Live. Here Is How We Built It Safely.

Continue with Microsoft is on the Invoance sign-in and sign-up pages. No new password, a work email verified by your own tenant, and the same two-factor step as every other sign-in. The interesting part is the three decisions underneath: match on tenant and object id, never trust the email claim on its own, and never let one identity provider become a way around the other controls.

Adeola OkunolaFounder, Invoance7 October 2026·6 min read
On this page
  1. What shipped
  2. Signing up in one click
  3. Signing in, and connecting an existing account
  4. Accounts match on tenant and object id, never on email
  5. Two-factor still guards every door
  6. What happens under the hood
  7. For IT administrators
  8. What is not there yet
app.invoance.com/get/access

Set up your organization

Tell us about the organization this workspace represents.

Signing up with Microsoft as you@company.com

Step 1 of 2

Organization namee.g. ACME Corporation
Issuer namee.g. ACME Corporation

The issuer name identifies your organization as the party that created and signed records on Invoance.

Continue

Already have an account? Sign in

The sign-up step after Continue with Microsoft. The work email comes from your tenant, so there is nothing to verify and no password to choose.

What shipped

From today the Invoance sign-in page and the sign-up page both carry a Continue with Microsoft button. If your organisation runs on Microsoft 365, that button signs you in with the account you already use, or creates your Invoance workspace from it, without a new password to choose, store or forget.

It works with work and school accounts from any Microsoft Entra ID tenant. Personal Microsoft accounts such as outlook.com or hotmail.com are not accepted, which is deliberate: Invoance workspaces belong to organisations, and the value of the integration comes from the fact that your directory, not a form, says who you are.

Nothing changes for teams that sign in with a password. The password path, two-factor authentication and backup codes all stay exactly as they were. Microsoft is an additional door, with the same locks on it.

Signing up in one click

Click Sign up with Microsoft, pick your work account on Microsoft's own prompt, and you land back on Invoance with your name and email already filled in. The form reads "Signing up with Microsoft as you@company.com". You name your organisation, confirm the issuer name that will appear on your signed records, enter your primary domain, and you are in the dashboard.

Two things are different from a password sign-up. There is no email verification link to wait for, because the address came from your tenant rather than from a text box. And there is no password on the account at all. If you later want one, for example as a recovery path, Settings offers a Set password link that goes through the normal reset flow.

The pending sign-up is held for fifteen minutes. If you close the tab, start again from the button.

A Microsoft sign-up never asks Invoance to trust the email you typed. It asks your directory, and your directory answers.

Signing in, and connecting an existing account

For a returning user, Continue with Microsoft looks up the account by the identity your directory presents and issues a session. If the account has two-factor turned on, the authenticator prompt appears next, exactly as it does after a password.

If you already have an Invoance account with a password and the Microsoft account carries the same email, Invoance does not silently merge the two. It asks you to sign in with your password once, then connect Microsoft from Settings. After that, either door opens the same account. The reasoning is in the next section: an email match is a hint, not proof, and the only person who should be allowed to join a Microsoft identity to an existing account is someone who can already open that account.

Connected accounts live in Settings under Security. You can see when Microsoft is connected, and disconnect it, as long as the account still has a password to fall back on. An account with Microsoft as its only credential cannot remove it, because that would lock you out.

app.invoance.com/dashboard/settings

Password

No password set. You sign in with Microsoft. Set one to also sign in with email and password.

Set password

Microsoft

Connected. You can sign in with your Microsoft work account.

Set a password before disconnecting, so you keep a way to sign in.

Disconnect
Settings for an account created with Microsoft. Disconnect stays disabled until a password exists, so the account always keeps a way in.

Accounts match on tenant and object id, never on email

This is the decision that matters most, and it is the one most integrations get wrong.

When Microsoft signs you in, the ID token carries a tenant id, which identifies your organisation's directory, and an object id, which identifies you inside it. Together they are stable: they do not change when your name changes, when your email alias changes, or when an admin edits your profile. Invoance stores that pair and uses it, and only it, to find your account on every later sign-in.

The token also carries an email. In Entra ID that field is editable by a tenant admin, and it is not required to be an address the tenant owns. An admin of any tenant can create a user whose email says alice@yourcompany.com. If an application matched accounts by email, that user could sign into Alice's account at any service that accepted Microsoft logins. This is a known class of attack, and the defence is simple: never pick an account by the email claim.

Invoance goes one step further. The email claim is accepted as a verified address only when the token also says the tenant has proven it owns that domain. Without that proof, the sign-in falls back to the account's principal name, which is bound to a domain the tenant has verified. The email is then used for exactly one purpose: to notice that a password account with the same address already exists, so we can ask for the password instead of merging.

Inside the Microsoft ID token

OIDC id_token · payload, abridged
"iss": "https://login.microsoftonline.com/{tid}/v2.0""aud": "{invoance application id}""nonce": "{value from this sign-in}"
Checked first

With the signature against Microsoft's published keys: the issuer must name the token's own tenant, the audience must be Invoance, the nonce must match. Any failure ends the sign-in before an account is looked up.

"tid": "{tenant id}""oid": "{object id}"
The identity

Your directory, and you inside it. The only key used to find your Invoance account. Stable when your name or email alias changes.

"email": "you@company.com""xms_edov": true"preferred_username": "you@company.com"
Display and clash check

Email counts as verified only when xms_edov is true; otherwise the sign-in name is used. Never used to choose an account, only to spot an existing password account.

Microsoft proves who you are. If two-factor is on, Invoance still asks for the code.invoance.com
What a Microsoft ID token carries, and what Invoance does with each part. Values in braces are placeholders.
Tenant id plus object id is who you are. Email is what you are called. Invoance authenticates the first and merely displays the second.

Two-factor still guards every door

It is tempting to treat a Microsoft sign-in as already two-factor. Many tenants enforce MFA, after all. We chose not to assume it.

A standard Microsoft ID token does not say whether multi-factor authentication happened during that sign-in. Unless the application specifically asks for the authentication methods claim and the tenant agrees to send it, the token is silent on the question. Treating silence as "yes" would mean that an account protected by an authenticator app could be opened by anyone who obtained a Microsoft session for that user, with no second step on our side.

So if you have two-factor on your Invoance account, you will see the authenticator prompt after a Microsoft sign-in, exactly as after a password. Two-factor that guards one door out of several is not two-factor. The code path that issues sessions is shared between the password, authenticator, backup code and Microsoft flows, so there is one place where that rule lives, rather than four places that could drift apart.

A later refinement may honour the authentication methods claim when a tenant sends it, so that an MFA-enforced tenant is not asked twice. That will be an explicit setting an administrator turns on, not a default.

What happens under the hood

The flow is standard OpenID Connect with the authorization code grant and PKCE, straight against Microsoft Entra ID. There is no third-party identity vendor in the path.

Clicking the button sends you to Microsoft with a one-time state value and a nonce that Invoance has stored for ten minutes. Microsoft authenticates you on its own pages, so your Microsoft password never touches Invoance, and returns a short-lived code. The API exchanges the code for an ID token and verifies it: the signature against Microsoft's published signing keys, the issuer against the tenant id inside the token, the audience against our application id, and the nonce against the one we stored. Only after all four pass does the tenant and object id pair get looked up.

The only permissions requested are the ones needed to sign you in: your identity and your email address. Invoance asks for nothing from Microsoft Graph and reads nothing from your mailbox, calendar or files. The consent screen your users see is correspondingly short.

How Continue with Microsoft works

OpenID Connect · code flow + PKCE
Your browser

Carries the hand-off

Takes you to Microsoft and brings back a one-time code. The ID token never passes through it.

Typed only at Microsoft
  • your Microsoft password
  • your MFA approval
Invoance

Holds for 10 minutes

A state value, a nonce and a PKCE verifier, created when you click and used once.

Checked every time
  • state matches
  • signature, Microsoft keys
  • issuer is the token tenant
  • audience is Invoance
  • nonce matches

Two-factor, then session

Microsoft Entra ID

Signs you in

Your organisation’s own rules apply here: password, MFA and conditional access.

Shared with Invoance
  • who you are: tid, oid
  • your name and email
  • nothing from mail or files
  1. 01Continue with MicrosoftBrowser to Invoance
  2. 02Redirect to MicrosoftInvoance to browser
  3. 03Sign in at MicrosoftBrowser to Microsoft
  4. 04One-time codeMicrosoft to browser
  5. 05Code to InvoanceBrowser to Invoance
  6. 06Code + PKCE verifierInvoance to Microsoft
  7. 07Signed ID tokenMicrosoft to Invoance
Your Microsoft password never reaches Invoance.login.microsoftonline.com
The full sign-in, from the button to the session. Any failed check ends it before an account is looked up.

For IT administrators

Invoance is registered as a multi-tenant application, so users from any organisation can sign in with no setup on your side. Your tenant's conditional access and MFA policies apply at Microsoft's end as they would for any other application, and Invoance's own two-factor applies on top.

If you would rather have every member of your Invoance workspace come from your tenant, we can pin the workspace to your tenant id. Once pinned, a user from your directory who signs in with Microsoft and has no Invoance account yet joins the workspace as a member instead of being offered a new sign-up. Ask us and we will set it; there is no self-service control for it yet.

Revoking access works the way you would expect. Disabling the user in Entra ID stops new Microsoft sign-ins immediately, because Microsoft will no longer issue a token for them. Existing Invoance sessions can be ended from the sessions list in Settings or by a workspace owner.

What is not there yet

Teammate invitations still create a password account first; the invitee can connect Microsoft from Settings afterwards. Domain-based routing, where typing an email address sends you to the right identity provider automatically, is not built. Sign-in through other providers over SAML is not built either, and will not be until a customer needs it.

Those are the gaps as of today. Everything above is live at app.invoance.com.

  • Open the dashboard Continue with Microsoft is on the sign-in and sign-up pages.
  • Security at Invoance Key handling, signing, sessions and how the platform is protected.
On this page
  1. What shipped
  2. Signing up in one click
  3. Signing in, and connecting an existing account
  4. Accounts match on tenant and object id, never on email
  5. Two-factor still guards every door
  6. What happens under the hood
  7. For IT administrators
  8. What is not there yet
Adeola Okunola

Adeola Okunola

Founder, Invoance
About the author

I'm Adeola, founder of Invoance.

I build proof infrastructure for audit logs, AI attestations, and business records that need to stand up to security, compliance, and legal scrutiny.

Most systems document what happened. Invoance helps prove it.

All articles by Adeola
Related product

Event Ledger

An append-only, signed record of the business events you may need to prove later.

Open Event Ledger
Keep readingAll articles
Product4 min read

Official Invoance SDKs, Now in Eight Languages

The Invoance client libraries now cover eight languages. Every SDK anchors events, documents, and AI outputs to an append-only ledger, signs them with your tenant's Ed25519 key, and verifies signatures entirely client-side — so the proof holds up whether or not anyone trusts Invoance. Here is what shipped and how to start.

Adeola Okunola·6 July 2026Read
Compliance12 min read

SOC 2 Compliance: The Complete Guide for Modern Organizations

SOC 2 has become the baseline trust standard for SaaS companies and service providers. This guide covers the trust service criteria, audit types, preparation strategies, and how verifiable evidence closes the gap between controls and proof.

Adeola Okunola·7 March 2026Read
Trust Infrastructure11 min read

Trust Infrastructure: What Compliance Automation Cannot Prove

Compliance automation tells auditors what controls you have. Trust infrastructure proves what actually happened. As regulatory scrutiny intensifies and AI systems scale, the gap between documenting controls and proving outcomes is becoming the most expensive blind spot in enterprise security.

Adeola Okunola·8 March 2026Read

Try it on the free plan.

Create a signed record and verify it yourself.

Start freeRead the docs

Proof infrastructure. Records are hashed, signed with your organization's Ed25519 key, and stored append-only, so anyone can check them later.

Products

  • Audit Logs
  • Event Ledger
  • AI Attestation
  • Document Anchoring
  • Traces

Developers

  • Documentation
  • API reference
  • SDKs
  • How it works
  • How traces seal
  • System status

Verify

  • Audit Log
  • Event
  • AI Attestation
  • Document
  • Trace

Company

  • Company overview
  • What is Invoance
  • Pricing
  • Security
  • Compliance teams
  • Finance teams
  • Partners
  • Brand assets
  • Resources
  • Help center
  • Contact
© 2025 – 2026 Invoance, Inc. All rights reserved.© 2026 Invoance, Inc. All rights reserved.
PrivacyLegal noticeLegal FAQ