我正在尝试将Microsoft配置为Identityserver4的外部登录提供程序。
我已成功使用AddMicrosoftAccount
按照identity server文档进行配置。
services.AddAuthentication().AddMicrosoftAccount(microsoftOptions =>
{
microsoftOptions.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
microsoftOptions.ClientId = configuration["MicrosoftLoginProvider:ClientId"];
microsoftOptions.ClientSecret = configuration["MicrosoftLoginProvider:ClientSecret"];
});
然而,我尝试实现单点登录并没有成功。文档和微软的文档一致,链接为:https://learn.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins?view=aspnetcore-5.0。
但是,如果你按照在Microsoft Developer Portal (portal.azure.com)中创建应用程序的说明操作,该门户网站上的示例代码将提供另一种不同的方法。门户网站为我生成的示例应用程序(WebApp-OpenIDConnect-DotNet)使用了AddMicrosoftIdentityWebApp
:
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));
由于这个应用程序可以直接使用单点登出,我想知道是否需要继续使用这种方法。
然而令我惊讶的是,我找不到任何有关如何将此方法集成到IdentityServer4中的文档/博客。尽管我几乎自己将其搞定了,但还存在一些奇怪的问题。
有人能否澄清一下,使用AddMicrosoftIdentityWebApp
是将Microsoft作为外部身份提供者添加到IdentityServer4中的正确方法吗?有人成功地将AddMicrosoftIdentityWebApp
与IdentityServer4一起使用了吗?
谢谢您的帮助!