Connecting a self-hosted version of Jira (Server or Data Center) with a cloud-based solution like Microsoft Teams in both directions is not an easy task and requires some trade-offs.
Microsoft Teams for Jira - Smart Connect cannot run locally on the Jira server as most other Atlassian apps. It requires a constant access to public services. If you are running a Jira Server behind the firewall without access to the internet, Microsoft Teams for Jira - Smart Connect is not the right solution for you.
Connectivity with Teams
The tricky part is to have a secure and validated connection between Jira and Teams. We do not expose any admin access or use service accounts. All actions are done via the official Rest API and in scope of the current user. That’s why users need to login to Teams and Jira at the same time, so the app gets a trusted connection for the Teams user and Jira user. To validate the Microsoft account we use the Microsoft provided, client-side library MSAL. To validate the Jira account / login, we use OAuth 1a, via an application link in Jira.
yasoon is hosting the app
The Server/DC version is basically the same as the Cloud version - just packaged for Jira Server & DC.
That means, yasoon is hosting the app, all contents are processed by yasoon services and settings are stored in the yasoon database. You can validate that by analyzing the issue view. You will see that the Teams panel is embedded as iFrame hosted on *.yasoon.com
This is by design and an important part of ensuring the app is secure. For on-premise systems, it’s practically impossible to establish a trusted connection to our cloud systems, without relying on certain browser security features, therefore, we need to host the app on our domain.
A side benefit: Microsoft Teams is being updated constantly and probably one of the fastest evolving software of all times. On average there is a new feature rolled out every 3 days. We keep an close eye on all their changes and we can update the app whenever necessary.
Jira is sending updates into Teams channels on certain events. This is enabled by registering a webhook. You can check the registered webhook(s) for your instance as described here: https://confluence.atlassian.com/adminjiraserver/managing-webhooks-938846912.html