通过Python Web API进行Azure AD身份验证
我正在构建一个PythonWebAPI,我想在其中使用Azure AD作为身份验证后端。在某些场景中,客户端需要通过API进行身份验证,以授权给某些端点。客户端本身无法直接向AD进行身份验证,因此需要使用原始凭据(用户名、密码)通过API进行身份验证。API随后将对用户进行身份验证,并接收AD令牌并将其提供给用户通过Python Web API进行Azure AD身份验证,python,azure,active-directory,azure-active-directory,azure-authentication,Python,Azure,Active Directory,Azure Active Directory,Azure Authentication,我正在构建一个PythonWebAPI,我想在其中使用Azure AD作为身份验证后端。在某些场景中,客户端需要通过API进行身份验证,以授权给某些端点。客户端本身无法直接向AD进行身份验证,因此需要使用原始凭据(用户名、密码)通过API进行身份验证。API随后将对用户进行身份验证,并接收AD令牌并将其提供给用户 因此,简而言之,我正在寻找一种方法,以编程方式使用用户名/密码对用户进行身份验证,并使用Python接收令牌。您所描述的是OAuth 2流 注意:使用此流程通常是一个非常糟糕的主意,应
因此,简而言之,我正在寻找一种方法,以编程方式使用用户名/密码对用户进行身份验证,并使用Python接收令牌。您所描述的是OAuth 2流 注意:使用此流程通常是一个非常糟糕的主意,应该考虑其他流程 您在这里所做的是将包含明文用户凭据的POST请求直接发送到身份验证端点。这样就绕过了所有可能增加的安全性 而且,当
- 授权代码流
- 隐性赠款流动
- 客户端凭据流
- 设备身份验证流
请参阅链接以帮助您选择要使用的流。您可以在此处找到与应用程序类型和拓扑相关的不同身份验证流。如果选择实现,本文将链接到认证流的协议概述 还有Azure AD的auth库,您可以使用它来执行这些流 根据您的场景,您有几个选择。如果您的客户端应用程序可以直接通过Azure AD进行身份验证,您可以查看。如果您的应用程序需要用户进行身份验证,并且可以让用户以交互方式进行身份验证,则可以查看此项。最后,如果您必须在应用程序中使用用户的凭据以编程方式进行身份验证(无需用户交互),则可以参考资源所有者密码流,但不鼓励这样做,如另一个答案中所述