我已经启动并运行了Unity Xbox Live 服务示例,允许我通过 Unity 中的 Xbox Live 服务登录到我的 Microsoft 帐户。
我还在 Unity 中运行了 Azure App Services(移动服务)来查询和保存我的数据。应用服务支持开箱即用的身份验证,包括 Microsoft 帐户支持。
有谁知道我是否可以使用来自 Xbox Live 服务登录的身份验证来针对我在应用服务中的 Microsoft 帐户对我的网络调用进行身份验证?
我已经启动并运行了Unity Xbox Live 服务示例,允许我通过 Unity 中的 Xbox Live 服务登录到我的 Microsoft 帐户。
我还在 Unity 中运行了 Azure App Services(移动服务)来查询和保存我的数据。应用服务支持开箱即用的身份验证,包括 Microsoft 帐户支持。
有谁知道我是否可以使用来自 Xbox Live 服务登录的身份验证来针对我在应用服务中的 Microsoft 帐户对我的网络调用进行身份验证?
它变得复杂:)虽然我能理解这种挫败感。让我快速概述一下,但我很乐意根据需要提供更多详细信息。
在处理登录时,第一步是身份验证——在这种带有 Microsoft 的系统上存在三种选择 1. MSA 或 Microsoft 帐户,这是大多数消费者系统使用的,例如 Xbox。2. AAD 或 Azure Active Directory,通常用于企业应用程序。3. S2S,或服务器到服务器,通常使用 SSL 证书或共享密钥完成。(请注意,这也类似于上面提到的应用程序密码,虽然应用程序密码的安全性较低,因为密码与应用程序本身有关,但它和 MSA 确实在一起)。
这三个系统在目标、设计和要求上大相径庭,因此实际上没有统一它们的选项。
现在让我们假设您只使用上面的#1 - 使用 MSA 登录。您可能想知道为什么不能将为一组服务返回的令牌与另一组服务一起使用。现在我们进入了用户隐私和安全隔离领域。当您在 PC 上使用 XboxLive 登录游戏时,您是否注意到会出现一个对话框,询问它是否正常?这是同意对话框,是必需的,这样恶意应用程序就无法窃取系统一部分的令牌(例如您的 Outlook.com 登录)并使用它从其他地方(onedrive、Xbox 等)获取数据,而无需用户说“是的,没关系”。Facebook等系统也会发生同样的事情——这是一个相当标准的系统。
因此,要启用此功能,每次您向 MSA 请求令牌时,您都必须指定要使用它的站点,以便 MSA 知道要请求什么同意 - 并确保它仅保留在该站点上。
tl;dr - 做安全权利意味着更多的麻烦 :) 但好消息是底层系统应该能够检测到这些并防止用户必须为每个站点提供登录 - 只需一次登录,但是可能有多个同意对话框。为开发人员提供更多代码......
有谁知道我是否可以使用来自 Xbox Live 服务登录的身份验证来针对我在应用服务中的 Microsoft 帐户对我的网络调用进行身份验证?
AFAIK,对于使用 Microsoft 帐户的应用服务身份验证,您需要在Microsoft 帐户开发人员中心创建应用程序,然后您需要在应用服务应用程序的“设置 > 身份验证/授权”下为您的 Microsoft 帐户提供商添加客户端 ID和客户端密码. 更多细节可以参考微软账号认证。
根据您的方案,您只能对 Microsoft 帐户使用客户端管理的身份验证。此外,Microsoft 帐户的应用服务身份验证使用LiveSDK来启动登录过程。虽然,我对 Xbox Live 服务登录并不熟悉,但根据我的理解,我认为您暂时无法实现此目的。