我的目标很简单:使用Azure AD多租户应用程序来调用其他租户上的Azure资源管理器API。但是,当你用微软个人帐户登录时,我想不出该怎么做。
从技术角度来看,这可能是有道理的,但当我用个人账户登录时,如何将AAD应用程序添加到另一个租户呢?
应该通过手工检测个人MS帐户并找到与AAD承租人的关联来完成,或者有没有API可以促进这一点?在这两种情况下,怎么做?如果一个帐户与多个租户相关联(Azure Portal中的“切换目录”)怎么办?
附注。使用URLhttps://login.microsoftonline.com/organizations/oauth2/v2.0/authorize
(“orgainzations”而不是“common”)或https://login.microsoftonline.com/common/oauth2/authorize
(不带“v2.0”)将不允许使用个人MS帐户登录。
更新
为了演示这个问题,我们进行了4个测试,以使用多租户应用程序访问资源“https://management.azure.com/”:
>
用v1endpoint授权Microsoft的“Microsoft Azure”应用程序-它可以使用个人帐户:https://login.microsoftonline.com/common/oauth2/authorize?client_id=1950a258-227b-4e31-a9cf-717495945fc2&response_type=code&response_mode=form_post&resource=https://management.azure.com/&nonce=123&state=common&redirect_uri=http%3a%2flocalhost%3a64696%2fauthCallback
用v2endpoint授权同一“Microsoft Azure”应用程序-现在它不允许使用个人帐户:https://login.microsoftonline.com/common/oauth2/v2.0/Authorize?client_id=1950a258-227b-4e31-a9cf-717495945fc2&response_type=code&response_mode=form_post&scope=https://management.azure.com/.default&nonce=123&state=common&redirect_uri=http%3a%2f%2flocalhost%3a64696%2fauthcallback
针对v1endpoint授权自定义多承租人应用程序(插入您的客户端id)-显示错误AADSTS50020“承租人'Contoso.com'中不存在标识提供程序'Live.com'中的用户帐户'user@live.com',并且无法访问该承租人中的应用程序''(应用程序名称)。需要首先将该帐户添加为承租人中的外部用户。请注销并使用其他Azure Active Directory用户帐户重新登录。”https://login.microsoftonline.com/common/oauth2/authorize?client_id=&response_type=code&response_mode=form_post&resource=https://management.azure.com/&nonce=123&state=common&redirect_uri=HTTP%3a%2flocalhost%3a64696%2fauthcallback
针对v2endpoint授权自定义多租户应用程序-与测试#2相同-不允许个人帐户。
思想。
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=20244877-ae8f-4325-b4cf-c6dc239cb124
&response_type=code
&redirect_uri=https://localhost
&response_mode=fragment
&scope=https://management.azure.com/.default
&state=12345
&nonce=default
我目前正试图找出为我的系统设置多租户的最佳方法。我面临的问题是,租户并不总是必须是子域,但可以作为子域的一部分进行设置,子域可以有多个租户。我似乎在网上找不到任何东西可以帮助我在Laravel 6中进行设置。 系统要求: 一台服务器可以有许多子域 系统必须设置一个数据库,该数据库将使用tenant_id来确定哪些数据属于租户。 我目前正在以以下结构将所有子域数据存储在“subdomains”表中:
我正在使用spring boot开发一个多租户应用程序。 系统的业务逻辑将根据每个租户进行更改。 例如,应用程序上的特定租户租赁空间可能希望改变使用一些复杂的自定义逻辑计算值的方式。我想为应用程序注册默认行为/依赖项,并允许特定租户覆盖它。 这可以使用Spring Boot完成吗?
我必须在j2ee中开发一个多租户SaaS应用程序,从Iaas和PaaS开始实现三种云模型,我选择了openstack和openshift origin。SaaS应用程序的第一个标准是多租户,我知道有三种方法来实现它——单独的数据库——共享数据库,单独的模式——共享数据库,共享模式。我在这里迷失了方向,因为许多框架,比如ATHENA,ORM,比如hibernate,还有TOPLINK。我需要帮助了解
我已经安装了keycloak-angular包,我使用它的方式如下:https://www.npmjs.com/package/keycloak-angular 问题是,在我的应用程序中,我希望有多租户。这意味着在应用程序加载期间不知道领域名。 在说明中,它说“KeycloakService应该在应用程序加载期间使用APP_INITIALIZER标记初始化”,问题是该领域是由用户给定的,在应用程序
我正在构建基于Web的多租户SaaS应用程序。应用程序已在我的租户中注册,每个订阅Office 365的客户都将在Azure AD中获得服务主体对象。 我在客户租户中从外部帐户(Microsoft帐户)登录时遇到问题。 我创建了一个示例,并试图看看我可以从访问令牌中获得什么。 示例包含一个使用 MSAL 库处理身份验证的客户端应用程序 (.js) 和两个具有受保护终结点的 API。我还创建了三个独