Is it possible for a user on android or a web app to accept a cloudkit share invitation and then interact with the shared db?
The user would have an icloud account and the app would ideally leverage cloudkitJS. The invitation would be generated from a native IOS app.
Documentation doesn’t really cover that topic from what i could see.
Thanks
Related
I am having an unusual hard time finding an example of how to develop a multi-user Xamarin.Forms app. Imagine you wanted to develop an app for UWP, iOS and Android that users can log into and then "do stuff".
It does not matter what - for example taking notes for later access.
Since I am using Microsoft Azure, I would love to have an example which makes use of Azure Active Directory B2C for authentication (including the usage of identity providers such as Microsoft, Facebook, Google, etc.) and Azure Mobile App Service / Azure SQL, etc.
While there are samples available that show how to use ADB2C I didn't find anything related to how you would implement a multi-user app (e.g. best strategies for the database schema, access management and how this works best with an own Restful API backend and how to include it in your client code, i.e. Model, Controller,...)
Does anyone of you happen to know an end-to-end sample for this type of Scenario?
Best regards,
Christian.
To setup authentication for B2C, I would recommend MSAL. Here are some samples:
https://github.com/Azure-Samples/active-directory-b2c-xamarin-native
There are also samples available for the WebApi.
This is a simple Xamarin Forms app showcasing how to use MSAL to authenticate users via Azure Active Directory B2C, and access an ASP.NET Web API with the resulting token.
If you want to know how to setup your database to actually store user data, I would recommend using the claims provided in the token to identify the user. The best way identify the user reliably would be to use the objectId claim. It stays the same even if the user changes their email address.
The claims can also be used to show user information in your app, e.g. display name or email. You need to add the scope profile to your authentication request to get this data.
I'm planning to create 1) react.js web app 2) react Native android/ios apps, and I want to create one unified node.js backend to serve as a single API for both web and mobile apps.
I would also like to take advantage of Azure's notifications hub and authentication. For authentication, I'll also need to have custom username/pw rather than just social accounts. What should I do? Can AAD achieve it?
I realized whilst Azure has great support for native iOS/Android Apps, it's not entirely clear on whether it supports React/React Native Apps as well.
To what extent would the javascript mobile App SDK help?
https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-html-how-to-use-client-library/
Thanks!
To provide single APIs for both web clients and devices, and implement Notification push, you can use Azure Mobile Apps in Node.js.
For authentication, I'll also need to have custom username/pw rather than just social accounts. What should I do? Can AAD achieve it?
If you want to custom authentication on your Mobile Apps, you can refer to https://shellmonger.com/2016/04/08/30-days-of-zumo-v2-azure-mobile-apps-day-5-custom-authentication/ for details. And to use AAD, you only can authentication your users in your tenant in AD. (the user name is inthe format:<username>#<tenant>.onmicrosoft.com).
At last, as React/React Native Apps are based on javascript, so you are right, you can implement the Mobile Apps functionalities with JavaScript Client Library for Azure Mobile Apps
Here is a post in the similar scenario with you, maybe it will help you.
I use Twitter to authenticate users in an Azure Mobile App. I want to save the account information on the phone so that users don't have to log in each time the app starts. It's a Xamarin.iOS app.
If I were building a Windows app, I'd use PasswordVault as explained in the Azure Mobile Apps documentation under "Caching the authentication token".
If I were using Xamarin.Auth, I'd use the AccountStore as explained in the Xamarin.Auth documentation under "Storing and Retrieving Account Information on Devices".
I see that the Azure Mobile App SDK contains a modified version of the Xamarin.Auth plugin. Can I use the AccountStore that way?
If not, what's the best way to save account information in Xamarin.iOS?
The answer is to use the iOS Keychain. I forgot that Xamarin.Auth is open source. Here's how it stores accounts:
https://github.com/xamarin/Xamarin.Auth/blob/master/src/Xamarin.Auth.iOS/KeyChainAccountStore.cs
There's also a Keychain sample from Xamarin:
https://github.com/xamarin/monotouch-samples/blob/master/Keychain/Main.cs
I want to store user information to a db after a user successfully logged in via a social provider (google, facebook, etc.) without calling an extra api on the client side.
In azure mobile services this is done by creating a class that inherity from e.g. GoogleLoginProvider and then by overwriting the CreateCredentials method.
See this post: Save information immediately after Google login in Azure Mobile Services (.NET Back-end)
But how can I archive the same behaviour in Azure App Services?
Thanks
Unfortunately this is not possible with App Service authentication. The authentication happens outside of your application and there aren't currently any direct hooks into the authentication pipeline. This also means you will not be able to inject custom claims into the ClaimsIdentity.
We are aware of some of these scenarios and want to try and address them, but don't have any timelines to share at this point. I believe the separate API call into the backend will be required in order for you to implement your registration. As far as implementing role-based access control, you will likely need to store the additional user metadata elsewhere.
I'm writing an in-house app and we're using some of the Google API's in Express/node.
Since I'm only going to use one google account (an email I made just for this purpose), what's the best authentication configuration to use?
It's a service account.
From the Google Developer Console create a service account for your app, the use the API key generated in your app.