microsoft-teams - 新的 MicrosoftTeams.authentication.getAuthToken 不是 MS Graph Bearer : token?

标签 microsoft-teams azure-ad-msal

Single Sign-On for Teams

我的通话 microsoftTeams.authentication.getAuthToken(authTokenRequest); 工作正常;也就是说,它成功返回一个成功解析到我的 Azure Active Directory (AAD) 的 token 。都好。出奇的简单。 JWT 返回正确的受众和范围(正如我在租户的 AAD 中设置的那样)

但是当我解码 JWT 时,我得到的结果似乎只是一个身份验证 token ,而不是访问 token 。

查看 Task Meow/teams.auth.service.js 处的示例似乎没有显示如何将身份验证交换为访问 token 。

我假设代码看起来像 getToken() 方法...但是因为我已经花了 10 多个工作日进行身份验证(老 ADAL 哦,我的天哪,这太可怕了)...

问题:

我想知道是否还有其他好的 MicrosoftTeams.js 身份验证/身份验证 token /MSAL 访问 token 示例?

最佳答案

无论如何,我确实通过以下方式解决了我的问题

  1. 通过 auth.service.js 的抽象遵循 TaskMeow 示例> sso.auth.service.js > teams.auth.service.js
  2. 因为我想要额外的 AAD 范围( Files.ReadWrite.All 用于访问 Teams 中的 Sharepoint Online 文件,以及 Groups.ReadWrite.All - 添加选项卡),所以我的 getToken() teams.auth.service.js中的方法类似于以下内容:
getToken() {
    if (!this.getTokenPromise) {
      this.getTokenPromise = new Promise((resolve, reject) => {
        this.ensureLoginHint().then(() => {
          this.authContext.acquireToken(
            'https://graph.microsoft.com',
            (reason, token, error) => {
              if (!error) {
                resolve(token);
              } else {
                reject({ error, reason });
              }
            }
          );
        });
      });
    }
    return this.getTokenPromise;
  }

编辑评论:

  1. Microsoft Teams 中的身份验证太困难
  2. 文档中似乎有很多“方法”
  3. 当前的“SSO”流程仍然存在缺陷,并且处于“开发者预览版”中

如果您是 SPA 开发人员,那就太难了。我(显然)不是身份验证方面的专家——所以当前的“秘诀”是必要的。

如果您想要的范围超出 Single Sign-on 中所述的默认“范围”,则尤其如此。 ...Microsoft Graph 中的大多数“好东西”都不在这些默认范围内。

关于microsoft-teams - 新的 MicrosoftTeams.authentication.getAuthToken 不是 MS Graph Bearer : token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59946836/

相关文章:

bots - 验证流程 MS 团队机器人

azure - 通过 ID 获取用户名 Azure AD

azure - PnP.Framework.AuthenticationManager 与 ConfidentialClientApplicationBuilder

azure-active-directory - Azure AD 应用程序中的knownClientApplications 不起作用

c# - 将 Bot Framework Bot 作为 Azure Web 应用程序工作,突然没有配置更改,出现 SecurityTokenSignatureKeyNotFoundException : IDX10501

c# - 获取有关谁安装了 Microsoft Teams Bot 应用的信息

c# - 在 C# 中创建 MS Teams 团队 - AddAsync 返回 null

azure - 如何删除 Azure AD MFA 以进行端到端功能自动化测试

Angular - 动态包含或删除拦截器

c# - 如何更新已从 BOT 发送给用户的自适应卡?