Office365 MS Graph VS Outlook REST API、OAuth、Win Store/UWP、Xamarin、WebAPI、SSO、Live SDK不推荐使用-混淆
经过数小时的谷歌搜索、阅读微软文档和代码示例,我现在更加困惑,需要一些架构建议 基本上,我需要确定哪些API是适用的,以及如何从它们开始 背景 我有一个现有的应用程序(目前是一个XAML+c#win store 8.1应用程序),带有WebAPI 2.2 odata(以及一些MVC页面)后端 客户端应用程序在Win 8.1和Win 10机器上运行良好 服务器端位于azure VM中 当前Office365 MS Graph VS Outlook REST API、OAuth、Win Store/UWP、Xamarin、WebAPI、SSO、Live SDK不推荐使用-混淆,office365,azure-active-directory,microsoft-graph-api,live-sdk,auth0,Office365,Azure Active Directory,Microsoft Graph Api,Live Sdk,Auth0,经过数小时的谷歌搜索、阅读微软文档和代码示例,我现在更加困惑,需要一些架构建议 基本上,我需要确定哪些API是适用的,以及如何从它们开始 背景 我有一个现有的应用程序(目前是一个XAML+c#win store 8.1应用程序),带有WebAPI 2.2 odata(以及一些MVC页面)后端 客户端应用程序在Win 8.1和Win 10机器上运行良好 服务器端位于azure VM中 当前 用户登录到应用程序(以其登录的用户身份) 使用其Microsoft帐户的windows(具有) 他们不必打
- 用户登录到应用程序(以其登录的用户身份) 使用其Microsoft帐户的windows(具有)
- 他们不必打字 用户名/密码,它们只接受我指定的权限(1x) 范围包括“wl.基本”、“wl.电子邮件”、“wl.日历”
- 为此,我使用Live Connect库 (Microsoft.Live.dll,v5.6.0.0)
- 然后我从中获得一个AuthenticationToken LiveLoginResult
- 我将其与odata请求一起传递到服务器李>
- 服务器使用它来查找他们的LiveID/UserID
- 然后我用它在我的数据库中找到相关用户,并将他们的odata内容提供给客户端应用程序
- Outlook REST API
- MS图形
- be X平台(可能使用Xamarin traditional和PCL代码共享以及UI的“Xamarin traditional”平台特定项目,可能使用MVVMCross)
- 允许用户使用其他服务进行身份验证(所有OAuth 2.0)-例如google/gmail帐户
Azure AD企业连接类型似乎只有Azure AD API的某些v限制权限/范围(即列出Azure域中的用户等)。然而,我还没有为Azure广告添加连接,所以这些可能在全球范围内不可用,但一旦我添加了,它们会弹出吗 这里还有其他选项供您选择。我们还没有完全更新我们的文档,所以请耐心等待。Microsoft Graph支持由新的v2端点颁发的令牌,这支持使用Microsoft帐户或工作/学校AAD帐户登录。登录后,他们将被要求同意允许你的应用访问他们的数据。如果他们使用Microsoft帐户登录,MS Graph将把服务请求路由到他们的outlook.com邮箱,而使用AAD帐户将路由到他们的O365邮箱。您的应用程序和应用程序调用的API(通过MS Graph)工作相同,与用户类型无关。 我们还为MS Graph提供了一个新的.Net客户端库,为auth提供了一个名为MSAL的预览.Net客户端库(ADAL使用仅支持AAD的v1端点,而MSAL支持支持支持MSA和AAD的v2端点)<
_loginResult.Session.AuthenticationToken
LiveAuthClient authClient = new LiveAuthClient(clientId, clientSecret, redirectUrl);
string liveIdGuidAsString = authClient.GetUserId(authenticationToken);
var startUri = new System.Uri($"https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id={Constants.AuthID}&redirect_uri={WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString()}&response_type=code&scope={WebUtility.UrlEncode(Constants.Scopes)}");
var webAuthenticationResult = await WebAuthenticationBroker.AuthenticateAsync(Windows.Security.Authentication.Web.WebAuthenticationOptions.None, startUri,
WebAuthenticationBroker.GetCurrentApplicationCallbackUri());