[英]MS Teams Tab App is not closing back the Admin Permissions Consent window in the Desktop/ Mac Teams application
我正在構建一個 Microsoft Teams Tab 應用程序https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/what-are-tabs 。 在我的應用程序中,我需要在應用程序中打開管理員權限同意頁面,以強制 IT 管理員允許整個組織的權限, https://docs.microsoft.com/en-us/microsoftteams/app-permissions-admin -中心。 我為此使用@microsoft/teams-js
SDK。 我已經實現了流程。 它在應用程序的 web 版本上運行良好。 但是當我在 Desktop/Mac Teams 應用程序上使用該應用程序時,它會為管理員打開管理員權限同意彈出窗口/登錄 Window。 但是在授予權限或取消授予權限后,它不會關閉 window 回來。 相反,它試圖在彈出窗口 window 中繼續顯示我們應用程序的當前頁面(主頁 URL)。
這是我打開管理員權限同意 window 的代碼。
const openAdminConsentWindow = async (tenantId: string, clientId: string) => {
authentication.authenticate({
url: getAdminConsentUrl(tenantId, clientId),
width: 600,
height: 535,
successCallback:(result: string| undefined) => {
// Do something, permissions granted
},
failureCallback:(reason: string | undefined) => {
// handle the error
},
});
};
這是getAdminConsentUrl
function。
const getAdminConsentUrl = (tenantId: string, clientId: string): string => {
return `https://login.microsoftonline.com/${tenantId}/v2.0/adminconsent
?client_id=${clientId}
&scope=https://graph.microsoft.com/User.Read https://graph.microsoft.com/Team.ReadBasic.All
&redirect_uri=${window.location.origin}/index.html#/admin-permissions
&state=12345`;
};
單擊按鈕時,它將檢索所需的變量並調用 openAdminConsentWindow function。 我將我的應用程序上傳到 Teams 並在 web 瀏覽器上對其進行了測試。 它工作正常。 在我同意權限后,它會關閉 Consent window。 但是當我將應用程序上傳到 Mac/Desktop Teams 應用程序並打開同意 Window 時,它會打開同意 window,我可以選擇同意或不同意顯示以下彈出窗口的權限。
在我接受或取消后,它沒有關閉 Window,而是繼續在同一個彈出窗口中顯示我們的應用程序,而不是如下關閉它。
帶有加載消息的頁面基本上是我的應用程序的主頁。 我該如何解決?
您對 Teams Tab SSO 支持和要求的內容以及讓管理員事先同意的想法感到困惑,並且基本上在不應該像這樣混合的情況下嘗試在同一個地方進行這兩者。 如果您希望管理員預先同意,請提供該鏈接以單獨打開頁面或依賴標准 SSO 體驗,這會向管理員顯示一個復選框,允許他們“代表組織同意” - 凈效果,我想,基本上是一樣的。
這將使您能夠執行“標准”選項卡 SSO,就像在本系列中一樣: https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/tab-sso-code#add -code-for-getauthtoken 。 請注意,代碼使用microsoftTeams.authentication.getAuthToken
,它比authentication.authenticate
更易於使用和處理 SSO 更好。
您的重定向頁面應該調用 notifySucces(...) 方法。 這將調用團隊關閉登錄屏幕。
但正如另一個答案中所說,您還可以將您的應用程序標記為“需要管理員預先批准”,這將阻止您的應用程序在團隊中,直到管理員批准您的應用程序。 該頁面還可以包含其他說明,例如使用此鏈接預先批准 M365 應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.