Photo by Diana Polekhina on Unsplash
While reading this great post from Damien Bod, i had the idea to do the same for inviting users in Azure B2C.
Configure Permissions in Azure
Following the doc, we require the following:
- permission User.Invite.All (permission type : Application) and grant Admin Consent
Get from your application:
- your tenant ID
- your Application ID
- a Secret Value
Code
Once you have configured the permission, you can use the following code (with you IDs / Secret):
string[] scopes = new string[1] { "https://graph.microsoft.com/.default"};
var tenantId = "<YOUR_TENANT_ID>";
// Values from app registration
var clientId = "<YOUR_APPLICATION_ID>";
var clientSecret = "<YOUR_SECRET>";
var options = new TokenCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud,
};
// https://docs.microsoft.com/dotnet/api/azure.identity.clientsecretcredential
var clientSecretCredential = new ClientSecretCredential(
tenantId, clientId, clientSecret, options);
var _graphServiceClient = new GraphServiceClient(clientSecretCredential, scopes);
var invitation = new Invitation()
{
InvitedUserEmailAddress= "<EMAIL>",
InviteRedirectUrl ="<YOUR_APPLICATION_URL>",
SendInvitationMessage = false,
};
_graphServiceClient.Invitations.Request().AddAsync(invitation);
using the following NuGet packages :
Hope this helps !
Top comments (1)
After opening the invitation and inputting the verification code received by email, it redirects to my application login page, but does not ask the user to set its password.