Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用azure功能在移动应用程序中进行身份验证_Azure_Authentication_Xamarin_Azure Functions_Serverless - Fatal编程技术网

使用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功能构建在应用程序服务之上,如移动应用程序

我正在尝试为我的xamarin应用程序开发一个无服务器后端。为此,我选择了azure函数。 现在我已经知道,Azure移动应用程序为此提供了一个SDK,我们可以通过以下多种方式轻松启用身份验证 1.Azure活动目录 2.脸谱网 3.谷歌 4.微软 5.推特

现在我想允许在我的应用程序中至少使用其中的2个进行登录,但我没有使用azure mobile app作为后端,而是使用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
有关更多详细信息,请参阅

然后,我转到平台功能并在“身份验证/授权”下配置Microsoft身份验证提供程序。对于移动客户端,只需使用移动应用客户端SDK进行日志记录,并按如下方式调用功能端点:


总之,您可以使用移动应用程序客户端SDK对功能应用程序进行身份验证。您可以根据需要配置身份验证提供程序,然后在调用
LoginAsync
进行日志记录时,为您的移动客户端设置相关的提供程序名称。对于您的功能,您可以检查
X-MS-CLIENT-PRINCIPAL-IDP
标题并检索特定提供商的当前用户信息和令牌。

我了解,在门户中设置身份验证对于使用App service的所有服务都是相同的。但由于移动应用程序有一个SDK,使得C#代码级别的身份验证更简单,因此我们可以让用户按下一个按钮,然后执行SDK代码,以便登录应用程序。我如何在azure函数中实现相同的行为,谁没有SDK?这部分让我困惑。请看我提出的关于身份验证的另一个问题。