I would advice to use a different field that can be retrieved with either the Entra ID connector or Office365Users, but if this is the only option I think you could map the description field to onPremiseExtensionAttributes
And then retrieve it using Graph APIs user endpoint
https://graph.microsoft.com/v1.0/users?$select=onPremisesExtensionAttributes
This is the response. As you can see there's 15 free attributes, if non are mapped already
"value": [
{
"onPremisesExtensionAttributes": {
"extensionAttribute1": null,
"extensionAttribute2": null,
"extensionAttribute3": null,
"extensionAttribute4": null,
"extensionAttribute5": null,
"extensionAttribute6": null,
"extensionAttribute7": null,
"extensionAttribute8": null,
"extensionAttribute9": null,
"extensionAttribute10": null,
"extensionAttribute11": null,
"extensionAttribute12": null,
"extensionAttribute13": null,
"extensionAttribute14": null,
"extensionAttribute15": null
}
Regarding the licensing issue, graph api can actually be called from canvas apps using the Office365Groups connector. Here is a good tutorial from Reza
Tried it in app and it was successful
Set(glbTestGraphCall, Office365Groups.HttpRequest("https://graph.microsoft.com/v1.0/users?$select=onPremisesExtensionAttributes", "GET", ""));
Got the same response in the monitor as it was in Graph explorer, so you could use these attributes in the app as well