gpt4 book ai didi

django - 在 Django 应用程序中集成 ADFS 2.0 身份验证的最佳方法

转载 作者:行者123 更新时间:2023-12-04 23:22:43 24 4
gpt4 key购买 nike

我需要在 Django 应用程序中使用 Active Directory 联合身份验证服务 (ADFS) 身份验证。我将创建一个身份验证后端,但有人会推荐我使用哪种工具使其尽可能快,还是从头开始实现身份验证会更好?

我阅读了微软网站上的一些文章,并检查了:

  • http://claimsid.codeplex.com/
  • http://msdn.microsoft.com/en-us/library/ff359102.aspx

  • 但即使他们解释了一些关于 ADFS 和 SSO 的核心概念和想法,我认为这些示例更侧重于 .NET 堆栈。

    最佳答案

    在 .NET 中编写一个基本客户端并嗅探流量将为您提供所有必要的线索来实际实现 中的流程。任何 技术。

    基本上,您的 django 应用程序有一个端点 adfs 用于返回。您在 adfs 中注册端点(如 https://myapp.com/authgateway )。

    然后,您的应用程序通过重定向到 https://adfs.address/adfs/ls?wa=wsignin1.0&wtrealm=https://myapp.com/authgateway 来初始化流。

    Adfs 选择请求并验证凭据。然后它创建一个 SAML token 并使用包含该 token 的 POST 请求重定向回您的应用程序。

    然后是困难的部分,SAML token 是一个可用于建立本地用户 session 的纯 xml。其中一个声明包含由 adfs 提供的用户名,其他声明可以包含角色、电子邮件以及您在 adfs 端配置的任何内容。

    但是,为了防止锻造,您需要验证 token 。验证包括检查 XMLdsig 签名并验证签名证书指纹是否与 adfs 签名证书的指纹匹配。根据您对 x509 证书和 xml 验证的了解程度,这可能容易或困难。尝试在 Django 社区中找到任何支持。

    无论如何,如您所见,基本流程很简单,就是两个重定向的问题,从应用程序到 adfs 的 302 和从 adfs 返回到应用程序的 POST。尽管我们每天都在 .net 中执行此操作,但我们的合作伙伴在我们的指导下在 php/java 中执行此操作。

    关于django - 在 Django 应用程序中集成 ADFS 2.0 身份验证的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19930603/

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