在我们寻求与Azure Active Directory结合创建自定义登录页面时,我们希望在向AD发送用户和密码时使用代码流(如MS在自己的登录页面中所做的那样)。
目前,在我们的登录页面中,我们使用AquireToken和UserCredential类来记录用户,但这只会给我们访问和刷新。
UserCredential uc = new UserCredential(userName, password);
result = authContext.AcquireToken(resource, clientId, uc);
微软已经提到使用UserCredential登录用户是一个坏主意(安全性),但没有提到任何确切的原因。此请求是从Web服务器到AD服务器的,因此我在这里看不到任何安全问题。他们确实希望我们购买Azure AD的高级版本,但是它的价格过高,计算数百万用户。
欢迎任何建议。提前谢谢。
答案 0 :(得分:0)
让应用程序在自己的用户界面中收集用户凭据是一种糟糕的安全措施,并且会破坏可用性。以下是一些原因:
希望这有帮助, 爱丽儿。
答案 1 :(得分:0)
如果您的应用支持除Azure AD或Microsoft帐户(以前的Live ID)之外的其他身份,那么在短期内您应该在应用中显示其他登录按钮。更长期:我们正在努力在Azure AD上添加对社交IdP的支持(这些是我们将其带入Azure AD的ACS功能)。
Re:使用任何电子邮件地址作为登录字符串:你能澄清一下你的意思吗?您是否尝试支持应用程序的本地凭据(而不是依赖Azure AD)?如果你分享一些你所经历的经验,我会很乐意提供反馈。您可以通过Microsoft.com上的myfirstname.mylastname与我联系。