Итак, я перенес более старую службу приложений и мобильное приложение Xamarin со старых версий MSAL на последнюю версию, а также перенаправил мое приложение с login.microsoft.com на новую (er). URI эмитента b2clogin.com. Я следовал этому руководству , чтобы перейти на новый URI издателя, оставаясь при этом обратно совместимым с приложениями, которые в данный момент находятся в поле.
Однако я запускаю этот сервис как AzureСлужба приложений и в разделе «Аутентификация / авторизация» моей службы у меня в Active Directory настроен правильный «клиентский идентификатор» приложения B2C, и есть еще одно текстовое поле для «URL-адреса эмитента». Кажется, я не могу сойти с рук, не имея URI в этом текстовом поле, будь то:
https://[id].b2clogin.com/[app id]/B2C_1_SignInUp/v2.0/.well-known/openid-configuration
или
https://login.microsoftonline.com/[app id]/v2.0/.well-known/openid-configuration?p=B2C_1_SignIn
Теперь это действительно очень хорошо аутентифицируется, пока яесть один эмитент или другой эмитент, но в моем коде у меня есть:
TokenValidationParameters tvps = new TokenValidationParameters
{
// Accept only those tokens where the audience of the token is equal to the client ID of this app
ValidAudience = ClientId,
AuthenticationType = Startup.DefaultPolicy,
ValidIssuers = new List<string> {
"https://login.microsoftonline.com/[app id]/oauth2/v2.0/",
"https://[id].b2clogin.com/[app id]/oauth2/v2.0/"
}
};
Что, я считаю, должно означать, что оба эмитента должны быть действительными (обратная совместимость. Я добавил немного отладочного кода дляубедитесь, что этот код выполняется при запуске. почти похоже, что служба Azure переопределяет код нескольких эмитентов, но я не уверен?
Работает ли эта документация в приложении Azureсервис или есть что-то еще, что вам нужно сделать, чтобы настроить его? Спасибо!