是否可以从Azure中的另一个租户操作租户?

tgabmvqs  于 2023-02-25  发布在  其他
关注(0)|答案(2)|浏览(127)

我是Azure的新手,有一个问题困扰着我。 是否可以在Azure中使用一个"通用" AAD创建多租户逻辑,其中包含功能应用程序和其他租户(超过20个),这些租户应使用这些应用程序来操作自己的租户?
例如,有一个管理用户的应用(UserManagement),当这个函数被另一个租户(租户"B")"调用"时,比如说添加一个新用户,它应该只在调用的AAD(租户"B")中添加用户。
我尝试通过将应用注册凭据存储在表或服务主体-应用注册逻辑中来实现这一点,但没有效果。
谢谢你。

z9smfwbn

z9smfwbn1#

我用Azure AD多租户应用程序和asp.net核心应用程序做了一个测试,该功能允许来自不同租户的用户登录,然后使用Microsoft Graph API到query all the users
我的Azure AD应用注册在租户A中,租户A是一个多租户应用,然后我使用租户B中的用户登录应用,查询结果是租户B中的所有用户都列在查询结果中。
这是我跟踪的the sample。在控制器中,我的请求是这样的:var users = await _graphServiceClient.Users.Request().GetAsync();
不要忘记将租户ID设置为common,以启用多租户特性。

nwlqm0z1

nwlqm0z12#

我同意*@Tiny Wang * 的观点,您需要创建多租户Azure AD应用程序来实现您的方案。

我尝试在我的环境中重现相同的结果,结果如下:

我在TenantA中创建了Azure AD应用程序:

现在,我尝试使用以下授权端点以TenantB用户身份登录:

https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?
&client_id=ClientID
&response_type=code
&redirect_uri=https://jwt.ms
&response_mode=query
&scope=https://graph.microsoft.com/.default
&state=12345

用户将收到如下屏幕提示:

用户接受同意后,TenantB用户将成功授权。
我使用以下参数生成了
访问令牌

https://login.microsoftonline.com/organizations/oauth2/v2.0/token

grant_type:authorization_code
client_id:ClientID
scope:https://graph.microsoft.com/.default
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret

如果你希望个人Microsoft帐户访问你的应用,请按以下方式注册你的应用并使用**common**终结点:

    • 根据您的要求 *,您可以分配Azure AD API权限并允许用户访问应用程序。

相关问题