Azure Function自定义API身份验证

时间:2019-03-21 13:26:50

标签: azure architecture azure-devops azure-active-directory azure-functions

我有一个HTTP触发的Azure函数,该函数由我的一个Web应用程序使用。该站点的用户将是注册该站点的任何人。现在,我想以一种仅对注册用户进行身份验证的方式来实现对azure功能的身份验证。我可以看到许多内置身份验证,例如azure函数,使用Azure AD和其他身份提供程序的OAuth等。我正在寻找一种方法来对通过我的网站而非身份提供程序注册的用户进行身份验证。

我能想到的一种解决方案是,在将该用户注册到Azure AD时进行注册。然后,在调用API时,将用户凭据传递给API并针对AD进行验证。有人可以建议这是一个好的解决方案吗?如果没有,请为我的用例提供最佳解决方案。

我不想使用任何外部身份验证提供程序

2 个答案:

答案 0 :(得分:1)

我认为您可以通过以下方式做到这一点。

使用功能级别授权密钥(不是首选,但很容易)

如果您的Web应用程序是唯一将访问该功能应用程序的应用程序,则可以直接在该功能上启用授权。任何想要访问该功能的人都必须传递密钥,否则您将获得401。由于您希望用户直接访问功能,因此必须在网站中创建附加端点,该端点将代表用户调用功能应用并传递密钥。您可以在这里找到更多信息 Authorization Key

使用Azure B2C或AD

您正在考虑正确的路线。如果您的网站可供外部消费者访问,则可以考虑使用Azure B2C。您可以获得许多现成的功能,包括使用社交登录名进行注册,并且可能不需要单独保存用户。流程保持不变,用户通过Azure AD(或B2C)进行身份验证并颁发令牌。然后在调用Azure函数时传递令牌。

答案 1 :(得分:1)

只需参考文档: