使用azure功能在移动应用程序中进行身份验证
我正在尝试为我的xamarin应用程序开发一个无服务器后端。为此,我选择了azure函数。 现在我已经知道,Azure移动应用程序为此提供了一个SDK,我们可以通过以下多种方式轻松启用身份验证 1.Azure活动目录 2.脸谱网 3.谷歌 4.微软 5.推特 现在我想允许在我的应用程序中至少使用其中的2个进行登录,但我没有使用azure mobile app作为后端,而是使用azure功能。那么,如何使用无服务器实现相同的结果呢使用azure功能在移动应用程序中进行身份验证,azure,authentication,xamarin,azure-functions,serverless,Azure,Authentication,Xamarin,Azure Functions,Serverless,我正在尝试为我的xamarin应用程序开发一个无服务器后端。为此,我选择了azure函数。 现在我已经知道,Azure移动应用程序为此提供了一个SDK,我们可以通过以下多种方式轻松启用身份验证 1.Azure活动目录 2.脸谱网 3.谷歌 4.微软 5.推特 现在我想允许在我的应用程序中至少使用其中的2个进行登录,但我没有使用azure mobile app作为后端,而是使用azure功能。那么,如何使用无服务器实现相同的结果呢 提前感谢。由于Azure功能构建在应用程序服务之上,如移动应用程序
提前感谢。由于Azure功能构建在应用程序服务之上,如移动应用程序,您仍然可以使用或用于Http触发的功能 AFAIK,当使用Easy Auth(应用程序服务中的身份验证/授权)时,用户将被引导到
{your App Service url}/.Auth/login/{provider}
进行登录。通过web浏览器与您的web应用程序交互的用户将拥有一个cookie,并且他们可以作为您的web应用程序的浏览器进行身份验证。对于其他客户端(例如移动客户端),JWT将包含在x-zumo-auth
头中,移动应用客户端SDK将为您处理
根据您的场景,您正在尝试对函数使用基于用户的身份验证。我做了一些测试,你可以参考他们:
首先,我创建了一个用C#编写的HttpTrigger函数,然后将授权级别设置为匿名
return req.CreateResponse(HttpStatusCode.OK,req.Headers,JsonMediaTypeFormatter.DefaultMediaType);
注意:我只返回所有带有应用服务身份验证/身份验证指定的特殊头的头。一些示例标题包括:
- X-MS-CLIENT-PRINCIPAL-NAME
- X-MS-CLIENT-PRINCIPAL-ID
- X-MS-TOKEN-MICROSOFTACCOUNT-ACCESS-TOKEN
- X-MS-TOKEN-MICROSOFTACCOUNT-EXPIRES-ON
总之,您可以使用移动应用程序客户端SDK对功能应用程序进行身份验证。您可以根据需要配置身份验证提供程序,然后在调用
LoginAsync
进行日志记录时,为您的移动客户端设置相关的提供程序名称。对于您的功能,您可以检查X-MS-CLIENT-PRINCIPAL-IDP
标题并检索特定提供商的当前用户信息和令牌。我了解,在门户中设置身份验证对于使用App service的所有服务都是相同的。但由于移动应用程序有一个SDK,使得C#代码级别的身份验证更简单,因此我们可以让用户按下一个按钮,然后执行SDK代码,以便登录应用程序。我如何在azure函数中实现相同的行为,谁没有SDK?这部分让我困惑。请看我提出的关于身份验证的另一个问题。