Я пытаюсь добавить Azure аутентификацию AD в приложение. Net MVC, которое в данный момент использует отдельные учетные записи пользователей. Я настроил регистрацию приложения в Azure, установил и настроил OpenID Connect.
В Startup.cs я добавил:
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
// app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// Sets the ClientId, authority, RedirectUri as obtained from web.config
ClientId = clientId,
Authority = authority,
RedirectUri = redirectUri,
// PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it is using the home page
PostLogoutRedirectUri = redirectUri,
Scope = OpenIdConnectScope.OpenIdProfile,
// ResponseType is set to request the id_token - which contains basic information about the signed-in user
ResponseType = OpenIdConnectResponseType.IdToken,
// ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
// To only allow users from a single organizations, set ValidateIssuer to true and 'tenant' setting in web.config to the tenant name
// To allow users from only a list of specific organizations, set ValidateIssuer to true and use ValidIssuers parameter
TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true // Simplification (see note below)
},
// OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to OnAuthenticationFailed method
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = OnAuthenticationFailed
}
}
);
И в web.config
Я установил тип аутентификации Нет
<authentication mode="None"/>
У меня тогда добавлен метод действия, чтобы вызвать вызов:
if (!Request.IsAuthenticated)
{
HttpContext.GetOwinContext().Authentication.Challenge(
new AuthenticationProperties { RedirectUri = "http://localhost:54465" },
OpenIdConnectAuthenticationDefaults.AuthenticationType);
}
Я все еще могу войти в приложение с отдельными учетными записями пользователей (я хотел бы сохранить это как опцию), но не могу войти с помощью Azure н.э. Пользователь перенаправляется на экран входа в систему Azure AD, входит в систему, и я вижу ответ, возвращающийся с id_token, но никогда не аутентифицирующийся в приложении.
Я понял, что это должно произойти автоматически в промежуточном программном обеспечении OpenID Connect, но нужно ли что-то еще настраивать?