В настоящее время приложение аутентифицируется с использованием PingFederate
SSO с Microsoft.Owin.Security.WsFederation
аутентификацией.Это работает нормально.Теперь в новом требовании: при нажатии кнопки на одной из страниц того же приложения он должен интегрироваться в Office 365 Excel онлайн.И для этого пользователю необходимо пройти аутентификацию с использованием учетных данных Office365.В моей демонстрационной демонстрации я могу проходить аутентификацию с использованием OpenIdConnect и Azure AD, когда нет WsFederate с аутентификацией SSO федеративного пинга.Но когда я объединяю существующий код с новым кодом OpenIDConnect, все терпит неудачу.В рамках подключения Office365 Excel к Интернету мне также необходимо использовать Microsoft.Graph.Auth
.
Мой текущий рабочий код в «классе запуска»:
public void ConfigureAuth(IAppBuilder app)
{
app.SetLoggerFactory(new DiagnosticsLoggerFactory());
app.Use((context, next) =>
{
// Depending on the handler the request gets mapped to, a session might not be enabled. Force it on.
HttpContextBase httpContext = context.Get<HttpContextBase>(typeof(HttpContextBase).FullName);
httpContext.SetSessionStateBehavior(SessionStateBehavior.Required);
return next();
});
// SetSessionStateBehavior must be called before AcquireState
app.UseStageMarker(PipelineStage.MapHandler);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
CookieHttpOnly = true,
CookieSecure = CookieSecureOption.Never,
AuthenticationMode = AuthenticationMode.Active,
AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType,
Provider = new CookieAuthenticationProvider
{
OnException = context =>
{
System.Diagnostics.EventLog.WriteEntry("WsFed-Exception", context.Exception.Message + "\n" + context.Exception.StackTrace );
}
},
ExpireTimeSpan = TimeSpan.FromHours(4.00),
SlidingExpiration = true,
CookieManager = new SystemWebCookieManager()
});
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
MetadataAddress = ConfigurationManager.AppSettings[Constants.IDA_FEDERATION_METATADATA_LOCATION],
Wtrealm = ConfigurationManager.AppSettings[Constants.IDA_FEDERATION_REALM],
UseTokenLifetime = false,
SignInAsAuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType
});
}
Как добавить к этому OpenIdConnect?Поскольку приложение аутентифицируется с помощью ping с использованием WsFederate, можно ли будет интегрировать OpenIdConnect
в тот же класс запуска приложения?Пожалуйста, ведите меня.