Использование служб приложений Azure - Azure AD B2 - MobileServiceClient - сбой проверки подлинности - PullRequest
0 голосов
/ 31 мая 2018

У меня есть службы приложений, настроенные для использования Active Directory B2C для проверки подлинности и авторизации.Если я войду напрямую через URL https://{myfunctionapp}.azurewebsites.com/.auth/login/aad,, я попаду на страницу входа / регистрации, и все, похоже, будет работать хорошо.

У меня определена следующая функция, вызываемая по ссылке в Интернете.стр.Когда функция вызывается, она возвращает ' Ошибка: у вас нет прав для просмотра этого каталога или страницы. '

function callEmailLogin() {
    var functionAppBaseUrl = 'https://<myfunctionapp>.azurewebsites.com';
    var mobileClient = new WindowsAzure.MobileServiceClient(functionAppBaseUrl);

    mobileClient.login('aad', {'access_token': '<what goes here?>'})
    .done(function (results) {
         log('You are now logged in as: ' + results.userId);
         emailLink.innerText = 'Sign-out';   
    }, function (err) {
         log(err);
         emailLink.innerText = 'Sign-in/Sign-up';
    });
}

Я следовал за постом Криса Гиллума здесь, чтобы настроить ADB2C сСлужбы приложений https://blogs.msdn.microsoft.com/appserviceteam/2016/06/22/app-service-auth-and-azure-ad-b2c/

Я последовал за постом Стюарта Лика, чтобы создать простой веб-клиент, но в коде нет примера AAD, и это не очень хорошо https://blogs.msdn.microsoft.com/stuartleeks/2018/02/19/azure-functions-and-app-service-authentication/

Я нечто бы ни происходило при входе в систему для вызова access_token , я предположил, что это идентификатор клиента, установленный в расширенных настройках AAD, который является идентификатором приложения из каталога приложения AD-B2C.

Here is the App Service AD config Here is the App config in AD B2C

1 Ответ

0 голосов
/ 31 мая 2018

Я обнаружил свои ответы, я делал это слишком сложно.

Я обнаружил, что вам не нужно отправлять access_token aad EasyAuth Provider.Модифицировано следующим образом и все работает!

function callEmailLogin() {
    mobileClient.login('aad')
    .done(function (results) {
         log('You are now logged in as: ' + results.userId);
         emailLink.innerText = 'Sign-out';
    }, function (err) {
         log(err);
         emailLink.innerText = 'Sign-in/Sign-up';
    });
}

С одной проблемой она не возвращает претензию электронной почты как "typ": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", она возвращает ее как" typ ":" emails ".Я просто быстро решил эту проблему, но кто-нибудь знает, что утверждение электронной почты нестандартно?

...