Невозможно использовать платформу идентификации в пользовательской вкладке 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. Нажмите Сохранить.

Другие вопросы по тегам