如何根据域外的 AD 组成员身份授权用户?

How to authorise a User based on AD group membership from outside the domain?

我有一个 PHP Web 应用程序 运行 在域外的服务器上,我希望能够将某些管理功能锁定到域中某些组的成员Active Directory,因此对财务部分的访问仅限于 'Finance' 组等的成员。这似乎是 Microsoft Identity Platform 的设计目标,但我看不到一种简单的方法来获得简单的“用户是 X 组的成员”类型的响应,而不是全面登录过程。如果我需要做一个 sign-in -> group membership check 方法,那很好,我很乐意通过 OAuth 往返发送用户登录他们的 Windows 帐户并验证他们是否乐意与应用共享数据。

我认为这里的部分问题是 Windows 有一段时间没有处理这部分内容,我不知道要搜索什么才能找到有用的文档。

是否有一种简单的方法可以向组织的 Active Directory 发送请求,询问“此用户是否是 {group} 的成员”并获得确认或拒绝的响应?

您可以调用 Microsoft Graph API: List memberOf 来检查用户是直接成员的组和目录角色。

GET https://graph.microsoft.com/v1.0/users/{id}/memberOf

您需要 get an Microsoft Graph access token 才能调用 Microsoft Graph API。

还有另一种更简单的方法可以根据 AD 组成员身份授权用户。只需在您的令牌中包含 groupMembershipClaims 声明并在您登录后检查它。请参阅此 了解更多详细信息。