有什么方法可以使用我自己的用户名和密码页面通过Web应用程序或Web API登录到Azure Active Directory(具有AD凭据)吗?
根据我的调查,似乎没有通过编程的方式发送用户名和密码来使用Azure
AD对用户进行身份验证(如果您在Azure之外托管了一个应用程序)不知道他们是否认为这是某种安全漏洞(我不认为这强制执行https吗?)
似乎您只能通过执行代码授权来对用户进行身份验证(这意味着弹出我们的应用程序以登录到外部网站)。
最终,我想创建一个可以根据需要直接针对Azure AD进行身份验证的python flask API。我过去(使用其他身份验证系统)使用Oauth
grant_type = password来发送用户名和密码来完成此操作,但是我认为Azure
AD不支持此功能(如果我输入错了,请改正我吗?)但这似乎是它为服务身份验证提供的服务,在http://msdn.microsoft.com/zh-
CN/library/azure/dn645543.aspx之后,它不是即时消息。
如果无法在Azure外部托管登录页面,是否甚至可以在Azure内部托管登录页面,如此处示例所示:http :
//msdn.microsoft.com/zh-cn/library/azure /
bc8af4ff-66e7-4d5b-b3d4-c33d2c55d270#BKMK_Browser
没有带有密码字段的自定义登录页面..(似乎只有打开的id登录)
在资源所有者密码凭据格兰特(grant_type=password
)流
是 通过Azure的Active Directory的支持。但是,在使用它之前,请考虑是否确实需要它。如OAuth 2.0 RFC中所述:
资源所有者的密码凭据(即用户名和密码)可以直接用作获得访问令牌的授权授予。仅当资源所有者和客户端之间存在高度信任时(例如,客户端是设备操作系统或高度特权的应用程序的一部分),
并且其他授权授予类型不可 用时,才应使用凭据 (例如授权码) 。
如果您确定其他支持的流程对于您的情况绝对不可用,那么还请确保遵循RFC中的第二点建议:
即使此授予类型要求客户端直接访问资源所有者凭证,资源所有者凭证也用于单个请求,并交换访问令牌。 通过与长期访问令牌或刷新令牌交换凭据,
此授予类型可以 消除客户端存储资源所有者凭据以供将来使用的需求 。
(在两种情况下都增加了重点。)
GitHub上有一个使用此流程的.NET和ADAL示例,应该足够简单以在Python中实现:https://github.com/AzureADSamples/NativeClient-Headless-
DotNet
编辑:您可以在任何位置托管应用程序,而不必在Azure上。这适用于所有流程。
似乎您只能通过代码授权来验证用户身份(这意味着跳出我们的应用程序来登录到外部站点)。 最终,我希望创建一个python flask api,如果可能的话,它可以直接对Azure AD进行身份验证。我以前(在其他身份验证系统中)用Oauth grant_type=password发送用户名并通过,但认为Azure AD不支持这一点(如果我错了,请更正我?)我知道支持grant_type=client
问题内容: 如何以编程方式向Google进行身份验证?现在不推荐使用ClientLogin(https://developers.google.com/accounts/docs/AuthForInstalledApps),我们如何使用OAuth2对Google执行编程身份验证? 使用ClientLogin,我们可以 使用电子邮件和密码参数在https://www.google.com/accou
我如何以编程方式验证Google?既然ClientLogin(https://developers.Google.com/accounts/docs/authforinstalledApps)已被否决,那么我们如何使用OAuth2对Google执行编程身份验证呢? 使用ClientLogin,我们可以使用电子邮件和密码参数执行到https://www.google.com/accounts/Cli
null 我研究了OAuth2隐式授权,但它要求用户在成功验证后批准/拒绝应用程序。它在我的情况下不起作用,因为我同时拥有应用程序和API。 我查看了OAuth2密码授权,它并不完美,因为我需要公开client_id/client_secret。 我关注OAuth2的原因是因为该API最终将是公开的。 忘记OAuth2,在用户发布用户名/密码时手动生成access_token(在本例中,当API公
假设我们有以下部分的web安全配置:
我有一个节点项目 我试过的密码- 运行此命令时,当secret_password错误时,它会正确显示,但当它正确时,它只显示一个单词swagger,表示swagger。io链接。 我搜索了一下,但是没有得到任何关于这个的信息或者例子。我错过了什么吗?