gpt4 book ai didi

c# - WindowsIdentity - 组和声明之间的区别

转载 作者:行者123 更新时间:2023-12-04 07:56:15 25 4
gpt4 key购买 nike

我正在尝试使用 SID-s 检查用户是否属于某些组。
我正在使用 WindowsIdentity.Groups ,但后来注意到有时它不显示用户属于管理员组。
搜索了一段时间后,我发现不是WindowsIdentity.Claims工作正常(也包括结果中的管理员组)。
我在 Claims 上找不到合适的文档.
那么,WindowsIdentity 中的组和声明之间有什么区别,为什么组不显示管理员组,而声明显示呢?
最后,我可以安全地使用 Claims 而不是 Groups 吗?
这是我的代码:

var wi = WindowsIdentity.GetCurrent();

var sidToFind = "S-1-5-32-544"; // Hardcoded the sid of administrators group for demo, but in general this is a parameter of a function on my side

// This will NOT include the sid S-1-5-32-544
var groupSids= wi.Groups
.Where(item => item.Value == sidToFind);

// This will include the sid S-1-5-32-544 and also all the other results that Groups provides.
var claimSids = wi.Claims
.Where(item => item.Value == sidToFind));

最佳答案

组和声明之间存在差异。

  • 小组与 WORKGROUP 和 AD 合作
  • 声明适用于 Active Directory 联合身份验证服务

  • 声明是检查用户身份的更复杂的方法,因为声明不仅适用于 ADFS,您还可以使用或创建其他 claims token provider
    当我们为 WindowsIdentity 调用 Groups 方法时,我们有限制:

    // Ignore disabled, logon ID, and deny-only groups.


    The role of claims

    In the claims-based identity model, claims play a pivotal role in thefederation process, They are the key component by which the outcome ofall Web-based authentication and authorization requests aredetermined. This model enables organizations to securely projectdigital identity and entitlement rights, or claims, across securityand enterprise boundaries in a standardized way.


    因此,如果您只在 NTLM 中工作 - 您可以安全地使用 Groups,但如果您希望通过联合(例如 SharePoint、Google 等)工作 - 您必须使用声明。声明包含组,但组不包含声明。
    为了回答为什么看不到某个组的问题,您需要知道它的属性和位置。正如我上面写的并给出了链接,获取组列表有限制。但是 here我找到了这个信息:


    标准识别码
    姓名
    描述


    S-1-5-32-544
    管理员
    内置组。操作系统初始安装后,该组的唯一成员是管理员帐户。当计算机加入域时,域管理员组将添加到管理员组。当服务器成为域 Controller 时,Enterprise Admins 组也被添加到 Administrators 组中。


    因此,如果您的本地管理员组被禁用 - 即使用户包含在其中,您在通过 WindowsIdentity 获取它时也看不到它。

    关于c# - WindowsIdentity - 组和声明之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66688551/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com