对于一个客户,我需要设置Azure Active Directory,因为他希望他的员工和客户通过Microsoft SSO登录。我完全没有AD的经验,而且我对文档有点不知所措。“客户”都是B2B客户,所以没有个人帐户。这是一个TypeScript项目。
请让我也知道这个想法是否正确:客户希望其员工和外部公司能够登录,因此我需要使用多租户应用程序,如果他希望手动添加具有访问权限的用户,则可以使用单个租户。
我们还需要一种方法来读取通过SSO登录的用户所在的组。我们稍后使用这些组为他们分配角色。
因此,用户应该能够通过他们的Microsoft帐户登录,并允许我们读取他们所在的组。
然后我们获取访问令牌和id令牌并将它们发送到我们的后端,在那里我们获取用户的组。
我设置了两个不同的Active Directory应用程序,一个用于单租户,一个用于多租户(没有个人帐户)。
然后我设置它允许访问令牌和身份验证中的id令牌,我添加了一些令牌声明来获取电子邮件,并添加了Group.Read.All
和GroupMember.Read.All
的API权限。我有一个虚拟前端,允许我登录并给我访问令牌和id令牌。
当我登录到单租户应用程序时,一切正常,我可以登录我的租户中存在的用户,并且我可以获得我需要的内容,而无需征求我的管理员同意。
当我在多租户应用中尝试相同的操作时,我使用与单租户应用相同的设置(但针对多租户进行了配置,并且我的前端使用authority: "https://login.microsoftonline.com/organizations/",
所以“组织”而不是租户ID,当我尝试用我的Active Directory用户之外的用户登录时,它要求我获得管理员同意。
我如何避免它征求我的同意?这是正确的设置还是我需要做一些不同的事情?
非常感谢!
1条答案
按热度按时间cs7cruho1#
我试图在我的环境中复制相同的内容,并得到如下错误:
我创建了一个Azure AD多租户应用,并授予了API权限:
现在,我尝试使用以下URL并以全局管理员身份登录,以授予租户范围内的管理员同意:
尝试允许用户同意应用程序如下:
请确保在企业应用程序用户设置中将以下选项设置为否:
完成上述设置后我可以使用另一个租户用户成功登录应用程序,如下所示:
参考:
Azure AD app consent experiences - Microsoft Entra