Microsoft Teams SSO 身份验证方法 getAuthToken() 返回“resourceDisabled”

Wet_Pantz

我正在尝试从 Microsoft 团队获取 AuthToken,尽管按照书本进行了所有操作,但我得到了一个错误。我知道关于 SO 有一个类似的问题,但我尝试了每一个建议,仍然没有奏效。这是我的标签代码:

  useEffect(() => {
    if (inTeams === true) {
      microsoftTeams.authentication.getAuthToken({
        successCallback: (result) => {
            console.log(result)
        },
        failureCallback: function (error) {
          console.log(error)
        }
    });
    } else {
      setEntityId("Not in Microsoft Teams");
    }
  }, [inTeams]);

这是我的manifest.json.文件,我不确定“webApplicationInfo”部分是否在正确的位置:

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.11/MicrosoftTeams.schema.json",
  "manifestVersion": "1.11",
  "id": "{{APPLICATION_ID}}",
  "version": "{{VERSION}}",
  "packageName": "{{PACKAGE_NAME}}",
  "developer": {
    "name": "Vizibit",
    "websiteUrl": "https://{{PUBLIC_HOSTNAME}}",
    "privacyUrl": "https://{{PUBLIC_HOSTNAME}}/privacy.html",
    "termsOfUseUrl": "https://{{PUBLIC_HOSTNAME}}/tou.html"
  },
  "name": {
    "short": "TeamsAddIn",
    "full": "TeamsAddIn"
  },
  "description": {
    "short": "TODO: add short description here",
    "full": "TODO: add full description here"
  },
  "icons": {
    "outline": "icon-outline.png",
    "color": "icon-color.png"
  },
  "accentColor": "#D85028",
  "configurableTabs": [
    {
      "configurationUrl": "https://{{PUBLIC_HOSTNAME}}/signatorDemoTab/config.html?name={loginHint}&tenant={tid}&group={groupId}&theme={theme}",
      "canUpdateConfiguration": true,
      "scopes": [
        "team"
      ]
    }
  ],
  "staticTabs": [],
  "bots": [],
  "connectors": [],
  "composeExtensions": [],
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [
    "{{PUBLIC_HOSTNAME}}"
  ],
  "showLoadingIndicator": true,
  "webApplicationInfo": {
    "id": "{{APPLICATION_ID}}",
    "resource": "api://{{PUBLIC_HOSTNAME}}/{{APPLICATION_ID}}"
  }
}

我得到的错误:

在此处输入图像描述

这也在错误中:

在此处输入图像描述

谢谢 :)


更新:

这是我现在得到的错误。在此处输入图像描述

这就是我使用的:

  useEffect(() => {
    if (inTeams === true) {
      microsoftTeams.authentication.getAuthToken({
        successCallback: (result) => {
          const serviceRequest: AuthRequest = {
            client_id: "[CLIENTID]", 
            client_secret: "[CLIENTSECRET]",
            requested_token_use: "on_behalf_of",
            grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
            scope:
              "api://[MYNGROK].ngrok.io/[CLIENTID]",
            assertion: result,
          };

          httpClient.GetAuthenticationToken(serviceRequest).then((res) => {
            console.log(res);
          });
          microsoftTeams.appInitialization.notifySuccess();
        },
        failureCallback: function (error) {
          console.log(error);
        },
      });
    } else {
      setEntityId("Not in Microsoft Teams");
    }
  }, [inTeams]);
 "error_description": "AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app '[CLIENTID]'.\r\nTrace ID: 2dc1bddf-a15c-45a8-9346-4d2b83011600\r\nCorrelation ID: cf790d06-19e5-49c4-a79c-364f044d7ee8\r\nTimestamp: 2022-03-31 11:39:59Z",

我的客户密码是正确的,我不知道为什么会出现这个错误。


更新:仍然得到相同的 CORS 错误,即使我设法在邮递员中解决它,仍然无法在 React axios 中解决。

         var formData = new URLSearchParams();
          formData.append("client_id", "[CLIENT_ID]");
          formData.append(
            "client_secret",
            "[CLIENT_SECRET]"
          );
          formData.append("requested_token_use", "on_behalf_of");
          formData.append(
            "grant_type",
            "urn:ietf:params:oauth:grant-type:jwt-bearer"
          );
          formData.append(
            "scope",
            "api://[NGROK].ngrok.io/[CLIENT_ID]/scope"
          );
          formData.append("assertion", result);

          axios.post("https://login.microsoftonline.com/common/oauth2/v2.0/token", formData);
吉塞诺希尔顿酒店

我不知道您正在做哪些文档(即您是“通过”哪本书),因为其中一些(许多)非常古老,需要完全重写。最好的来源是这个:https ://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso?tabs=dotnet

这是一个很棒的视频概述:https ://www.youtube.com/watch?v= kruUnaZgQaY 这是一个示例(涵盖节点和 dotnet):https ://github.com/pnp/teams-dev-samples/tree /main/samples/tab-sso

也就是说,您发布的底部屏幕截图中似乎显示了错误 - 您需要获得该应用程序的管理员同意。在此处查看更多信息:https ://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso?tabs=dotnet#tenant-admin-consent

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Microsoft身份验证库(MSAL)从不从Android上的AcquireTokenAsync()返回

在Python Flask中从Microsoft Teams bot验证HMAC

Microsoft OAuth2身份验证未返回刷新令牌

Microsoft Dynamics CRM 2013“用户身份验证失败!”,ADFS kerberosmixed不返回任何响应

列出Microsoft Teams选项卡总是返回404

使用Django REST框架的SAML SSO身份验证

使用SSO对Outlook WEB加载项进行身份验证

sp启动saml sso身份验证

Microsoft Teams身份验证:无法在Teams Bot(V4 SDK)中检索令牌

我应该如何在Django应用程序中使用AAD实现用户SSO(使用Django Microsoft身份验证后端模块)?

Microsoft Teams Bot-链接展开验证流程

从SSIS发送Microsoft Teams聊天消息的方法

在Microsoft Teams Bot中进行身份验证后如何获取用户访问令牌?

Microsoft Teams订阅

Microsoft Teams订阅电话

如何将FireBase身份验证用于SSO

Microsoft Teams Bot身份验证黑屏

在AccountManager..getAuthToken之后,如何将该令牌发送到其提供者以进行身份验证?

Sonar 6.7 SSO - 如何触发身份验证?

需要借助 Windows 身份验证在 PHP 中集成 SSO

Microsoft Azure 翻译 API 身份验证方法

使用 Python 的 Microsoft Sharepoint 身份验证

aws eks 和 aws sso RBAC 身份验证问题

使用 AAD 身份验证的 Microsoft Teams 传出 Webhook

如何使用 Microsoft Share To Teams 按钮对用户进行身份验证?

Microsoft Teams 对话存储

Microsoft Teams HttpPost Action 打印 http 返回狀態

从 Microsoft Teams 获取 SSO 身份验证令牌的问题

使用 Azure SAML SSO 进行 Firebase 身份验证