@microsoft/teamsfx-core 2.0.6-alpha.e73e76fb5.0 → 2.0.6-alpha.e92fb7848.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/common/constants.d.ts +3 -2
- package/build/common/constants.d.ts.map +1 -1
- package/build/common/constants.js +3 -2
- package/build/common/constants.js.map +1 -1
- package/build/common/deps-checker/checkerFactory.d.ts.map +1 -1
- package/build/common/deps-checker/checkerFactory.js +3 -0
- package/build/common/deps-checker/checkerFactory.js.map +1 -1
- package/build/common/deps-checker/constant/telemetry.d.ts +1 -0
- package/build/common/deps-checker/constant/telemetry.d.ts.map +1 -1
- package/build/common/deps-checker/constant/telemetry.js +1 -0
- package/build/common/deps-checker/constant/telemetry.js.map +1 -1
- package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts +17 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts.map +1 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.js +47 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.js.map +1 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts +16 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts.map +1 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.js +53 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.js.map +1 -0
- package/build/common/deps-checker/depsChecker.d.ts +6 -1
- package/build/common/deps-checker/depsChecker.d.ts.map +1 -1
- package/build/common/deps-checker/depsChecker.js +6 -1
- package/build/common/deps-checker/depsChecker.js.map +1 -1
- package/build/common/deps-checker/index.d.ts +2 -0
- package/build/common/deps-checker/index.d.ts.map +1 -1
- package/build/common/deps-checker/index.js +2 -0
- package/build/common/deps-checker/index.js.map +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.d.ts +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -1
- package/build/common/deps-checker/internal/testToolChecker.d.ts +14 -3
- package/build/common/deps-checker/internal/testToolChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/testToolChecker.js +178 -70
- package/build/common/deps-checker/internal/testToolChecker.js.map +1 -1
- package/build/common/deps-checker/internal/vxTestAppChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/vxTestAppChecker.js +3 -45
- package/build/common/deps-checker/internal/vxTestAppChecker.js.map +1 -1
- package/build/common/deps-checker/util/downloadHelper.d.ts +15 -0
- package/build/common/deps-checker/util/downloadHelper.d.ts.map +1 -0
- package/build/common/deps-checker/util/downloadHelper.js +59 -0
- package/build/common/deps-checker/util/downloadHelper.js.map +1 -0
- package/build/common/featureFlags.d.ts +3 -3
- package/build/common/featureFlags.d.ts.map +1 -1
- package/build/common/featureFlags.js +11 -12
- package/build/common/featureFlags.js.map +1 -1
- package/build/common/local/constants.d.ts +1 -0
- package/build/common/local/constants.d.ts.map +1 -1
- package/build/common/local/constants.js +1 -0
- package/build/common/local/constants.js.map +1 -1
- package/build/common/local/localCertificateManager.d.ts +5 -4
- package/build/common/local/localCertificateManager.d.ts.map +1 -1
- package/build/common/local/localCertificateManager.js +9 -2
- package/build/common/local/localCertificateManager.js.map +1 -1
- package/build/common/local/packageJsonHelper.d.ts +0 -1
- package/build/common/local/packageJsonHelper.d.ts.map +1 -1
- package/build/common/local/packageJsonHelper.js +1 -29
- package/build/common/local/packageJsonHelper.js.map +1 -1
- package/build/common/m365/packageService.d.ts +1 -0
- package/build/common/m365/packageService.d.ts.map +1 -1
- package/build/common/m365/packageService.js +85 -7
- package/build/common/m365/packageService.js.map +1 -1
- package/build/common/projectTypeChecker.d.ts +38 -0
- package/build/common/projectTypeChecker.d.ts.map +1 -0
- package/build/common/projectTypeChecker.js +217 -0
- package/build/common/projectTypeChecker.js.map +1 -0
- package/build/common/samples.d.ts +13 -7
- package/build/common/samples.d.ts.map +1 -1
- package/build/common/samples.js +83 -49
- package/build/common/samples.js.map +1 -1
- package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +1 -1
- package/build/common/spec-parser/adaptiveCardGenerator.js +2 -4
- package/build/common/spec-parser/adaptiveCardGenerator.js.map +1 -1
- package/build/common/spec-parser/constants.d.ts +23 -14
- package/build/common/spec-parser/constants.d.ts.map +1 -1
- package/build/common/spec-parser/constants.js +23 -15
- package/build/common/spec-parser/constants.js.map +1 -1
- package/build/common/spec-parser/index.browser.d.ts +6 -0
- package/build/common/spec-parser/index.browser.d.ts.map +1 -0
- package/build/common/spec-parser/index.browser.js +16 -0
- package/build/common/spec-parser/index.browser.js.map +1 -0
- package/build/common/spec-parser/index.d.ts +5 -0
- package/build/common/spec-parser/index.d.ts.map +1 -0
- package/build/common/spec-parser/index.js +16 -0
- package/build/common/spec-parser/index.js.map +1 -0
- package/build/common/spec-parser/interfaces.d.ts +37 -3
- package/build/common/spec-parser/interfaces.d.ts.map +1 -1
- package/build/common/spec-parser/interfaces.js +3 -3
- package/build/common/spec-parser/interfaces.js.map +1 -1
- package/build/common/spec-parser/manifestUpdater.d.ts +4 -4
- package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -1
- package/build/common/spec-parser/manifestUpdater.js +49 -110
- package/build/common/spec-parser/manifestUpdater.js.map +1 -1
- package/build/common/spec-parser/specFilter.d.ts +1 -1
- package/build/common/spec-parser/specFilter.d.ts.map +1 -1
- package/build/common/spec-parser/specFilter.js +2 -2
- package/build/common/spec-parser/specFilter.js.map +1 -1
- package/build/common/spec-parser/specParser.browser.d.ts +46 -0
- package/build/common/spec-parser/specParser.browser.d.ts.map +1 -0
- package/build/common/spec-parser/specParser.browser.js +139 -0
- package/build/common/spec-parser/specParser.browser.js.map +1 -0
- package/build/common/spec-parser/specParser.d.ts +11 -11
- package/build/common/spec-parser/specParser.d.ts.map +1 -1
- package/build/common/spec-parser/specParser.js +100 -113
- package/build/common/spec-parser/specParser.js.map +1 -1
- package/build/common/spec-parser/utils.d.ts +18 -5
- package/build/common/spec-parser/utils.d.ts.map +1 -1
- package/build/common/spec-parser/utils.js +304 -41
- package/build/common/spec-parser/utils.js.map +1 -1
- package/build/common/telemetry.d.ts +23 -2
- package/build/common/telemetry.d.ts.map +1 -1
- package/build/common/telemetry.js +40 -1
- package/build/common/telemetry.js.map +1 -1
- package/build/common/templates-config.json +2 -2
- package/build/common/tools.d.ts.map +1 -1
- package/build/common/tools.js +1 -1
- package/build/common/tools.js.map +1 -1
- package/build/component/configManager/lifecycle.d.ts +1 -0
- package/build/component/configManager/lifecycle.d.ts.map +1 -1
- package/build/component/configManager/lifecycle.js +17 -5
- package/build/component/configManager/lifecycle.js.map +1 -1
- package/build/component/configManager/validator.d.ts.map +1 -1
- package/build/component/configManager/validator.js +2 -3
- package/build/component/configManager/validator.js.map +1 -1
- package/build/component/coordinator/index.d.ts +2 -1
- package/build/component/coordinator/index.d.ts.map +1 -1
- package/build/component/coordinator/index.js +11 -10
- package/build/component/coordinator/index.js.map +1 -1
- package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
- package/build/component/developerPortalScaffoldUtils.js +32 -0
- package/build/component/developerPortalScaffoldUtils.js.map +1 -1
- package/build/component/driver/aad/create.js +1 -1
- package/build/component/driver/aad/create.js.map +1 -1
- package/build/component/driver/aad/error/invalidFieldInManifestError.js +1 -1
- package/build/component/driver/aad/error/invalidFieldInManifestError.js.map +1 -1
- package/build/component/driver/aad/permissions/index.d.ts +3 -0
- package/build/component/driver/aad/permissions/index.d.ts.map +1 -1
- package/build/component/driver/aad/permissions/index.js +34 -1
- package/build/component/driver/aad/permissions/index.js.map +1 -1
- package/build/component/driver/aad/permissions/permissions.json +42 -42
- package/build/component/driver/aad/update.d.ts +1 -0
- package/build/component/driver/aad/update.d.ts.map +1 -1
- package/build/component/driver/aad/update.js +19 -17
- package/build/component/driver/aad/update.js.map +1 -1
- package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
- package/build/component/driver/aad/utility/aadAppClient.js +9 -9
- package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
- package/build/component/driver/aad/utility/constants.js +1 -1
- package/build/component/driver/aad/utility/constants.js.map +1 -1
- package/build/component/driver/add/addWebPart.d.ts.map +1 -1
- package/build/component/driver/add/addWebPart.js +2 -0
- package/build/component/driver/add/addWebPart.js.map +1 -1
- package/build/component/driver/add/interface/AddWebPartArgs.d.ts +4 -0
- package/build/component/driver/add/interface/AddWebPartArgs.d.ts.map +1 -1
- package/build/component/driver/apiKey/create.d.ts +17 -0
- package/build/component/driver/apiKey/create.d.ts.map +1 -0
- package/build/component/driver/apiKey/create.js +228 -0
- package/build/component/driver/apiKey/create.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.js +22 -0
- package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.js +22 -0
- package/build/component/driver/apiKey/error/apiKeyDomainInvalid.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.js +21 -0
- package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.js.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.d.ts +5 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.d.ts.map +1 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.js +21 -0
- package/build/component/driver/apiKey/error/apiKeyNameTooLong.js.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.d.ts +7 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.d.ts.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.js +5 -0
- package/build/component/driver/apiKey/interface/createApiKeyArgs.js.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.d.ts +7 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.d.ts.map +1 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.js +10 -0
- package/build/component/driver/apiKey/interface/createApiKeyOutputs.js.map +1 -0
- package/build/component/driver/apiKey/utility/constants.d.ts +10 -0
- package/build/component/driver/apiKey/utility/constants.d.ts.map +1 -0
- package/build/component/driver/apiKey/utility/constants.js +15 -0
- package/build/component/driver/apiKey/utility/constants.js.map +1 -0
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts +3 -2
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +5 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts +5 -0
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +27 -6
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
- package/build/component/driver/devTool/installDriver.d.ts +2 -1
- package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
- package/build/component/driver/devTool/installDriver.js +5 -2
- package/build/component/driver/devTool/installDriver.js.map +1 -1
- package/build/component/driver/index.d.ts +1 -0
- package/build/component/driver/index.d.ts.map +1 -1
- package/build/component/driver/index.js +1 -0
- package/build/component/driver/index.js.map +1 -1
- package/build/component/driver/script/scriptDriver.d.ts +12 -7
- package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
- package/build/component/driver/script/scriptDriver.js +52 -23
- package/build/component/driver/script/scriptDriver.js.map +1 -1
- package/build/component/driver/teamsApp/clients/appStudioClient.d.ts +13 -0
- package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
- package/build/component/driver/teamsApp/clients/appStudioClient.js +38 -0
- package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
- package/build/component/driver/teamsApp/constants.d.ts +2 -0
- package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
- package/build/component/driver/teamsApp/constants.js +2 -0
- package/build/component/driver/teamsApp/constants.js.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.js +26 -6
- package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.d.ts +44 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.d.ts.map +1 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.js +21 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.js.map +1 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.d.ts +15 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.d.ts.map +1 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.js +5 -0
- package/build/component/driver/teamsApp/interfaces/ApiSecretRegistrationClientSecret.js.map +1 -0
- package/build/component/driver/teamsApp/interfaces/appdefinitions/IValidationResult.d.ts +1 -1
- package/build/component/driver/teamsApp/interfaces/appdefinitions/IValidationResult.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.d.ts +1 -0
- package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.js +9 -9
- package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/teamsappMgr.d.ts +20 -0
- package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -0
- package/build/component/driver/teamsApp/teamsappMgr.js +278 -0
- package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -0
- package/build/component/driver/teamsApp/validate.d.ts.map +1 -1
- package/build/component/driver/teamsApp/validate.js +7 -2
- package/build/component/driver/teamsApp/validate.js.map +1 -1
- package/build/component/driver/teamsApp/validateAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/validateAppPackage.js +49 -15
- package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
- package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/generator.js +47 -30
- package/build/component/generator/copilotPlugin/generator.js.map +1 -1
- package/build/component/generator/copilotPlugin/helper.d.ts +4 -2
- package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/helper.js +105 -20
- package/build/component/generator/copilotPlugin/helper.js.map +1 -1
- package/build/component/generator/error.d.ts +5 -8
- package/build/component/generator/error.d.ts.map +1 -1
- package/build/component/generator/error.js +16 -16
- package/build/component/generator/error.js.map +1 -1
- package/build/component/generator/generator.d.ts +5 -1
- package/build/component/generator/generator.d.ts.map +1 -1
- package/build/component/generator/generator.js +26 -27
- package/build/component/generator/generator.js.map +1 -1
- package/build/component/generator/generatorAction.d.ts +6 -1
- package/build/component/generator/generatorAction.d.ts.map +1 -1
- package/build/component/generator/generatorAction.js +30 -12
- package/build/component/generator/generatorAction.js.map +1 -1
- package/build/component/generator/officeAddin/generator.js +1 -1
- package/build/component/generator/officeAddin/generator.js.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.js +41 -37
- package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
- package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
- package/build/component/generator/spfx/spfxGenerator.js +7 -0
- package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
- package/build/component/generator/spfx/utils/constants.d.ts +1 -14
- package/build/component/generator/spfx/utils/constants.d.ts.map +1 -1
- package/build/component/generator/spfx/utils/constants.js +1 -14
- package/build/component/generator/spfx/utils/constants.js.map +1 -1
- package/build/component/generator/utils.d.ts +7 -5
- package/build/component/generator/utils.d.ts.map +1 -1
- package/build/component/generator/utils.js +35 -16
- package/build/component/generator/utils.js.map +1 -1
- package/build/component/middleware/questionMW.d.ts +1 -1
- package/build/component/middleware/questionMW.d.ts.map +1 -1
- package/build/component/middleware/questionMW.js +4 -1
- package/build/component/middleware/questionMW.js.map +1 -1
- package/build/component/utils/ResourceGroupHelper.d.ts +1 -0
- package/build/component/utils/ResourceGroupHelper.d.ts.map +1 -1
- package/build/component/utils/ResourceGroupHelper.js +31 -1
- package/build/component/utils/ResourceGroupHelper.js.map +1 -1
- package/build/component/utils/common.d.ts +3 -1
- package/build/component/utils/common.d.ts.map +1 -1
- package/build/component/utils/common.js +11 -4
- package/build/component/utils/common.js.map +1 -1
- package/build/component/utils/envUtil.d.ts +1 -0
- package/build/component/utils/envUtil.d.ts.map +1 -1
- package/build/component/utils/envUtil.js +6 -1
- package/build/component/utils/envUtil.js.map +1 -1
- package/build/component/utils/fileOperation.d.ts +1 -1
- package/build/component/utils/fileOperation.d.ts.map +1 -1
- package/build/component/utils/fileOperation.js +34 -48
- package/build/component/utils/fileOperation.js.map +1 -1
- package/build/component/utils/metadataGraphPermssion.d.ts +16 -0
- package/build/component/utils/metadataGraphPermssion.d.ts.map +1 -0
- package/build/component/utils/metadataGraphPermssion.js +96 -0
- package/build/component/utils/metadataGraphPermssion.js.map +1 -0
- package/build/component/utils/metadataUtil.d.ts.map +1 -1
- package/build/component/utils/metadataUtil.js +2 -0
- package/build/component/utils/metadataUtil.js.map +1 -1
- package/build/core/FxCore.d.ts +24 -1
- package/build/core/FxCore.d.ts.map +1 -1
- package/build/core/FxCore.js +190 -25
- package/build/core/FxCore.js.map +1 -1
- package/build/core/middleware/projectMigratorV3.d.ts +1 -1
- package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
- package/build/core/middleware/projectMigratorV3.js +11 -10
- package/build/core/middleware/projectMigratorV3.js.map +1 -1
- package/build/core/middleware/projectVersionChecker.js +4 -4
- package/build/core/middleware/projectVersionChecker.js.map +1 -1
- package/build/core/middleware/utils/debug/taskMigrator.js +1 -1
- package/build/error/common.d.ts +9 -0
- package/build/error/common.d.ts.map +1 -1
- package/build/error/common.js +34 -1
- package/build/error/common.js.map +1 -1
- package/build/error/deploy.d.ts +6 -0
- package/build/error/deploy.d.ts.map +1 -1
- package/build/error/deploy.js +25 -1
- package/build/error/deploy.js.map +1 -1
- package/build/error/teamsApp.d.ts +4 -1
- package/build/error/teamsApp.d.ts.map +1 -1
- package/build/error/teamsApp.js +13 -1
- package/build/error/teamsApp.js.map +1 -1
- package/build/index.d.ts +4 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +8 -1
- package/build/index.js.map +1 -1
- package/build/question/create.d.ts +9 -7
- package/build/question/create.d.ts.map +1 -1
- package/build/question/create.js +149 -91
- package/build/question/create.js.map +1 -1
- package/build/question/generator.js +1 -3
- package/build/question/generator.js.map +1 -1
- package/build/question/index.d.ts +1 -0
- package/build/question/index.d.ts.map +1 -1
- package/build/question/index.js +3 -0
- package/build/question/index.js.map +1 -1
- package/build/question/inputs/CreateProjectInputs.d.ts +4 -4
- package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
- package/build/question/inputs/DeployAadManifestInputs.d.ts +1 -1
- package/build/question/inputs/DeployAadManifestInputs.d.ts.map +1 -1
- package/build/question/inputs/PermissionGrantInputs.d.ts +2 -2
- package/build/question/inputs/PermissionGrantInputs.d.ts.map +1 -1
- package/build/question/inputs/PermissionListInputs.d.ts +1 -1
- package/build/question/inputs/PermissionListInputs.d.ts.map +1 -1
- package/build/question/inputs/SPFxAddWebpartInputs.d.ts +2 -0
- package/build/question/inputs/SPFxAddWebpartInputs.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.js +9 -9
- package/build/question/options/CreateProjectOptions.js.map +1 -1
- package/build/question/options/CreateSampleProjectOptions.d.ts.map +1 -1
- package/build/question/options/CreateSampleProjectOptions.js +5 -1
- package/build/question/options/CreateSampleProjectOptions.js.map +1 -1
- package/build/question/options/DeployAadManifestOptions.js +2 -2
- package/build/question/options/DeployAadManifestOptions.js.map +1 -1
- package/build/question/options/PermissionGrantOptions.js +2 -2
- package/build/question/options/PermissionGrantOptions.js.map +1 -1
- package/build/question/options/PermissionListOptions.js +2 -2
- package/build/question/options/PermissionListOptions.js.map +1 -1
- package/build/question/options/SPFxAddWebpartOptions.d.ts.map +1 -1
- package/build/question/options/SPFxAddWebpartOptions.js +9 -0
- package/build/question/options/SPFxAddWebpartOptions.js.map +1 -1
- package/build/question/other.d.ts +3 -1
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +100 -6
- package/build/question/other.js.map +1 -1
- package/build/question/questionNames.d.ts +3 -2
- package/build/question/questionNames.d.ts.map +1 -1
- package/build/question/questionNames.js +3 -2
- package/build/question/questionNames.js.map +1 -1
- package/build/ui/visitor.d.ts.map +1 -1
- package/build/ui/visitor.js +11 -2
- package/build/ui/visitor.js.map +1 -1
- package/package.json +16 -23
- package/resource/package.nls.json +84 -59
- package/resource/yaml-schema/v1.3/yaml.schema.json +81 -35
- package/templates/core/v3Migration/csharp.app.local.yml +6 -6
- package/templates/core/v3Migration/csharp.app.yml +6 -6
- package/templates/core/v3Migration/js.ts.app.local.yml +11 -11
- package/templates/core/v3Migration/js.ts.app.yml +12 -12
- package/templates/fallback/common.zip +0 -0
- package/templates/fallback/csharp.zip +0 -0
- package/templates/fallback/js.zip +0 -0
- package/templates/fallback/ts.zip +0 -0
- package/templates/plugins/resource/aad/auth/V3/Bot/Pages/BotAuthorizeEndPage.cshtml +55 -51
- package/templates/plugins/resource/aad/auth/V3/Enable SSO.txt +2 -2
- package/templates/plugins/resource/aad/auth/bot/README.md +13 -13
- package/templates/plugins/resource/aad/auth/bot/README.txt +7 -7
- package/templates/plugins/resource/aad/auth/bot/csharp/Pages/BotAuthorizeEndPage.cshtml +55 -51
- package/templates/plugins/resource/aad/auth/bot/js/public/auth-end.html +6 -2
- package/templates/plugins/resource/aad/auth/bot/ts/public/auth-end.html +5 -1
- package/templates/plugins/resource/aad/auth/tab/README.md +6 -6
- package/templates/plugins/resource/aad/auth/tab/README.txt +5 -5
- package/templates/plugins/resource/aad/auth/tab/js/public/auth-end.html +16 -9
- package/templates/plugins/resource/aad/auth/tab/js/public/auth-start.html +11 -7
- package/templates/plugins/resource/aad/auth/tab/js/sso/GetUserProfile.jsx +1 -1
- package/templates/plugins/resource/aad/auth/tab/ts/public/auth-end.html +16 -9
- package/templates/plugins/resource/aad/auth/tab/ts/public/auth-start.html +11 -7
- package/templates/plugins/resource/aad/auth/tab/ts/sso/GetUserProfile.tsx +1 -1
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
> Note: This document includes single sign-on instructions applicable for both bot and message extension. Make sure to add the corresponding Teams capability first and then follow the documentation.
|
|
4
4
|
|
|
5
|
-
Microsoft Teams provides a mechanism by which an application can obtain the signed-in Teams user token to access Microsoft Graph (and other APIs). Teams Toolkit facilitates this interaction by abstracting some of the
|
|
5
|
+
Microsoft Teams provides a mechanism by which an application can obtain the signed-in Teams user token to access Microsoft Graph (and other APIs). Teams Toolkit facilitates this interaction by abstracting some of the Microsoft Entra ID flows and integrations behind some simple, high level APIs. This enables you to add single sign-on (SSO) features easily to your Teams application.
|
|
6
6
|
|
|
7
|
-
For a bot application, user can invoke the
|
|
7
|
+
For a bot application, user can invoke the Microsoft Entra consent flow to obtain sso token to call Graph and other APIs.
|
|
8
8
|
|
|
9
9
|
<h2>Contents </h2>
|
|
10
10
|
|
|
11
11
|
- [Changes to your project](#1)
|
|
12
12
|
- [Update code to Use SSO for Bot](#2)
|
|
13
|
-
- [Set up the
|
|
13
|
+
- [Set up the Microsoft Entra redirects](#2.1)
|
|
14
14
|
- [Update your business logic](#2.2)
|
|
15
15
|
- [(Optional) Add a new sso command to the bot](#2.3)
|
|
16
16
|
- [Update code to Use SSO for Message Extension](#3)
|
|
17
17
|
- [Debug your application](#4)
|
|
18
|
-
- [Customize
|
|
18
|
+
- [Customize Microsoft Entra applications](#5)
|
|
19
19
|
- [Trouble Shooting](#6)
|
|
20
20
|
|
|
21
21
|
<h2 id='1'>Changes to your project</h2>
|
|
@@ -29,7 +29,7 @@ After you successfully added SSO into your project, Teams Toolkit will create an
|
|
|
29
29
|
| Modify | `azureWebAppBotConfig.bicep` under `templates/azure/teamsFx` and `azure.parameters.dev.json` under `.fx/configs` | Insert environment variables used for bot web app to enable SSO feature |
|
|
30
30
|
| Modify | `manifest.template.json` under `templates/appPackage` | An `webApplicationInfo` object will be added into your Teams app manifest template. This field is required by Teams when enabling SSO. |
|
|
31
31
|
| Modify | `projectSettings.json` under `.fx/configs` | Add bot sso capability, which will be used internally by Teams Toolkit. |
|
|
32
|
-
| Create | `aad.template.json` under `templates/appPackage` | The
|
|
32
|
+
| Create | `aad.template.json` under `templates/appPackage` | The Microsoft Entra application manifest that is used to register the application with Microsoft Entra. |
|
|
33
33
|
| Create | `auth/bot` | Reference code, redirect pages and a `README.md` file. These files are provided for reference. See below for more information. |
|
|
34
34
|
|
|
35
35
|
<h2 id='2'>Update your code to Use SSO for Bot</h2>
|
|
@@ -38,9 +38,9 @@ As described above, the Teams Toolkit generated some configuration to set up you
|
|
|
38
38
|
|
|
39
39
|
> Note: The following part is for `command and response bot`. For `basic bot`, please refer to the [bot-sso sample](https://aka.ms/bot-sso-sample).
|
|
40
40
|
|
|
41
|
-
<h3 id='2.1'>Set up the
|
|
41
|
+
<h3 id='2.1'>Set up the Microsoft Entra redirects</h3>
|
|
42
42
|
|
|
43
|
-
1. Move the `auth/bot/public` folder to `bot/src`. This folder contains HTML pages that the bot application hosts. When single sign-on flows are initiated with
|
|
43
|
+
1. Move the `auth/bot/public` folder to `bot/src`. This folder contains HTML pages that the bot application hosts. When single sign-on flows are initiated with Microsoft Entra, Microsoft Entra will redirect the user to these pages.
|
|
44
44
|
1. Modify your `bot/src/index` to add the appropriate `restify` routes to these pages.
|
|
45
45
|
|
|
46
46
|
```ts
|
|
@@ -56,7 +56,7 @@ As described above, the Teams Toolkit generated some configuration to set up you
|
|
|
56
56
|
|
|
57
57
|
<h3 id='2.2'>Update your business logic</h3>
|
|
58
58
|
|
|
59
|
-
The sample business logic provides a sso command handler `ProfileSsoCommandHandler` that use
|
|
59
|
+
The sample business logic provides a sso command handler `ProfileSsoCommandHandler` that use a Microsoft Entra token to call Microsoft Graph. This token is obtained by using the logged-in Teams user token. The flow is brought together in a dialog that will display a consent dialog if required.
|
|
60
60
|
|
|
61
61
|
To make this work in your application:
|
|
62
62
|
|
|
@@ -336,7 +336,7 @@ You can update the query logic in the `handleMessageExtensionQueryWithSSO` with
|
|
|
336
336
|
|
|
337
337
|
To make this work in your application:
|
|
338
338
|
|
|
339
|
-
1. Move the `auth/bot/public` folder to `bot`. This folder contains HTML pages that the bot application hosts. When single sign-on flows are initiated with
|
|
339
|
+
1. Move the `auth/bot/public` folder to `bot`. This folder contains HTML pages that the bot application hosts. When single sign-on flows are initiated with Microsoft Entra, Microsoft Entra will redirect the user to these pages.
|
|
340
340
|
1. Modify your `bot/index` to add the appropriate `restify` routes to these pages.
|
|
341
341
|
|
|
342
342
|
```ts
|
|
@@ -394,17 +394,17 @@ To make this work in your application:
|
|
|
394
394
|
|
|
395
395
|
You can debug your application by pressing F5.
|
|
396
396
|
|
|
397
|
-
Teams Toolkit will use the
|
|
397
|
+
Teams Toolkit will use the Microsoft Entra manifest file to register a Microsoft Entra application registered for SSO.
|
|
398
398
|
|
|
399
399
|
To learn more about Teams Toolkit local debug functionalities, refer to this [document](https://docs.microsoft.com/microsoftteams/platform/toolkit/debug-local).
|
|
400
400
|
|
|
401
|
-
<h2 id='5'>Customize
|
|
401
|
+
<h2 id='5'>Customize Microsoft Entra applications</h2>
|
|
402
402
|
|
|
403
|
-
The
|
|
403
|
+
The Microsoft Entra [manifest](https://docs.microsoft.com/azure/active-directory/develop/reference-app-manifest) allows you to customize various aspects of your application registration. You can update the manifest as needed.
|
|
404
404
|
|
|
405
405
|
Follow this [document](https://aka.ms/teamsfx-aad-manifest#customize-aad-manifest-template) if you need to include additional API permissions to access your desired APIs.
|
|
406
406
|
|
|
407
|
-
Follow this [document](https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal) to view your
|
|
407
|
+
Follow this [document](https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal) to view your Microsoft Entra application in Azure Portal.
|
|
408
408
|
|
|
409
409
|
<h2 id='6'>Trouble Shooting </h2>
|
|
410
410
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Enable single sign-on for Teams bot applications
|
|
2
2
|
-------------------------
|
|
3
3
|
|
|
4
|
-
For Teams bot application, SSO manifests as an Adaptive Card which the user can interact with to invoke the
|
|
4
|
+
For Teams bot application, SSO manifests as an Adaptive Card which the user can interact with to invoke the Microsoft Entra consent flow.
|
|
5
5
|
|
|
6
6
|
Files generated/updated in your project
|
|
7
7
|
-------------------------
|
|
8
8
|
|
|
9
9
|
1. New file - `aad.template.json` is created in folder `templates/appPackage`
|
|
10
|
-
- The Azure Active Directory application manifest that is used to register the application with
|
|
10
|
+
- The Azure Active Directory application manifest that is used to register the application with Microsoft Entra.
|
|
11
11
|
2. Update file - 'templates/appPackage/manifest.template.json'
|
|
12
12
|
- An `webApplicationInfo` object will be added into your Teams app manifest template. This field is required by Teams when enabling SSO. |
|
|
13
13
|
3. New file - `Auth/bot`
|
|
@@ -24,7 +24,7 @@ Note: This part is for `command and response bot`.
|
|
|
24
24
|
Microsoft.Bot.Builder >= 4.17.1
|
|
25
25
|
|
|
26
26
|
2. Create "Pages" folder and move files in `Auth/bot/Pages` folder to `Pages`
|
|
27
|
-
`Auth/bot/Pages` folder contains HTML pages that hosted by bot application. When single sign-on flows are initiated with
|
|
27
|
+
`Auth/bot/Pages` folder contains HTML pages that hosted by bot application. When single sign-on flows are initiated with Microsoft Entra ID, Microsoft Entra ID will redirect the user to these pages.
|
|
28
28
|
|
|
29
29
|
3. Create "SSO" folder and move files in 'Auth/bot/SSO' folder to 'SSO'
|
|
30
30
|
This folder contains two files as reference for SSO implementation:
|
|
@@ -174,15 +174,15 @@ to install the app to
|
|
|
174
174
|
3. Press F5, or select the Debug > Start Debugging menu in Visual Studio
|
|
175
175
|
4. In the launched browser, select the Add button to load the app in Teams
|
|
176
176
|
|
|
177
|
-
Teams Toolkit will use the
|
|
177
|
+
Teams Toolkit will use the Microsoft Entra manifest file to register a Microsoft Entra application registered for SSO.
|
|
178
178
|
|
|
179
179
|
To learn more about Teams Toolkit local debug functionalities, refer to https://docs.microsoft.com/microsoftteams/platform/toolkit/debug-local.
|
|
180
180
|
|
|
181
|
-
Customize
|
|
181
|
+
Customize Microsoft Entra applications
|
|
182
182
|
-------------------------
|
|
183
|
-
The
|
|
183
|
+
The Microsoft Entra manifest allows you to customize various aspects of your application registration. You can update the manifest as needed.
|
|
184
184
|
Related Doc: https://docs.microsoft.com/azure/active-directory/develop/reference-app-manifest
|
|
185
185
|
|
|
186
186
|
Follow https://aka.ms/teamsfx-aad-manifest#how-to-customize-the-aad-manifest-template if you need to include additional API permissions to access your desired APIs.
|
|
187
187
|
|
|
188
|
-
Follow https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal to view your
|
|
188
|
+
Follow https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal to view your Microsoft Entra application in Azure Portal.
|
|
@@ -1,61 +1,65 @@
|
|
|
1
1
|
@page "/bot-auth-end.html"
|
|
2
2
|
|
|
3
3
|
<html>
|
|
4
|
+
|
|
4
5
|
<head>
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
<title>Login End Page</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
7
8
|
</head>
|
|
8
9
|
|
|
9
10
|
<body>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// Unexpected condition: hash does not contain error or access_token parameter
|
|
29
|
-
handleAuthError("UnexpectedFailure", hashParams);
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
// Parse hash parameters into key-value pairs
|
|
34
|
-
function getHashParameters() {
|
|
35
|
-
let hashParams = {};
|
|
36
|
-
location.hash
|
|
37
|
-
.substr(1)
|
|
38
|
-
.split("&")
|
|
39
|
-
.forEach(function (item) {
|
|
40
|
-
let s = item.split("="),
|
|
41
|
-
k = s[0],
|
|
42
|
-
v = s[1] && decodeURIComponent(s[1]);
|
|
43
|
-
hashParams[k] = v;
|
|
44
|
-
});
|
|
45
|
-
return hashParams;
|
|
46
|
-
}
|
|
47
|
-
// Show error information
|
|
48
|
-
function handleAuthError(errorType, errorMessage) {
|
|
49
|
-
const err = JSON.stringify({
|
|
50
|
-
error: errorType,
|
|
51
|
-
message: JSON.stringify(errorMessage),
|
|
52
|
-
});
|
|
53
|
-
let para = document.createElement("p");
|
|
54
|
-
let node = document.createTextNode(err);
|
|
55
|
-
para.appendChild(node);
|
|
56
|
-
let element = document.getElementById("divError");
|
|
57
|
-
element.appendChild(para);
|
|
11
|
+
<script src="https://res.cdn.office.net/teams-js/2.17.0/js/MicrosoftTeams.min.js"
|
|
12
|
+
integrity="sha384-xp55t/129OsN192JZYLP0rGhzjCF9aYtjY0LVtXvolkDrBe4Jchylp56NrUYJ4S2"
|
|
13
|
+
crossorigin="anonymous"></script>
|
|
14
|
+
<div id="divError"></div>
|
|
15
|
+
<script type="text/javascript">
|
|
16
|
+
microsoftTeams.app.initialize().then(() => {
|
|
17
|
+
let hashParams = getHashParameters();
|
|
18
|
+
if (hashParams["error"]) {
|
|
19
|
+
// Authentication failed
|
|
20
|
+
handleAuthError(hashParams["error"], hashParams);
|
|
21
|
+
} else if (hashParams["code"]) {
|
|
22
|
+
// Get the stored state parameter and compare with incoming state
|
|
23
|
+
let expectedState = localStorage.getItem("state");
|
|
24
|
+
if (expectedState !== hashParams["state"]) {
|
|
25
|
+
// State does not match, report error
|
|
26
|
+
handleAuthError("StateDoesNotMatch", hashParams);
|
|
27
|
+
} else {
|
|
28
|
+
microsoftTeams.authentication.notifySuccess();
|
|
58
29
|
}
|
|
59
|
-
|
|
30
|
+
} else {
|
|
31
|
+
// Unexpected condition: hash does not contain error or access_token parameter
|
|
32
|
+
handleAuthError("UnexpectedFailure", hashParams);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
// Parse hash parameters into key-value pairs
|
|
37
|
+
function getHashParameters() {
|
|
38
|
+
let hashParams = {};
|
|
39
|
+
location.hash
|
|
40
|
+
.substr(1)
|
|
41
|
+
.split("&")
|
|
42
|
+
.forEach(function (item) {
|
|
43
|
+
let s = item.split("="),
|
|
44
|
+
k = s[0],
|
|
45
|
+
v = s[1] && decodeURIComponent(s[1]);
|
|
46
|
+
hashParams[k] = v;
|
|
47
|
+
});
|
|
48
|
+
return hashParams;
|
|
49
|
+
}
|
|
50
|
+
// Show error information
|
|
51
|
+
function handleAuthError(errorType, errorMessage) {
|
|
52
|
+
const err = JSON.stringify({
|
|
53
|
+
error: errorType,
|
|
54
|
+
message: JSON.stringify(errorMessage),
|
|
55
|
+
});
|
|
56
|
+
let para = document.createElement("p");
|
|
57
|
+
let node = document.createTextNode(err);
|
|
58
|
+
para.appendChild(node);
|
|
59
|
+
let element = document.getElementById("divError");
|
|
60
|
+
element.appendChild(para);
|
|
61
|
+
}
|
|
62
|
+
</script>
|
|
60
63
|
</body>
|
|
64
|
+
|
|
61
65
|
</html>
|
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
</head>
|
|
9
9
|
|
|
10
10
|
<body>
|
|
11
|
-
<script
|
|
11
|
+
<script
|
|
12
|
+
src="https://res.cdn.office.net/teams-js/2.17.0/js/MicrosoftTeams.min.js"
|
|
13
|
+
integrity="sha384-xp55t/129OsN192JZYLP0rGhzjCF9aYtjY0LVtXvolkDrBe4Jchylp56NrUYJ4S2"
|
|
14
|
+
crossorigin="anonymous"
|
|
15
|
+
></script>
|
|
12
16
|
<div id="divError"></div>
|
|
13
17
|
<script type="text/javascript">
|
|
14
18
|
microsoftTeams.app.initialize().then(() => {
|
|
@@ -31,7 +35,7 @@
|
|
|
31
35
|
handleAuthError("UnexpectedFailure", hashParams);
|
|
32
36
|
}
|
|
33
37
|
});
|
|
34
|
-
|
|
38
|
+
|
|
35
39
|
// Parse hash parameters into key-value pairs
|
|
36
40
|
function getHashParameters() {
|
|
37
41
|
let hashParams = new Map();
|
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
</head>
|
|
9
9
|
|
|
10
10
|
<body>
|
|
11
|
-
<script
|
|
11
|
+
<script
|
|
12
|
+
src="https://res.cdn.office.net/teams-js/2.17.0/js/MicrosoftTeams.min.js"
|
|
13
|
+
integrity="sha384-xp55t/129OsN192JZYLP0rGhzjCF9aYtjY0LVtXvolkDrBe4Jchylp56NrUYJ4S2"
|
|
14
|
+
crossorigin="anonymous"
|
|
15
|
+
></script>
|
|
12
16
|
<div id="divError"></div>
|
|
13
17
|
<script type="text/javascript">
|
|
14
18
|
microsoftTeams.app.initialize().then(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Enable single sign-on for tab applications
|
|
2
2
|
|
|
3
|
-
Microsoft Teams provides a mechanism by which an application can obtain the signed-in Teams user token to access Microsoft Graph (and other APIs). Teams Toolkit facilitates this interaction by abstracting some of the
|
|
3
|
+
Microsoft Teams provides a mechanism by which an application can obtain the signed-in Teams user token to access Microsoft Graph (and other APIs). Teams Toolkit facilitates this interaction by abstracting some of the Microsoft Entra flows and integrations behind some simple, high level APIs. This enables you to add single sign-on (SSO) features easily to your Teams application.
|
|
4
4
|
|
|
5
5
|
# Changes to your project
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ After you successfully added SSO into your project, Teams Toolkit will create an
|
|
|
10
10
|
|
|
11
11
|
| Action | File | Description |
|
|
12
12
|
| - | - | - |
|
|
13
|
-
| Create| `aad.template.json` under `templates/appPackage` | The
|
|
13
|
+
| Create| `aad.template.json` under `templates/appPackage` | The Microsoft Entra application manifest that is used to register the application with Microsoft Entra. |
|
|
14
14
|
| Modify | `manifest.template.json` under `templates/appPackage` | An `webApplicationInfo` object will be added into your Teams app manifest template. This field is required by Teams when enabling SSO. |
|
|
15
15
|
| Create | `auth/tab` | Reference code, redirect pages and a `README.md` file. These files are provided for reference. See below for more information. |
|
|
16
16
|
|
|
@@ -37,14 +37,14 @@ These two HTML files are used for auth redirects.
|
|
|
37
37
|
|
|
38
38
|
You can debug your application by pressing F5.
|
|
39
39
|
|
|
40
|
-
Teams Toolkit will use the
|
|
40
|
+
Teams Toolkit will use the Microsoft Entra manifest file to register a Microsoft Entra application registered for SSO.
|
|
41
41
|
|
|
42
42
|
To learn more about Teams Toolkit local debug functionalities, refer to this [document](https://docs.microsoft.com/microsoftteams/platform/toolkit/debug-local).
|
|
43
43
|
|
|
44
|
-
# Customize
|
|
44
|
+
# Customize Microsoft Entra applications
|
|
45
45
|
|
|
46
|
-
The
|
|
46
|
+
The Microsoft Entra [manifest](https://docs.microsoft.com/azure/active-directory/develop/reference-app-manifest) allows you to customize various aspects of your application registration. You can update the manifest as needed.
|
|
47
47
|
|
|
48
48
|
Follow this [document](https://aka.ms/teamsfx-aad-manifest#how-to-customize-the-aad-manifest-template) if you need to include additional API permissions to access your desired APIs.
|
|
49
49
|
|
|
50
|
-
Follow this [document](https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal) to view your
|
|
50
|
+
Follow this [document](https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal) to view your Microsoft Entra application in Azure Portal.
|
|
@@ -5,7 +5,7 @@ Files generated/updated in your project
|
|
|
5
5
|
-------------------------
|
|
6
6
|
|
|
7
7
|
1. New file - 'aad.template.json' is created in folder 'templates/appPackage'
|
|
8
|
-
- The
|
|
8
|
+
- The Microsoft Entra application manifest that is used to register the application with Microsoft Entra.
|
|
9
9
|
2. Update file - 'templates/appPackage/manifest.template.json'
|
|
10
10
|
- An 'webApplicationInfo' object will be added into your Teams app manifest template. This field is required by Teams when enabling SSO.
|
|
11
11
|
3. New file - 'Auth/tab'
|
|
@@ -31,15 +31,15 @@ to install the app to
|
|
|
31
31
|
3. Press F5, or select the Debug > Start Debugging menu in Visual Studio
|
|
32
32
|
4. In the launched browser, select the Add button to load the app in Teams
|
|
33
33
|
|
|
34
|
-
Teams Toolkit will use the
|
|
34
|
+
Teams Toolkit will use the Microsoft Entra manifest file to register a Microsoft Entra application registered for SSO.
|
|
35
35
|
|
|
36
36
|
To learn more about Teams Toolkit local debug functionalities, refer to https://docs.microsoft.com/microsoftteams/platform/toolkit/debug-local.
|
|
37
37
|
|
|
38
|
-
Customize
|
|
38
|
+
Customize Microsoft Entra applications
|
|
39
39
|
-------------------------
|
|
40
|
-
The
|
|
40
|
+
The Microsoft Entra manifest allows you to customize various aspects of your application registration. You can update the manifest as needed.
|
|
41
41
|
Related Doc: https://docs.microsoft.com/azure/active-directory/develop/reference-app-manifest
|
|
42
42
|
|
|
43
43
|
Follow https://aka.ms/teamsfx-aad-manifest#how-to-customize-the-aad-manifest-template if you need to include additional API permissions to access your desired APIs.
|
|
44
44
|
|
|
45
|
-
Follow https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal to view your
|
|
45
|
+
Follow https://aka.ms/teamsfx-aad-manifest#How-to-view-the-AAD-app-on-the-Azure-portal to view your Microsoft Entra application in Azure Portal.
|
|
@@ -7,13 +7,17 @@
|
|
|
7
7
|
</head>
|
|
8
8
|
|
|
9
9
|
<body>
|
|
10
|
-
|
|
10
|
+
<script
|
|
11
|
+
src="https://res.cdn.office.net/teams-js/2.17.0/js/MicrosoftTeams.min.js"
|
|
12
|
+
integrity="sha384-xp55t/129OsN192JZYLP0rGhzjCF9aYtjY0LVtXvolkDrBe4Jchylp56NrUYJ4S2"
|
|
13
|
+
crossorigin="anonymous"
|
|
14
|
+
></script>
|
|
11
15
|
<script
|
|
12
16
|
type="text/javascript"
|
|
13
17
|
src="https://alcdn.msauth.net/browser/2.21.0/js/msal-browser.min.js"
|
|
14
18
|
integrity="sha384-s/NxjjAgw1QgpDhOlVjTceLl4axrp5nqpUbCPOEQy1PqbFit9On6uw2XmEF1eq0s"
|
|
15
|
-
crossorigin="anonymous"
|
|
16
|
-
|
|
19
|
+
crossorigin="anonymous"
|
|
20
|
+
></script>
|
|
17
21
|
<script type="text/javascript">
|
|
18
22
|
var currentURL = new URL(window.location);
|
|
19
23
|
var clientId = currentURL.searchParams.get("clientId");
|
|
@@ -24,20 +28,23 @@
|
|
|
24
28
|
auth: {
|
|
25
29
|
clientId: clientId,
|
|
26
30
|
authority: `https://login.microsoftonline.com/${context.user.tenant.id}`,
|
|
27
|
-
navigateToLoginRequestUrl: false
|
|
31
|
+
navigateToLoginRequestUrl: false,
|
|
28
32
|
},
|
|
29
33
|
cache: {
|
|
30
34
|
cacheLocation: "sessionStorage",
|
|
31
35
|
},
|
|
32
|
-
}
|
|
36
|
+
};
|
|
33
37
|
|
|
34
38
|
const msalInstance = new window.msal.PublicClientApplication(msalConfig);
|
|
35
|
-
msalInstance
|
|
39
|
+
msalInstance
|
|
40
|
+
.handleRedirectPromise()
|
|
36
41
|
.then((tokenResponse) => {
|
|
37
42
|
if (tokenResponse !== null) {
|
|
38
|
-
microsoftTeams.authentication.notifySuccess(
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
microsoftTeams.authentication.notifySuccess(
|
|
44
|
+
JSON.stringify({
|
|
45
|
+
sessionStorage: sessionStorage,
|
|
46
|
+
})
|
|
47
|
+
);
|
|
41
48
|
} else {
|
|
42
49
|
microsoftTeams.authentication.notifyFailure("Get empty response.");
|
|
43
50
|
}
|
|
@@ -7,13 +7,17 @@
|
|
|
7
7
|
</head>
|
|
8
8
|
|
|
9
9
|
<body>
|
|
10
|
-
|
|
10
|
+
<script
|
|
11
|
+
src="https://res.cdn.office.net/teams-js/2.17.0/js/MicrosoftTeams.min.js"
|
|
12
|
+
integrity="sha384-xp55t/129OsN192JZYLP0rGhzjCF9aYtjY0LVtXvolkDrBe4Jchylp56NrUYJ4S2"
|
|
13
|
+
crossorigin="anonymous"
|
|
14
|
+
></script>
|
|
11
15
|
<script
|
|
12
16
|
type="text/javascript"
|
|
13
17
|
src="https://alcdn.msauth.net/browser/2.21.0/js/msal-browser.min.js"
|
|
14
18
|
integrity="sha384-s/NxjjAgw1QgpDhOlVjTceLl4axrp5nqpUbCPOEQy1PqbFit9On6uw2XmEF1eq0s"
|
|
15
|
-
crossorigin="anonymous"
|
|
16
|
-
|
|
19
|
+
crossorigin="anonymous"
|
|
20
|
+
></script>
|
|
17
21
|
<script type="text/javascript">
|
|
18
22
|
microsoftTeams.app.initialize().then(() => {
|
|
19
23
|
microsoftTeams.app.getContext().then(async (context) => {
|
|
@@ -27,23 +31,23 @@
|
|
|
27
31
|
auth: {
|
|
28
32
|
clientId: clientId,
|
|
29
33
|
authority: `https://login.microsoftonline.com/${context.user.tenant.id}`,
|
|
30
|
-
navigateToLoginRequestUrl: false
|
|
34
|
+
navigateToLoginRequestUrl: false,
|
|
31
35
|
},
|
|
32
36
|
cache: {
|
|
33
37
|
cacheLocation: "sessionStorage",
|
|
34
38
|
},
|
|
35
|
-
}
|
|
39
|
+
};
|
|
36
40
|
|
|
37
41
|
const msalInstance = new msal.PublicClientApplication(msalConfig);
|
|
38
42
|
const scopesArray = scope.split(" ");
|
|
39
43
|
const scopesRequest = {
|
|
40
44
|
scopes: scopesArray,
|
|
41
45
|
redirectUri: window.location.origin + `/auth-end.html?clientId=${clientId}`,
|
|
42
|
-
loginHint: loginHint
|
|
46
|
+
loginHint: loginHint,
|
|
43
47
|
};
|
|
44
48
|
await msalInstance.loginRedirect(scopesRequest);
|
|
45
49
|
});
|
|
46
50
|
});
|
|
47
|
-
|
|
51
|
+
</script>
|
|
48
52
|
</body>
|
|
49
53
|
</html>
|
|
@@ -27,7 +27,7 @@ export function GetUserProfile(props) {
|
|
|
27
27
|
// }
|
|
28
28
|
return { profile };
|
|
29
29
|
},
|
|
30
|
-
// Add scope for your
|
|
30
|
+
// Add scope for your Microsoft Entra app. For example: Mail.Read, etc.
|
|
31
31
|
// Use teamsfx instance from `InitTeamsFx`
|
|
32
32
|
{ scope: ["User.Read"], teamsfx: teamsfx }
|
|
33
33
|
);
|
|
@@ -7,13 +7,17 @@
|
|
|
7
7
|
</head>
|
|
8
8
|
|
|
9
9
|
<body>
|
|
10
|
-
|
|
10
|
+
<script
|
|
11
|
+
src="https://res.cdn.office.net/teams-js/2.17.0/js/MicrosoftTeams.min.js"
|
|
12
|
+
integrity="sha384-xp55t/129OsN192JZYLP0rGhzjCF9aYtjY0LVtXvolkDrBe4Jchylp56NrUYJ4S2"
|
|
13
|
+
crossorigin="anonymous"
|
|
14
|
+
></script>
|
|
11
15
|
<script
|
|
12
16
|
type="text/javascript"
|
|
13
17
|
src="https://alcdn.msauth.net/browser/2.21.0/js/msal-browser.min.js"
|
|
14
18
|
integrity="sha384-s/NxjjAgw1QgpDhOlVjTceLl4axrp5nqpUbCPOEQy1PqbFit9On6uw2XmEF1eq0s"
|
|
15
|
-
crossorigin="anonymous"
|
|
16
|
-
|
|
19
|
+
crossorigin="anonymous"
|
|
20
|
+
></script>
|
|
17
21
|
<script type="text/javascript">
|
|
18
22
|
var currentURL = new URL(window.location);
|
|
19
23
|
var clientId = currentURL.searchParams.get("clientId");
|
|
@@ -24,20 +28,23 @@
|
|
|
24
28
|
auth: {
|
|
25
29
|
clientId: clientId,
|
|
26
30
|
authority: `https://login.microsoftonline.com/${context.user.tenant.id}`,
|
|
27
|
-
navigateToLoginRequestUrl: false
|
|
31
|
+
navigateToLoginRequestUrl: false,
|
|
28
32
|
},
|
|
29
33
|
cache: {
|
|
30
34
|
cacheLocation: "sessionStorage",
|
|
31
35
|
},
|
|
32
|
-
}
|
|
36
|
+
};
|
|
33
37
|
|
|
34
38
|
const msalInstance = new window.msal.PublicClientApplication(msalConfig);
|
|
35
|
-
msalInstance
|
|
39
|
+
msalInstance
|
|
40
|
+
.handleRedirectPromise()
|
|
36
41
|
.then((tokenResponse) => {
|
|
37
42
|
if (tokenResponse !== null) {
|
|
38
|
-
microsoftTeams.authentication.notifySuccess(
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
microsoftTeams.authentication.notifySuccess(
|
|
44
|
+
JSON.stringify({
|
|
45
|
+
sessionStorage: sessionStorage,
|
|
46
|
+
})
|
|
47
|
+
);
|
|
41
48
|
} else {
|
|
42
49
|
microsoftTeams.authentication.notifyFailure("Get empty response.");
|
|
43
50
|
}
|
|
@@ -7,13 +7,17 @@
|
|
|
7
7
|
</head>
|
|
8
8
|
|
|
9
9
|
<body>
|
|
10
|
-
|
|
10
|
+
<script
|
|
11
|
+
src="https://res.cdn.office.net/teams-js/2.17.0/js/MicrosoftTeams.min.js"
|
|
12
|
+
integrity="sha384-xp55t/129OsN192JZYLP0rGhzjCF9aYtjY0LVtXvolkDrBe4Jchylp56NrUYJ4S2"
|
|
13
|
+
crossorigin="anonymous"
|
|
14
|
+
></script>
|
|
11
15
|
<script
|
|
12
16
|
type="text/javascript"
|
|
13
17
|
src="https://alcdn.msauth.net/browser/2.21.0/js/msal-browser.min.js"
|
|
14
18
|
integrity="sha384-s/NxjjAgw1QgpDhOlVjTceLl4axrp5nqpUbCPOEQy1PqbFit9On6uw2XmEF1eq0s"
|
|
15
|
-
crossorigin="anonymous"
|
|
16
|
-
|
|
19
|
+
crossorigin="anonymous"
|
|
20
|
+
></script>
|
|
17
21
|
<script type="text/javascript">
|
|
18
22
|
microsoftTeams.app.initialize().then(() => {
|
|
19
23
|
microsoftTeams.app.getContext().then(async (context) => {
|
|
@@ -27,23 +31,23 @@
|
|
|
27
31
|
auth: {
|
|
28
32
|
clientId: clientId,
|
|
29
33
|
authority: `https://login.microsoftonline.com/${context.user.tenant.id}`,
|
|
30
|
-
navigateToLoginRequestUrl: false
|
|
34
|
+
navigateToLoginRequestUrl: false,
|
|
31
35
|
},
|
|
32
36
|
cache: {
|
|
33
37
|
cacheLocation: "sessionStorage",
|
|
34
38
|
},
|
|
35
|
-
}
|
|
39
|
+
};
|
|
36
40
|
|
|
37
41
|
const msalInstance = new msal.PublicClientApplication(msalConfig);
|
|
38
42
|
const scopesArray = scope.split(" ");
|
|
39
43
|
const scopesRequest = {
|
|
40
44
|
scopes: scopesArray,
|
|
41
45
|
redirectUri: window.location.origin + `/auth-end.html?clientId=${clientId}`,
|
|
42
|
-
loginHint: loginHint
|
|
46
|
+
loginHint: loginHint,
|
|
43
47
|
};
|
|
44
48
|
await msalInstance.loginRedirect(scopesRequest);
|
|
45
49
|
});
|
|
46
50
|
});
|
|
47
|
-
|
|
51
|
+
</script>
|
|
48
52
|
</body>
|
|
49
53
|
</html>
|
|
@@ -28,7 +28,7 @@ export function GetUserProfile(props: { teamsfx?: TeamsFx }) {
|
|
|
28
28
|
// }
|
|
29
29
|
return { profile };
|
|
30
30
|
},
|
|
31
|
-
// Add scope for your
|
|
31
|
+
// Add scope for your Microsoft Entra app. For example: Mail.Read, etc.
|
|
32
32
|
// Use teamsfx instance from `InitTeamsFx`
|
|
33
33
|
{ scope: ["User.Read"], teamsfx: teamsfx }
|
|
34
34
|
);
|