Asp.net web api Azure AD OAuth客户端凭据流访问控制
我正在使用Azure AD OAuth2授权来保护我的Web API。现在我需要支持两个OAuth2场景(流)-Asp.net web api Azure AD OAuth客户端凭据流访问控制,asp.net-web-api,oauth-2.0,azure-active-directory,azure-ad-graph-api,Asp.net Web Api,Oauth 2.0,Azure Active Directory,Azure Ad Graph Api,我正在使用Azure AD OAuth2授权来保护我的Web API。现在我需要支持两个OAuth2场景(流)- Web应用程序访问Web API,并且基于用户角色的API将服务于资源。 这是使用authorize oauth流实现的,访问控制是使用authorize[Role=“Read”]属性完成的 访问同一Web API的守护程序(控制台)应用程序。虽然我能够通过使用客户端凭证oauth流来获取令牌,但我无法理解如何管理对守护进程的访问 一旦令牌发出,控制台就可以访问任何API方法 范围-
"roles": [
"Things.Read"
],
"roles": [
"Things.Read.All"
],
在第二个场景中是这样的:
"roles": [
"Things.Read"
],
"roles": [
"Things.Read.All"
],
您可以使用在客户端获得的令牌获得您提到的应用程序角色。但在服务器端(受保护的API端),无法看到角色声明要授权 使用用户/角色,您可以在用户和清单文件中定义的角色之间创建映射。所以UI和API将知道要授权的用户角色
对于应用程序/角色,Azure portal上无法创建映射clientId/clientSecret到清单中定义的AppRole的方法。这将在场景1中起作用,但如何处理客户端凭据流?假设我有一个客户端应用程序应该具有“读取”访问权限,另一个客户端应用程序需要“写入”访问权限,我在哪里指定映射?我们有没有办法在azure portal中定义此访问权限?或者客户端可以在令牌请求中请求此读/写权限吗?在您将应用程序权限添加到Azure AD中的控制台应用程序并授予该权限后,使用客户端凭据返回的令牌应包括角色。啊。。。你的应用可能是本地应用!他们无法获得应用权限,因为他们无法保守秘密。如果您已在控制台应用程序中授予应用权限并授予该权限,则应显示该权限。没有理由不去。是的。添加应用权限仅表示此应用希望执行此操作。它仍然需要管理员批准才能真正获得分配给它的角色。