簡體   English   中英

獲取有關誰安裝了 Microsoft Teams Bot 應用的信息

[英]Get information about who installed a Microsoft Teams Bot App

我們已經使用 Microsoft Bot Framework(C# 和 Azure)構建了一個機器人應用程序,並使用了 dev.botframework.com 上的 Microsoft Teams Channel 來使用側載在 MSTeams 上啟用我們的機器人,但是這個機器人將是一個商業機器人,所以我們需要一種使其僅對我們的客戶可用的方法。

  1. 在 ms 團隊上安裝機器人應用程序期間,是否會在有人安裝我們的應用程序時引發任何事件,我們可以在其中掛鈎重定向 URL 或回調以接收有關“誰安裝了我們的應用程序(用戶信息、他們的團隊信息)”的信息,他們的公司信息等)”我遇到了一個商業應用程序Microsoft Teams Jira Connector,但無法弄清楚他們如何將其商業化。

  2. 安裝應從我們的應用程序中啟動,以便我們可以將許可、客戶和團隊/租戶詳細信息映射到一起,以便管理員代表他們的公司購買。

到目前為止我所嘗試的,

在機器人代碼端,我們得到了tenant_id所以當機器人被添加/安裝到微軟團隊時,我正在搜索以檢索類似的信息,但我找不到太多。

認為 OAuth 可能會有所幫助,因為 Slack 使用它來提供對用戶工作區信息的訪問,我已經嘗試了OAuth 2.0v2.0 協議 OAuth 2.0我得到了一個access_token但沒有看到任何 API 可以調用以獲得團隊/租戶信息。

編輯:如果我可以使用 OAuth 和 API 獲取tenant_id 或他們的 ms 團隊信息,過程將變得簡單,如下所示

  1. 在我們的網站中,我們將要求用戶單擊按鈕以使用 OAuth 授予對他們的 ms 團隊的訪問權限,並使用 access_token 我們將獲取他們的 ms 團隊信息並將其存儲在我們端映射到特定公司。

  2. 當用戶發送消息時,我們會要求他們點擊卡片中的身份驗證/激活許可證按鈕,如果來自用戶的團隊信息與我們數據庫中的記錄匹配,則他是有效用戶,我們激活許可證。

Microsoft Graph API 在這里有用嗎? MS 團隊開發人員 API似乎正在開發中

請就此提出您的建議。

為了在我們的系統上沒有個人用戶帳戶但沒有的概念時進行身份驗證。 公司的許可證和管理員用戶帳戶。 可以遵循以下方法,

  1. 在我們的網站中,我們將要求公司管理員單擊按鈕以使用 OAuth 2.0 授予對他們的 ms 團隊的訪問權限,並使用檢索到的id_token (JWT 令牌)我們將獲取他們的 ms 團隊信息並將其存儲在我們端映射到特定公司。

  2. 當用戶發送消息時,我們會要求他們單擊卡片中的身份驗證/激活許可證按鈕,如果來自用戶的團隊信息與我們數據庫中的記錄匹配,則他是有效用戶,我們激活許可證。

無需個人用戶帳戶即可與 Microsoft Teams 集成

步驟 1 確保我們的數據庫中有我們的客戶信息(租戶 ID)(這將根據來自實際機器人用戶的信息進行驗證 - 他們向我們的機器人發送消息時的租戶 ID)

第 2 步通過租戶 ID 驗證並激活用戶的許可證。

做OAuth 2.0流程可以參考AuthBot示例代碼,也可以參考OAuth 2.0 & v2.0 Protocols OAuth 2.0

當用戶授予訪問權限時,我們將獲得一個授權代碼,可用於請求訪問令牌,我們可以從響應中獲取id_token (JWT 令牌)並將其解碼以檢索用戶信息https://jwt.io/

檢查OAuth 2.0 中的“成功響應”和“JWT 令牌聲明”部分

但是,我看到比沒有個人用戶帳戶的專業人士更多的缺點,我建議擁有個人用戶帳戶。 在我們提出“擁有個人帳戶”與“沒有”的利弊之后,產品所有者接受了擁有個人用戶帳戶。

由於評論的文本長度限制,請原諒我在這里生成答案,感謝您的理解。

正如@bill-bliss-msft 在評論中提到的,在https://msdn.microsoft.com/en-us/microsoft-teams/botevents#bot-or-user- added-to-a-team ,但不包含用戶信息。

對於您的場景,常見的想法是在購買的用戶使用您的機器人時對其進行身份驗證。 https://github.com/MicrosoftDX/AuthBot/tree/master/AuthBot 上有一個示例。 您可以在 bot 客戶端中獲取access_token並將其設置為針對您的服務器請求的身份驗證標頭。

access_token是 Auth 2.0 流程下的 JWT 令牌,因此您可以直接在后端服務器中解密此令牌以獲取有關已驗證用戶的信息。

請參閱https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-tokens了解access_token for Azure AD 中的聲明。 您可以利用tenant ID屬性對團隊或組購買的用戶進行身份驗證。 如果您不使用 Azure AD,我認為其他 Auth 2.0 服務器中也會有類似的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM