首页 > 解决方案 > 基本身份验证而不是 AAD(Azure Active Directory)身份验证

问题描述

我的 Microsoft Teams 应用需要访问使用基本身份验证的 REST Web 服务。

这些教程似乎只展示了如何使用 Azure Active Directory 进行身份验证:

https://docs.microsoft.com/en-us/learn/modules/embedded-web-experiences/7-exercise-implement-tab-authentication

上面的教程向用户显示了登录提示并验证了客户端。我如何为基本身份验证实现类似的东西?

编辑:我提到客户端是因为我希望团队记住登录。Web服务基本上是为了协作。所以我不能为所有用户使用同一个帐户

编辑2

为了完整起见,我包含了一个最终工作的示例客户端调用(它第一次向用户显示登录弹出窗口,就像在浏览器中一样):

var url = "https://example.com/Service.svc/Request";
var init = {credentials:"include", headers:{"Accept":"application/json"}};
fetch(url,init)
    .then(response => response.text())
    .then(data => alert(data));

标签: javascriptrestazure-active-directorybasic-authenticationmicrosoft-teams

解决方案


我假设您正在尝试访问一些需要基本身份验证的外部页面或资源。否则就没有理由尝试宣誓。Teams 似乎支持标签的基本身份验证,例如,我可以将标签指向具有基本身份验证的网站,然后会出现一个紫色弹出窗口,但如何从应用程序触发它是另一回事。假设您只是在应用程序中一直调用https://api.abc.com/whatever,一个“可能”的解决方案是在您的团队应用程序视图中的某处嵌入 iframe,并加载该域,例如https: //api.abc.com/test如果该页面需要身份验证,它应该会弹出这个紫色的身份验证窗口,您可以在其中输入“基本身份验证”。之后,团队“浏览器”

如果您不喜欢这种方式,您可以在您的应用程序中创建一个初始页面,他们在其中输入用户名和密码,接受输入,然后进行 http 调用,如下所示:https ://stackoverflow.com/a/ 57665644/13470894 ?

希望这会有所帮助

问候,


推荐阅读