我是Azure的新手,有一个问题困扰着我。 是否可以在Azure中使用一个"通用" AAD创建多租户逻辑,其中包含功能应用程序和其他租户(超过20个),这些租户应使用这些应用程序来操作自己的租户?例如,有一个管理用户的应用(UserManagement),当这个函数被另一个租户(租户"B")"调用"时,比如说添加一个新用户,它应该只在调用的AAD(租户"B")中添加用户。我尝试通过将应用注册凭据存储在表或服务主体-应用注册逻辑中来实现这一点,但没有效果。谢谢你。
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,以启用多租户特性。
query all the users
var users = await _graphServiceClient.Users.Request().GetAsync();
common
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用户将成功授权。我使用以下参数生成了访问令牌:
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**终结点:
2条答案
按热度按时间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
,以启用多租户特性。nwlqm0z12#
我同意*@Tiny Wang * 的观点,您需要创建多租户Azure AD应用程序来实现您的方案。
我尝试在我的环境中重现相同的结果,结果如下:
我在TenantA中创建了Azure AD应用程序:
现在,我尝试使用以下授权端点以TenantB用户身份登录:
用户将收到如下屏幕提示:
用户接受同意后,
TenantB
用户将成功授权。我使用以下参数生成了访问令牌:
如果你希望个人Microsoft帐户访问你的应用,请按以下方式注册你的应用并使用**
common
**终结点: