Api Azure AD和对自行开发的应用程序的授权

Api Azure AD和对自行开发的应用程序的授权,api,asp.net-core,azure-active-directory,Api,Asp.net Core,Azure Active Directory,我已经阅读了Microsoft.com上的文档,只得到了关于授权应用程序相互对话的答案,而没有得到如何在我拥有的每个不同应用程序上实现权限系统的答案。 我主要想知道在我的.NETAPI和Angular客户端上实现授权的最佳实践是什么。 我会使用Azure AD将外部和内部用户重定向到Microsoft登录页面,我缺少一个细粒度的权限系统来授权用户访问API或Web应用程序上的不同资源。 我必须为有权限的API设置DB吗? 在将新用户注册到我的广告后,如何将其添加到我的数据库中 我在这里真的很困惑

我已经阅读了Microsoft.com上的文档,只得到了关于授权应用程序相互对话的答案,而没有得到如何在我拥有的每个不同应用程序上实现权限系统的答案。 我主要想知道在我的.NETAPI和Angular客户端上实现授权的最佳实践是什么。 我会使用Azure AD将外部和内部用户重定向到Microsoft登录页面,我缺少一个细粒度的权限系统来授权用户访问API或Web应用程序上的不同资源。 我必须为有权限的API设置DB吗? 在将新用户注册到我的广告后,如何将其添加到我的数据库中


我在这里真的很困惑,所以我的问题并不像我希望写的那么清楚

将评论整理成正确答案:


每用户权限仅限于批准,即您可以在Azure AD中授予用户的角色。如果需要,还可以使用安全组实现类似的功能。但任何更细粒度的东西都必须在应用程序端实现


要识别用户,可以使用用户Id令牌/访问令牌中的两个声明之一。oid或sub。oid是Azure AD中唯一的不可变对象id。sub声明是应用程序中唯一的不可变id。因此,每个应用程序都有相同的oid,但同一用户有不同的sub。oid声明也用于调用例如MS Graph API来识别用户

每用户权限仅限于批准,即您可以在Azure AD中授予用户的角色。如果需要,还可以使用安全组实现类似的功能。但是任何更细粒度的东西都必须在应用程序端实现。感谢您的快速响应。你知道如何将广告用户同步到数据库吗?我可能会在我这边存储一些ID密钥,以便能够识别用户?您知道已经有此功能的服务吗?不知道这样的服务。您可以使用用户Id令牌/访问令牌中的两个声明之一来标识用户<代码>oid或
sub
。oid是Azure AD中唯一的不可变对象id。子声明是应用程序中唯一的不可变id。因此,每个应用程序都有相同的oid,但同一用户有不同的sub。oid声明也用于调用例如MS Graph API来识别用户。您是否建议让外部用户通过Azure AD重定向进行注册?我是否必须创建域以将内部和外部分开?如果您使您的应用程序成为多租户,即允许从任何组织登录,您可以从
tid
声明中识别用户的组织。若要允许组织中的来宾用户登录,无需修改,只要您的应用程序使用单租户授权端点即可。如果要限制哪些用户可以访问租户中的应用程序,可以通过企业应用程序选项卡中的企业应用程序设置进行限制。