Publishing a bot to Microsoft Teams - azure

We would like to publish a bot internally to Microsoft Teams. It seems one way to do this is to enable sideloading external applications in Teams. We do not want to do this as it will allow users to load a bunch of other apps we don't want to expose.
My question is, if I publish my bot to the office store, can other tenants see the bot? I see web apps have the "AvailableToOtherTenants" property and was wondering if this is what prevents other tenants from using our bot.
My goal is to publish a simple QnA bot to members of my organization only.
Thanks.

In this case you would need to publish apps to the Microsoft Teams Tenant Apps Catalog, in order to distribute line-of-business applications only to your organization.

Related

How to create Microsoft Teams Apps with bots dynamically?

We would like to have an ability to programmatically create Microsoft Teams apps so that they can be installed into the same Microsoft Teams tenant. Since there is no way to pass any data from the app manifest to the bot endpoint we have to create separate bot for each app which will have an endpoint like so /api/messages/:id. This way we can differentiate between the apps/bots on the backend.
We weren't able to find bot Azure APIs to accomplish this easily, aside from low level resource APIs or Azure CLI to create app registry and the bot.
Is this the best way to approach this problem? Any suggestions?

Can unpublished Microsoft Teams connectors be owned/registered to a tenant rather than an individual?

It seems that Microsoft Teams conectors have to be registered/owned by an individual's microsoft account (unless they are published to the app store), whilst the Microsoft Teams app that uses them, can exist independently. Thus, if the individual who developed the connectors leaves the company, and their account is closed, all the company's connectors will stop working. Then new connectors will have to be created and the existing Teams app manifests will have to be modified. This will cause a problem for our clients who rely on them.
Is this correct and is there anything we can do about it?
I understand that the connectors and app could be published to the app store, but it is a private app, intended solely for use by our selves and our clients, so we don't feel it is appropriate to publish it.
The connectors are generated through the Connectors Developer Dashboard, https://outlook.office.com/connectors/publish and are owned/registered to the developer's Microsoft account. We use them to send notifications from our custom web app to our clients' channels in Microsoft Teams.

Difference between Functions Bot, Web App Bot & Bot Channels Registration in Microsoft Azure?

What's the difference?
I couldn't find specific information about all three services here or on Microsoft Azure or on Azure Bot Service...
Function and Web App bots are essentially the same thing. The core difference is that most of the business logic for a functions bot is contained in one or more Azure functions which are c# scripts, while the business logic for a WebApp bot is contained in an WebAPI running as an App Service.
Now, a Bot Channels Regstration is an entirely different beast. This resource is what you use when you want to use the Bot Service functionality in Azure. It is the middle piece to connect your bot to the various channels that it supports. A channel is an external 'client application' such as Facebook Messenger, Twitter, twillio, web chat, etc.
This is the basics but there is plenty of information in the Bot Framework documentation.
Registration of Web App Bot and Bot Channels is deprecated as of 9/1/2021. Azure Bot takes the place of both the Web App Bot resource and Bot Channels resource types.
https://learn.microsoft.com/en-us/learn/modules/intro-to-bot-service-bot-framework-composer/2-what-is-azure-bot-service

Can I create and deploy Microsoft bot with LUIS but without azure services?

Can I create and deploy Microsoft bot without azure services?
I want to use LUIS services without azure services.
Is it possible? Alternatives for azure?
Thank you for replies in advance
To answer your question - it is possible to create a bot which uses LUIS without using the Microsoft Bot Framework -
Using LUIS: LUIS expose their service via HTTP endpoint. If you create an application in LUIS and create a model, you can get the intents by issuing a request to the provided endpoint. It is not directly associated with Azure. Note that in order to allow unlimited traffic to your endpoint, you will need to associate it with an Azure subscription, but you do not have to use any Azure resources.
Microsoft Bot Framework - In order to create a bot without using the bot framework, first let's understand what services the framework provides you with. you need:
Somewhere to host your bot as a service. You can use any cloud provider for this or even host it on your machine
Build your bot - you bot will have to implement a conversation protocol, depending on the channel for which you are writing your bot
Integrate with the channel for which you are building your bot for - bots for Facebook, Telegram or Skype have different protocols and need to be connected differently with these platforms. The Bot Framework simplifies this process for you. But you can just create a specific bot for your desired platform. For that, you should check the documentation for the channel which you develop for.

Office 365 Integration with Multiple Web Application Instances at Different URLs

I'm working on integrating Office 365 APIs into a web application that has different URLs for each organization (e.g. there could be an installation at http://organization1.com and an installation at http://organization2.com). Right now, for development, we have an Office 365 developer tenant and an associated Azure site. On Azure, we registered an application with a local URL as the return URL (e.g. http://localhost), and we use the Client ID and secret to authenticate calls to the API.
However, once we deploy this into production, we're going to have instances of the web application at many different URLs (one per organization), and organizations will have their own Office 365 account and associated Azure account. Does this mean that organizations will need to add the application themselves into their Azure directory, or is there a way for us to create an application that can be used with arbitrary tenants and return URLs?
What would be the best practice for a situation like this?
There are two approaches:
get the customer to create the application in Azure AD and get the client ID and secret key and store it in your app somewhere...either in the UI and securely store it somewhere based on the loaded tenant
OR
in Visual Studio change the setting (can do this in the Azure AD application in your tenant) to support "multiple Organizations". This is set when you go to Add Connected Service and select App Properties...

Resources