Перенос службы B2C OWIN с «login.microsoft.com» на «b2clogin.com» - PullRequest
0 голосов
/ 09 октября 2019

Итак, я перенес более старую службу приложений и мобильное приложение 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сервис или есть что-то еще, что вам нужно сделать, чтобы настроить его? Спасибо!

1 Ответ

0 голосов
/ 09 октября 2019

Аутентификация / авторизация Azure, также называемая Easy Auth, запускается перед кодом вашего приложения. Так что примет только один эмитент.

Я бы предложил выполнить аутентификацию только в вашем коде и отключить Easy Auth, поскольку он не может соответствовать вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...