Skip to main content

Email one-time passcode (OTP) - Enable guest users without federation or registration

Nowadays, if you use Azure to run your business, there is an 80% chance of using Azure AD as the Identity and Access Management system. The strong integration with on-premises AD tenants, Google, Facebook and Azure AD B2B and Azure AD B2C makes our life much easier. 

What if you provide access to an external user that cannot be authenticated using AD, MSA (Microsoft Account) or social identity providers? Or you don't know what kind of IAM the user has.

OTP (Email one-time passcode) is your friend in this situation. The feature enables us to share resources or provide access to external users without requesting them to create an account. The only thing that the user needs is an email address and nothing more.

The one-time passcode is sent to their email address at the moment in time when they want to access the resource that you shared with them. The passcode is valid for 30 minutes and provides a valid session for the next 24 hours. If the passcode or session expires, there is no problem because the external user can request a new passcode again.


It's a great way to share resources with external users, especially when there is no federation or integration with their IAM system. The external user is added as guest to your Azure AD, and they are subject to Azure AD access policies (e.g. MFA) and can be managed directly by you. 

When OTP is active, there is a small trick. When you share a resource with an external user, you don't know if OTP will be used or not. The OTP is used if the user:

  • Don't have an MSA (Microsoft) account
  • Don't have an Azure AD account
  • No federation configured with their tenant
Because of this, when a user already used OTP and later gets an MSA, Azure AD or Ferederated account, they will still use OTP. From Azure AD, you will need to reset their redemption status to allow them to use another method. 

The excellent integration with OneDrive and SharePoint enables us to use OTP to share content with Guest users. Why? Because OneDrive and SharePoint are using Azure AD, the OTP is fully integrated (as long as your IT allows OTP (big smile).


Why you should use OPT (Email one-time passcode)?

A simple way to share content and provide access to your organization to external users that are not part of your tenant or a federated tenant. The access control it is fully managed by your organization and audited. Who, what and when can access is fully managed by IAM, as you would managed a guest user.  

Because of this, OTP can be used with success to share notes and materials after a meeting with external attendees. 



Comments

Popular posts from this blog

How to audit an Azure Cosmos DB

In this post, we will talk about how we can audit an Azure Cosmos DB database. Before jumping into the problem let us define the business requirement: As an Administrator I want to be able to audit all changes that were done to specific collection inside my Azure Cosmos DB. The requirement is simple, but can be a little tricky to implement fully. First of all when you are using Azure Cosmos DB or any other storage solution there are 99% odds that you’ll have more than one system that writes data to it. This means that you have or not have control on the systems that are doing any create/update/delete operations. Solution 1: Diagnostic Logs Cosmos DB allows us activate diagnostics logs and stream the output a storage account for achieving to other systems like Event Hub or Log Analytics. This would allow us to have information related to who, when, what, response code and how the access operation to our Cosmos DB was done. Beside this there is a field that specifies what was th...

Can User Technical Profile Influence AI Architecture Decisions?

In the last few days, I ran a small experiment on Devin/Windsurf/Cascade, BMAD, and LLM-based architecture decisions. The initial concern was simple: if an AI coding assistant knows something about the user, for example, that the user is a Java developer or a .NET developer, can this information influence the architecture and technology stack that the AI will propose? This question is important because many companies are starting to use AI tools not only for coding but also for product discovery, architecture, documentation, and technical decision-making. If the AI is influenced by the developer's personal profile, the result may not be fully neutral. It may look like a business or architecture decision, but in reality, it may be partially shaped by the context of the person using the tool. The test was done using BMAD with Devin/Windsurf/Cascade. The scenario was a unified field service operations platform. The task was to let BMAD refine the product, define the architecture and s...

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine: threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration: TeamCity .NET 4.51 EF 6.0.2 VS2013 It see...