In my previous article, I wrote about how to
authenticate by creating new user accounts. Now what if, anyone doesn’t want to
add another pair of user id password to his memory and want to use the existing
ones which he/she is using very frequently in his/her day-to-day life. Well,
here comes the external providers in the picture.
In this article, I won’t be covering
the basics on how to create a website from scratch as it is already covered in an earlier article. So, let’s quickly jump on to the login screen and on right
hand side, you will see the text as ‘Use another service to log in.’ . It also provides a
hyperlink, which will guide us on how to setup the authentication using
external providers.
What are external providers?
There is a huge list of
authentication providers. The most common one’s are Twitter, Facebook, Google and
Microsoft. This list is not restricted till here as it can be any other custom
provider. Throughout this article, I’ll be driving you to setup the
authentication with Hotmail account.
Steps to setup authentication with
Hotmail account
Navigate to https://apps.dev.microsoft.com and
do login using existing Hotmail Id. On successful login, you will land on a page. Next is to click on ‘Add an app’
button, which is shown on top right corner. Provide the application name and click on ‘Create’
button. Here you can also take a path of guidance by clicking on checkbox ‘Let
us help you get started’. Once you click on Create button, an
Application Id will be generated for you. Next, we have to work on adding
application secrets.
Adding Application Secrets
Now
click on ‘Generate New Password’ button. On click of this button,
a password will be generated. Copy
this newly generated password and temporarily save it somewhere as you will
need this password during the application configuration along with Application Id.
Adding Platform
Click
on App platform on Registration screen. Here, for demo purpose I'm choosing Web.
You can choose others too.
Next is to construct an URL, which is
a combination of our application URL and signing host.
Click on the Save button and you are done
with the configuration. Next, we have to associate this configuration with our
application. So, let’s go ahead and quickly update our application using User
Secrets. Place the following code in secrets.json:
{
"Authentication:Microsoft:ApplicationId": "654e030a-a10b-40ee-82db-1bf0185aebc0",
"Authentication:Microsoft:Password": "XXXXXXXXXXX"
}
Same lines of code you can write in
Startup.cs also but we are maintaining the secrets in different file so that it
can be changed easily while moving to production. Next is to configure the identity in
Startup.cs:
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser, IdentityRole>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); services.AddAuthentication().AddMicrosoftAccount(options => { options.ClientId = Configuration["Authentication:Microsoft:ApplicationId"]; options.ClientSecret = Configuration["Authentication:Microsoft:Password"]; }); services.AddMvc() .AddRazorPagesOptions(options => { options.Conventions.AuthorizeFolder("/Account/Manage"); options.Conventions.AuthorizePage("/Account/Logout"); }); services.AddSingleton<IEmailSender, EmailSender>(); }
We are almost there. Save your
application and click on Login button. You will notice
that the Microsoft button is appearing on the right side. Click on that, provide your
Hotmail credentials and on successful login you will be prompted for YES. On click of yes, a screen will be
shown. So, quickly click on register and see the
magic. You will notice that you are now logged in with your Hotmail id.
Whatever we did can also be done
through a guided process which we came across during our configuration process
in the form of a hyperlink.
Hope you enjoyed learning.
Comments
Post a Comment