azure - 如何为 SSO 配置 Azure Active Directory?

标签 azure azure-active-directory active-directory microsoft-graph-api

对于一个客户,我需要设置 Azure Active Directory,因为他希望他的员工和客户通过 Microsoft SSO 登录。我完全没有 AD 经验,并且对文档有点不知所措。 “客户”都是B2B客户,因此没有个人账户。这是一个 TypeScript 项目。

请让我知道这个想法是否正确: “客户希望他的员工和外部公司能够登录,因此我需要使用 Multi-Tenancy 应用程序,如果他想手动添加具有访问权限的用户,他可以使用单个租户。”

我们还需要一种方法来读取通过 SSO 登录的用户所在的组。稍后我们会使用这些组为他们分配角色。

因此,用户应该能够通过他们的 Microsoft 帐户登录并允许我们读取他们所在的组。

然后,我们获取访问 token 和 id token 并将它们发送到我们的后端,我们在后端获取用户的组。

我设置了两种不同的 Active Directory 应用程序,一种用于单租户,一种用于 Multi-Tenancy (无个人帐户)。

然后,我将其设置为允许在身份验证中使用访问 token 和 ID token ,添加了一些 token 声明以获取电子邮件,并添加了 Group.Read.All 的 API 权限,以及 GroupMember.Read.All。我有一个虚拟前端,允许我登录并为我提供访问 token 和 ID token 。

当我登录到单租户应用程序时,一切正常,我可以使用租户中存在的用户登录,并且无需征求管理员同意即可获得所需内容。

当我对 Multi-Tenancy 尝试相同的操作时,我使用与单租户应用程序相同的设置(但配置为 Multi-Tenancy 并且我的前端正在使用

权限:“https://login.microsoftonline.com/organizations/”,

所以“组织”而不是租户 ID,当我尝试使用 Active Directory 用户之外的用户登录时,它会要求我获得管理员同意。

如何避免它询问我的同意? 这是正确的设置还是我需要做一些不同的事情?

非常感谢!

These are the permissions I added to the API

最佳答案

我尝试在我的环境中重现相同的内容,但收到如下错误:

enter image description here

我创建了一个Azure AD Multi-Tenancy 应用程序并授予 API 权限同意:

enter image description here

现在,我尝试使用以下 URL 并以全局管理员身份登录来授予租户广泛的管理员同意:

https://login.microsoftonline.com/organizations/adminconsent?client_id=ClientID

enter image description here

尝试允许用户同意应用程序,如下所示:

转到 Azure 门户 -> 企业应用程序 -> 用户设置 -> 转到同意和权限

enter image description here

确保在企业应用程序用户设置中将以下选项设置为:

enter image description here

完成上述设置后我可以成功使用另一个租户用户登录应用程序,如下所示:

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

enter image description here

enter image description here

引用:

Azure AD app consent experiences - Microsoft Entra

关于azure - 如何为 SSO 配置 Azure Active Directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75920607/

相关文章:

database - 为文件共享和从教室向所有学生分发文件找出一个长期的解决方案

javascript - Azure 计算机视觉 : Recognize Printed Text

c# - 个人用户的 Azure Active Directory 组成员身份检查

azure - 在 Azure 上解析 - 我收到 "Error: Unauthorized"

azure - 将 AAD 连接到具有以下功能的现有 AKS

azure-active-directory - 代币发行(AADSTS50013 : Assertion contains an invalid signature)

c# - 枚举 Active Directory 组成员(嵌套),包括域用户(主要组)

java - 使用 Unbound Id 更改 "active directory"中的帐户到期日期?

azure - 验证 Azure 广告访问 token 时签名无效

azure - 如何保护 Azure Functions 后端存储帐户的安全?