Gau*_*ssZ 10 .net c# authentication kerberos active-directory
是否可以存储Kerberos票证以便以后使用它来模拟用户?
我有一个场景,用户直接调用外部系统来处理一些数据.外部系统依赖于在AD中正确模拟/验证用户.
现在,调用系统必须进行更改,以便队列位于用户和外部系统之间,并且队列中的工作由Windows服务从该队列移交给外部系统.此服务需要模拟用户,以便外部系统正确处理用户权限.
鉴于我无法更改外部系统并且无法在队列中存储用户名和密码,我可以在用户将新工作项添加到队列时保存Kerberos票证,然后在服务交换时模拟用户数据到外部系统.我怎么会在C#中做到这一点?
也许可以保存它,但我认为这张票的寿命很短。不幸的是,您肯定会遇到Kerberos 双跳问题,即服务之间的身份验证失败,除非您在网络上正确设置了委派。这将要求您在活动目录上设置一些 SPN(服务主体名称),以告诉服务器相互信任。
我从未尝试过保存 Kerberos 票证任何时间,因此即使在与委派和 SPN 进行斗争之后,它也可能无法工作。
这里有一篇关于设置IIS7 来处理双跳 Kerberos 票证的快速文章,以及另一篇关于从网络角度处理它的文章。
我希望我能提供更多帮助,并发布代码而不是文章 - 但当您调查时,您会发现这是 Kerberos 身份验证的祸根。祝你好运!