Azure功能-一些是公共的,一些是受保护的?

Azure功能-一些是公共的,一些是受保护的?,azure,authentication,azure-functions,Azure,Authentication,Azure Functions,我在我的应用程序中使用Azure功能,大多数功能都需要受到我设置的身份验证方案的保护,但是有些功能需要匿名访问 我想通过这种设计实现的是让我的应用程序将一个刷新令牌传递给azure函数,该函数包含客户端密钥,以便在终端设备不需要知道密钥的情况下为用户刷新令牌 我可以做的另一个选择是拥有一个单独的azure项目,其中包含一些可公开访问的函数。在azure函数中进行身份验证时,您有3个选项: 1.通过function.json中的code query/header authLevel设置在单个函数前

我在我的应用程序中使用Azure功能,大多数功能都需要受到我设置的身份验证方案的保护,但是有些功能需要匿名访问

我想通过这种设计实现的是让我的应用程序将一个刷新令牌传递给azure函数,该函数包含客户端密钥,以便在终端设备不需要知道密钥的情况下为用户刷新令牌


我可以做的另一个选择是拥有一个单独的azure项目,其中包含一些可公开访问的函数。

在azure函数中进行身份验证时,您有3个选项: 1.通过function.json中的code query/header authLevel设置在单个函数前面使用API键。 2.使用Easy Auth,它可以将AAD放在所有函数的前面 3.自己动手

如果您正在做一些有趣的事情,我建议您使用jwt库或类似的工具来自己做


我还建议不要在同一个功能应用程序上使用未经身份验证和身份验证的功能,只需创建两个不同的应用程序即可。这使得意外地弹出权限问题升级变得更加困难。

那么问题出在哪里?您分别为每个函数设置了authLevel。也许我不知道authLevel是如何工作的,但一旦我将身份验证添加到azure函数中,所有函数都会受到保护,需要传入访问令牌,并且所有函数都是匿名的……Dude不,Easy Auth,门户功能与authLevel完全不同。只需阅读后者,这是您所需要的,您不必引入Oauth。您似乎正在使用基于用户的身份验证功能应用程序。正如Mikhail评论的那样,您可以为每个函数设置授权级别,而您配置的Easy Auth是针对整个函数app.AFAIK的,Easy Auth将在函数级身份验证之前进行身份验证,如果您同时启用基于用户的函数app身份验证和函数级身份验证,然后他们都会被认证。对于您的场景,您可以将“请求未经身份验证时采取的操作”选项设置为“允许匿名请求不采取任何操作”,然后,如果在访问之前需要对每个函数进行身份验证,则需要验证其身份验证。好的,谢谢您的回答,我想我同意你的看法-从长远来看,另一个带有简单RefreshToken功能的功能应用程序可能会省去很多痛苦。。。