Невозможно использовать платформу идентификации в пользовательской вкладке iFrame/MS Teams
Я пытаюсь использовать платформу идентификации для аутентификации пользователей в моем собственном приложении, которое будет использоваться внутри команд MS.
Мне известно, что команды используют iFrame для загрузки пользовательских приложений. Поэтому я следовал методу, указанному в FAQ - Q5. Я использовал свойство redirectUri в MSALConfig. Я использую индексный файл, предоставленный MS для тестирования, вызывая его внутри тега iFrame.
В обоих случаях acquTokenSilent и acquTokenPopup он застревает во всплывающем окне, загружающем страницу перенаправления. Ни проверка подлинности не завершена, ни всплывающее окно не закрыто.
1 ответ
Эта проблема была решена путем изменения реализации для использования новой функции - SSO вместо библиотеки MSAL.
Следующие шаги могут разблокировать сценарий вкладки "Команды" для настольных и мобильных приложений.
Ручные шаги
Шаг 1. Убедитесь, что вы одобрили запросы на новой странице управления разрешениями API на сайте администрирования клиентов. Это создает секрет клиента за кулисами.
Шаг 2. Перейти к -> https://aad.portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview
Шаг 3. Нажмите на принципале расширяемости клиента SharePoint Online
Шаг 4. Нажмите Манифест в левом меню
Шаг 5. Скопируйте идентификатор из массива oAuth2Permission
"oauth2Permissions": [
{
"adminConsentDescription": "Allow the application to access SharePoint Online Client Extensibility Web Application Principal on behalf of the signed-in user.",
"adminConsentDisplayName": "Access SharePoint Online Client Extensibility Web Application Principal",
"id": "2143704b-186b-4210-b555-d03aa61823cf",
"isEnabled": true,
"lang": null,
"origin": "Application",
"type": "User",
"userConsentDescription": "Allow the application to access SharePoint Online Client Extensibility Web Application Principal on your behalf.",
"userConsentDisplayName": "Access SharePoint Online Client Extensibility Web Application Principal",
"value": "user_impersonation"
}
],
Шаг 6. Замените запись "preAuthorizedApplications" следующим json
"preAuthorizedApplications": [
{
"appId": "00000003-0000-0ff1-ce00-000000000000",
"permissionIds": [
"ID OF THE USER_IMPERSONATION Scope"
]
}
],
Шаг 7. Нажмите Сохранить.