如何使用 OAuth 为人类和机器保护 Azure 功能?
How to secure Azure functions with OAuth for both humans and machines?
我有一个天蓝色的功能应用程序,机器(客户端凭据流)和人类(授权代码流)都需要能够authorize/authenticate反对。
最初我使用 easy-auth,Azure 的开箱即用解决方案来保护功能应用程序。但是,根据此 ,无法通过简单的身份验证使用客户端凭据流。虽然我不明白这是为什么。为什么不能通过单个应用程序注册对两个不同的流程使用相同的权限?
假设(可能不正确)以上内容是正确的,我必须自己实施 JWT 验证。
有什么可靠的方法可以判断 API 是由机器调用还是由人调用?
我还应该使用两个单独的应用程序注册吗?
我对这些技术的理解可能不足以正确提出问题,如果我可以做任何事情来澄清问题,请告诉我。
据我所知,您可以使用客户端凭据流来调用受 easy-auth(AAD 作为身份验证提供程序)保护的 Azure 函数。通常,您可以尝试以下步骤:
- 注册 Azure AD 应用程序
- 通过以下请求从 Azure AD 获取访问令牌:
URL:
POST https://login.microsoftonline.com/<your tenant ID/name>/oauth2/token
Header:
Content-Type: application/x-www-form-urlencoded
Body:
client_id=<your new resistered app ID>&
client_secret=<your new resistered app secret>&
resource=<your Azure function app ID which configed at easy-auth>&
grant_type=client_credentials
如果您使用的是 Azure AD b2c,请向我提供更详细的信息,我会为您做一些研究。
我有一个天蓝色的功能应用程序,机器(客户端凭据流)和人类(授权代码流)都需要能够authorize/authenticate反对。
最初我使用 easy-auth,Azure 的开箱即用解决方案来保护功能应用程序。但是,根据此 ,无法通过简单的身份验证使用客户端凭据流。虽然我不明白这是为什么。为什么不能通过单个应用程序注册对两个不同的流程使用相同的权限?
假设(可能不正确)以上内容是正确的,我必须自己实施 JWT 验证。
有什么可靠的方法可以判断 API 是由机器调用还是由人调用?
我还应该使用两个单独的应用程序注册吗?
我对这些技术的理解可能不足以正确提出问题,如果我可以做任何事情来澄清问题,请告诉我。
据我所知,您可以使用客户端凭据流来调用受 easy-auth(AAD 作为身份验证提供程序)保护的 Azure 函数。通常,您可以尝试以下步骤:
- 注册 Azure AD 应用程序
- 通过以下请求从 Azure AD 获取访问令牌:
URL:
POST https://login.microsoftonline.com/<your tenant ID/name>/oauth2/token
Header:
Content-Type: application/x-www-form-urlencoded
Body:
client_id=<your new resistered app ID>&
client_secret=<your new resistered app secret>&
resource=<your Azure function app ID which configed at easy-auth>&
grant_type=client_credentials
如果您使用的是 Azure AD b2c,请向我提供更详细的信息,我会为您做一些研究。