gpt4 book ai didi

python - 使用 Azure Active Directory 进行身份验证 - 如何以编程方式接受用户凭据

转载 作者:太空狗 更新时间:2023-10-30 00:27:58 25 4
gpt4 key购买 nike

有没有办法使用我自己的用户名和密码页面(托管在 Azure 外部)通过 Web 应用程序或 Web api 登录到 Azure Active Directory(使用 AD 凭据)?

根据我的调查,似乎没有编程方式可以发送用户名和密码来使用 Azure AD 对用户进行身份验证(如果您在 Azure 外部托管应用程序)不确定他们是否认为这是某种安全漏洞(我不认为 https 是强制执行的?)

似乎您只能通过代码授权来验证用户身份(这意味着弹出我们的应用程序以登录到外部站点)。

最终,我想创建一个 python Flask api,如果可能的话,它可以直接针对 Azure AD 进行身份验证。我过去(使用其他身份验证系统)使用 Oauth grant_type=password 发送用户名和密码来完成此操作,但不认为 Azure AD 支持此操作(如果我错了,请纠正我?)我知道支持 grant_type=client_credentials ,但这似乎是它对服务身份验证的服务,这并不完全是我想要的 http://msdn.microsoft.com/en-us/library/azure/dn645543.aspx

如果无法为此在 Azure 外部托管一个登录页面,是否可以在 Azure 内部创建一个登录页面,如下所示: http://msdn.microsoft.com/en-us/library/azure/bc8af4ff-66e7-4d5b-b3d4-c33d2c55d270#BKMK_Browser没有带有密码字段的自定义登录页面..(似乎只有开放 ID 登录)

最佳答案

Resource Owner Password Credentials Grant (grant_type=password) 流 Azure Active Directory 支持。但是,在使用它之前,请考虑是否确实需要它。正如 OAuth 2.0 RFC 中所述:

The resource owner password credentials (i.e., username and password) can be used directly as an authorization grant to obtain an access token. The credentials should only be used when there is a high degree of trust between the resource owner and the client (e.g., the client is part of the device operating system or a highly privileged application), and when other authorization grant types are not available (such as an authorization code).

如果您确定其他受支持的流程肯定不适合您的场景,那么也请务必遵循 RFC 中的第二条建议:

Even though this grant type requires direct client access to the resource owner credentials, the resource owner credentials are used for a single request and are exchanged for an access token. This grant type can eliminate the need for the client to store the resource owner credentials for future use, by exchanging the credentials with a long-lived access token or refresh token.

(在两种情况下都添加了强调。)

GitHub 上有一个使用此流程的 .NET 和 ADAL 示例,并且它应该足够简单,可以在 Python 中实现:https://github.com/AzureADSamples/NativeClient-Headless-DotNet

编辑:您可以将应用程序托管在任何您想要的地方,无需位于 Azure 上。这适用于所有流。

关于python - 使用 Azure Active Directory 进行身份验证 - 如何以编程方式接受用户凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794759/

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