我正在使用 Azure Graph API,当我仅配置一个具有一个重定向 URL 的 Web 平台时,它运行良好。
当我添加多个 Web 平台并具有多个重定向 URL 时,它总是重定向回最后/最新的重定向 URL。
public void Configuration(IAppBuilder app) {
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
var _Configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var RedirectUri = _Configuration.GetSection("AzureAd:RedirectUri").Value;
app.UseCookieAuthentication(new CookieAuthenticationOptions());
OwinTokenAcquirerFactory factory = TokenAcquirerFactory.GetDefaultInstance<OwinTokenAcquirerFactory>();
app.AddMicrosoftIdentityWebApp(factory);
factory.Services
.Configure<ConfidentialClientApplicationOptions>(options => { options.RedirectUri = RedirectUri; })
.AddMicrosoftGraph()
.AddInMemoryTokenCaches();
factory.Build();
}
// Sign in
if (!Request.IsAuthenticated) {
var context = HttpContext.GetOwinContext();
context.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
context.Authentication.Challenge(
new AuthenticationProperties { RedirectUri = RedirectUri },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
由于我配置了多个 url,它应该适用于托管的不同应用程序。
这对我有用:
app.AddMicrosoftIdentityWebApp(factory, updateOptions: options =>
{
options.RedirectUri = MyRedirectUri;
});
请参考
https://github.com/AzureAD/microsoft-identity-web/issues/2313