首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Azure AD保护共享API

用Azure AD保护共享API
EN

Stack Overflow用户
提问于 2019-05-02 15:49:39
回答 1查看 74关注 0票数 0

我正在和一个客户合作来定义一个安全策略,并且已经被困在想要工作的东西上了。我是Azure AD的新手,所以这可能是不可能的。

考虑下面的应用程序前景。我有4个"API“应用程序:

  • API-A,需要交互式用户和基于角色的权限
  • API-B,通过服务恶魔访问,client_credential授权
  • 不得直接对API-C进行身份验证。
  • API-D,通过服务恶魔访问,client_credential授权

通过API或API认证的用户/恶魔也应该能够访问API。但是,通过API认证的恶魔不能访问API。

我本来希望能够使用应用程序注册的“公开API”和"API权限“来控制JWT中返回的”角色“,但我似乎无法让它工作,也无法找到任何关于如何实现这一目标的适当指南。

编辑:为了清晰起见,API应用程序不是托管在Azure中的,我只是想使用Azure AD来提供身份验证

EN

回答 1

Stack Overflow用户

发布于 2019-05-02 23:20:08

区分客户端应用程序和API应用程序(或使用OAuth2术语的资源服务器)可能会有帮助。每一项都必须单独登记。上面的列表似乎将它们合并在一起,这可能会使您感到困惑。

前者(客户端应用程序)获取令牌,后者通过服务请求从客户端接收令牌。只有当客户端应用程序获得令牌时,Authentication才会参与进来。API不进行身份验证--它们使用令牌来授权对其服务的访问。客户端可以代表用户获取令牌,用户可以作为流程的一部分进行身份验证和同意,也可以代表自己获得令牌(客户端creds)。在AAD中,API应用程序可以公开/定义范围/权限,这些权限可以包含在这些令牌类型中的一个或两个类型中。API可能决定不需要任何令牌(听起来像您的API-C)。在API应用程序上公开(可用)权限,在客户端应用程序上指定(必需) API 权限。在运行时(如果使用AAD V2端点),客户端请求的作用域可能比按需要配置的范围更少。这只在客户端使用委托令牌(基于用户的)时才适用。(请注意,API应用程序也可能是另一个API应用程序(在多层系统中常见)的客户端应用程序。

顺便说一句,部署客户机或API的位置对上面的内容完全不重要。最多情况下,部署会影响您需要为某些客户端应用程序(而不是API)指定的应答url的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55956052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档