В настоящее время мне трудно понять это ...
У меня есть приложение Azure B2C Angular SPA, которое использует MSAL во внешнем интерфейсе.В бэкэнде это ASP.NET MVC с полной .NET Framework.
У меня было приложение, прекрасно работающее с ADAL во внешнем интерфейсе (приложение SPA) и app.UseWindowsAzureActiveDirectoryBearerAuthentication
во внутреннем интерфейсе (ASP.NET MVC).
Сейчас я работаю с Azure B2C и использую MSAL .
Я могу войти с помощью MSAL винтерфейс, но промежуточное ПО, настроенное в серверной части ASP.NET MVC, не будет запускаться.
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
// Generate the metadata address using the tenant and policy information
MetadataAddress = String.Format(AadInstance, Tenant, DefaultPolicy),
ResponseType = OpenIdConnectResponseType.CodeIdToken,
// These are standard OpenID Connect parameters, with values pulled from web.config
ClientId = ClientId,
RedirectUri = RedirectUri,
PostLogoutRedirectUri = RedirectUri,
// Specify the callbacks for each type of notifications
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = OnRedirectToIdentityProvider,
AuthorizationCodeReceived = OnAuthorizationCodeReceived,
AuthenticationFailed = OnAuthenticationFailed,
},
// Specify the claim type that specifies the Name property.
TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "name"
},
// Specify the scope by appending all of the scopes requested into one string (separated by a blank space)
Scope = $"openid profile offline_access user_impersonation"
}
);
В интерфейсе я звоню:
msalService.loginPopup();
$rootScope.$on("msal:loginSuccess", function () {
console.log("loginSuccess");
var token = msalService.userInfo.idToken;
});
Я получаю id token
и вход происходит успешно ...
Я установил точки останова во всех обработчиках уведомлений в промежуточном программном обеспечении OWIN:
- OnRedirectToIdentityProvider
- OnAuthorizationCodeReceived
- OnAuthenticationFailed
, но отладчик никогда не останавливается на этом, то есть код промежуточного программного обеспечения не вызывается.
Почему не запускаются обработчики уведомлений?Я что-то упустил или использую неправильное промежуточное программное обеспечение?
В конечном итоге я хочу получить возможность извлекать id_token из промежуточного программного обеспечения и выполнять некоторую внутреннюю дополнительную логику \ обработку.Добавление пользовательских утверждений и т. Д. Мне удалось сделать это с помощью ADAL
и промежуточного программного обеспечения UseWindowsAzureActiveDirectoryBearerAuthentication
, как я упоминал ранее.Сразу после входа в систему у меня была возможность подключиться к уведомлениям промежуточного программного обеспечения.