Аутентификация учетной записи Microsoft в приложении API в Azure

Я надеюсь выполнить подключение к Visual Studio Team Services через поставщика проверки подлинности учетной записи Microsoft. Я следил за документацией здесь (https://github.com/Azure/azure-content/blob/master/articles/app-service-api/app-service-api-dotnet-connect-to-saas.md) и есть несколько проблем с реализацией.

Они используют пакет Microsoft.Azure.AppService.ApiApps.Service для доступа к токену из шлюза api.

// Retrieve the token from the gateway
        var runtime = Runtime.FromAppSettings(Request);
        var dropboxTokenResult = await runtime.CurrentUser.GetRawTokenAsync("dropbox");

Но когда я публикую свое веб-приложение, я получаю ошибку 500 при попытке создать объект Runtime, удаленный отладчик буквально умирает в строке ниже, и я даже не вижу никаких журналов в интерфейсе потоковых журналов api, чтобы дать дополнительную информацию о ошибка.

var runtime = Runtime.FromAppSettings(Request);

Есть идеи, как добраться до токена?

Документация для реализации аутентификации microsoftaccount с помощью веб-API немного скудна, есть ли ссылки на примеры или документацию, которая была полезна для вас, ребята?

Кроме того, действительно ли нужен файл apiapp.json? Они создают его в примере, но настройка проверки подлинности через блейды Azure, похоже, работает нормально, и оставить файл apiapp.json вне api, похоже, в любом случае не имеет значения. В конце концов, я бы хотел, чтобы мой веб-api поддерживал аутентификацию через учетную запись microsoft независимо от того, куда он перемещен, поэтому я решил, что там будут какие-то настройки, которые мне нужно будет указать, но я тоже не могу собрать эту часть вместе.


person dev null    schedule 09.02.2016    source источник


Ответы (1)


Похоже, вы используете старую модель для создания приложений API (в которой используется шлюз), которая устарела. Я считаю, что он все еще поддерживается, но с тех пор официальный способ создания приложений API изменился, и вам может показаться, что с ним немного проще работать. Дополнительную информацию можно найти здесь: https://azure.microsoft.com/en-us/documentation/articles/app-service-api-whats-changed/

Документация по использованию аутентификации учетной записи Microsoft находится здесь: https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-microsoft-authentication/

После того, как вы все настроите, вы можете получить токен несколькими способами. Вы можете найти его как входящий HTTP-заголовок (x-ms-token-microsoftaccount-access-token) или использовать SDK сервера службы приложений, чтобы получить его: что-то вроде:

var creds = await this.User.GetAppServiceIdentityAsync<MicrosoftAccountCredentials>(this.Request);
string accessToken = creds.AccessToken;
person Chris Gillum    schedule 09.02.2016
comment
Спасибо, я определенно использовал старую модель, как только я очистил все это и перестроил с новым SDK, все, казалось, начало работать. Единственный способ выяснить, как добраться до токена, - это принять ваше предложение с заголовками: Request.Headers.GetValues ​​(x-ms-token ...) - person dev null; 10.02.2016