Мобилно приложение Azure, ангажиращо Xamarin Authentication

Използвам удостоверяване на Xamarin Forms с Auth0. Бекенд услугата е мобилно приложение Azure. Опитвам се да предам маркера за оторизация обратно към услугата чрез:

            MobileServiceUser usr = new MobileServiceUser(User.UserName);
            usr.MobileServiceAuthenticationToken = User.jwt;
            App.client.CurrentUser = usr;

Предстои ми да се справя с това в моето приложение Azure. Когато предам потребителя, както по-горе, срещам следната грешка в проекта Xamarin:

Причинено от: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: Заявката не можа да бъде изпълнена. (Неоторизирано)

Това всъщност е, че съм декларирал анонимен достъп в моя контролер:

[AuthorizeLevel(AuthorizationLevel.Anonymous)]
public class MovementController : TableController<MoveHeaderDto>

Как да се справя с MobileServiceUser в моето мобилно приложение Azure?


person Randeep Singh    schedule 22.07.2015    source източник
comment
Изправен съм пред същия проблем с Xamarin.Forms в проекта Windows81, когато извикам LoginAsync с доставчик и съхранен токен.   -  person Loul G.    schedule 22.07.2015


Отговори (1)


Вярвам, че 401, който виждате, е защото токенът не е в очаквания формат и не може да бъде валидиран.

Свойството MobileServiceAuthenticationToken е JWT, издаден от самия шлюз за мобилни приложения. Ще трябва да извикате претоварването на метода loginAsync(), който приема допълнителен параметър на токена, предавайки JWT, който получавате от Auth0.

Методът loginAsync ще зададе MobileServiceUser и това ще бъде прикачено към повиквания, отиващи към вашата услуга. Моля, имайте предвид, че за формуляри на Xamarin трябва да имате персонализиран рендър, така че да се използва правилният елемент на изглед за платформата. Това е подобно на това, което е това публикация в блог прави за библиотеката ADAL.

person mattchenderson    schedule 22.07.2015
comment
Така че можем да използваме OAuth 2.0 само за прехвърляне на XUMO-Auth хедър от приложение към мобилно приложение, за да използваме вграденото удостоверяване. Дори статията тук казва, че все още не поддържа други шлюзове.: azure.microsoft.com/en-us/documentation/articles/ - person Randeep Singh; 23.07.2015
comment
@mattchenderson какво предлагате е първо да влезете с помощта на auth0 и след това да използвате токена от auth0, за да влезете с помощта на azure клиента? Предполагам, че това не позволява персонализирано удостоверяване с помощта на auth0, тъй като претоварването на loginAsync, за което говорите, също изисква доставчик. - person frmi; 12.06.2016