Azure AD with flow routing & Blaze in Meteor 2.7.3

Hi,

I upgraded from Meteor 2.2.4 to 2.7.3. Along the way I needed to solve couple of package compatibility errors but finally got my project to build and start without any errors. However I don’t manage to get accounts-base, useraccounts:flow-routing, accounts-ui, accounts-azure-active-directory stack to work. in Meteor 2.2.4 the same account stack runs ok so I assume i have correct useraccount and azure-ad configuration as well as routing in place. Also if I remove authentication altogether everything else in my app works as before Meteor upgrade.
I did try replacing flow-routing packages with flow-routing-extra but it didn’t make any difference.

Can anyone suggest correct AzureAD useraccount setup in Meteor 2.7.3 or advice what am I getting wrong with my current setup?

More details below

Thanks!
Serbi
Error I get in browser when I click “sign in with AzureAD” button. Expecting Azure login page as a popup window:

Error: Error: Expected template or null, found: undefined
    at Blaze.View._render (http://localhost:3000/packages/spacebars.js?hash=8047676c5d2a8e41deab62500b720f27eea37eaa:60:13)
    at Blaze.View.doRender (http://localhost:3000/packages/blaze.js?hash=4e97ea5149f9400d1971a350b259a60cb2bf73a5:1943:25)
    at http://localhost:3000/packages/blaze.js?hash=4e97ea5149f9400d1971a350b259a60cb2bf73a5:1796:18
    at Template._withTemplateInstanceFunc (http://localhost:3000/packages/blaze.js?hash=4e97ea5149f9400d1971a350b259a60cb2bf73a5:3688:14)
    at http://localhost:3000/packages/blaze.js?hash=4e97ea5149f9400d1971a350b259a60cb2bf73a5:1795:29
    at Blaze._withCurrentView (http://localhost:3000/packages/blaze.js?hash=4e97ea5149f9400d1971a350b259a60cb2bf73a5:2129:12)
    at viewAutorun (http://localhost:3000/packages/blaze.js?hash=4e97ea5149f9400d1971a350b259a60cb2bf73a5:1794:18)
    at Computation._compute (http://localhost:3000/packages/tracker.js?hash=5ef67b97eaf2ca907dc38459283f2349bada6814:331:38)
    at new Computation (http://localhost:3000/packages/tracker.js?hash=5ef67b97eaf2ca907dc38459283f2349bada6814:228:12)
    at Tracker.autorun (http://localhost:3000/packages/tracker.js?hash=5ef67b97eaf2ca907dc38459283f2349bada6814:601:11)

I ensure sign in for all routes by routing rule:

FlowRouter.triggers.enter([AccountsTemplates.ensureSignedIn]);

azure-ad configuration in meteor_accounts_loginServiceConfiguration collection:

{
  "_id": "qssMxBfYcpL3BGYpE",
  "service": "azureAd",
  "loginStyle": "popup",
  "clientId": "38409d3c-5e07-443a-bea9-adcXXXXXXX",
  "secret": "XXXXXXXXXXXXXXXXXXXXXX",
  "tenantId": "XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"
}

meteor list output:

accounts-base                             2.2.4  A user account system
accounts-ui                               1.4.2  Simple templates to add login widgets to an app
acemtp:algolia                            3.9.1  Package to handle the blazing fast Algolia search engi...
alanning:roles                            1.3.0* Authorization package for Meteor
aldeed:collection2                        3.5.0  Automatic validation of Meteor Mongo insert and update...
aldeed:tabular                            2.1.2  Datatables for large or small datasets in Meteor
aldeed:template-extension                 4.1.0  Adds template features currently missing from the temp...
aslagle:reactive-table                    0.8.45  A reactive table designed for Meteor
blaze-html-templates                      2.0.0  Compile HTML templates into reactive UI with Meteor Blaze
check                                     1.3.1  Check whether a value matches a pattern
chrismbeckett:toastr                      2.1.2_1  Gnome / Growl type non-blocking notifications
dburles:collection-helpers                1.1.0  Transform your collections with helpers that you define
ecmascript                                0.16.2  Compiler plugin that supports ES2015+ in all .js files
erasaur:meteor-lodash                     4.0.0  Wrapper for Lo-Dash v4.0.0
es5-shim                                  4.8.0  Shims and polyfills to improve ECMAScript 5 support
jquery                                    1.11.11* Manipulate the DOM using CSS selectors
kadira:blaze-layout                       2.3.0  Layout Manager for Blaze (works well with FlowRouter)
kadira:flow-router                        2.12.1  Carefully Designed Client Side Router for Meteor
konecty:mongo-counter                     0.0.5_3  Atomic counters stored in MongoDB
less                                      3.0.2* Leaner CSS language
mdg:validated-method                      1.2.0  A simple wrapper for Meteor.methods
meteor-base                               1.5.1  Packages that every Meteor app needs
meteorhacks:zones                         1.6.0  Zone.Js integration for meteor
meteortesting:mocha                       0.5.1* Run Meteor package or app tests with Mocha
mongo                                     1.15.0  Adaptor for using MongoDB and Minimongo over DDP
msavin:mongol                             7.0.1* In-App MongoDB Editor.. now supports Meteor 1.7 and Co...
pathable:accounts-azure-active-directory  1.4.0  Login service for Azure Active Directory
reactive-var                              1.0.11  Reactive variable
ros:publish-counts                        0.5.1  Publish the count of a cursor, in real time.  Supports...
semeano:mongo-algolia-sync                0.1.5+ Automatically sync a Mongo collection to an Algolia index
service-configuration                     1.3.0  Manage the configuration for third-party services
session                                   1.2.0  Session variable
shell-server                              0.5.0  Server-side component of the `meteor shell` command.
standard-minifier-css                     1.8.2  Standard css minifier used with Meteor apps by default.
standard-minifier-js                      2.8.1  Standard javascript minifiers used with Meteor apps by...
themeteorchef:jquery-validation           1.14.0  jQuery Validation by jzaefferer, repackaged for Meteor.
tracker                                   1.2.0  Dependency tracker to allow reactive callbacks
useraccounts:flow-routing                 1.15.0  UserAccounts package providing routes configuration c...
useraccounts:semantic-ui                  1.14.2  Accounts Templates styled for Semantic UI.

Which errors did you receive during update? Related to accounts packages? They were updated during 2.3 release and there may be a broken compatibility with one of your packages.

Errors were related to mongo-algolia-sync package dependencies which I resolved by forking it as local package and updating dependencies, so I doubt it’s related to account stack, but dunno.
Would be nice to have some example app which uses accounts-azure-active-directory, Blaze and flow routing

Did you ever get to the bottom of this? I’m in a similar position trying to uprade an application from Meteor 2.2.4 to 2.3 and running into dependency issues coming from wiseguyeh:accounts-azure-active-directory.

Any hints and tips as to how to get this building and working would be gratefully received as it needs to continue to be able to do SSO via AzureAD and I’d rather we weren’t trapped on an old meteor version to retain this functionality.

Hey @zuuk is the issue due to incompatible dependencies in the package or due to the package not implementing the recent requirements by Azure AD

Hi @jkuester, the issue I had was that the update failed because of incompatible packages - wiseguyeh:accounts-azure-active-directory is pinned to an earlier version of accounts-base (1.1.2). I’ve since found an alternative pathable:accounts-azure-active-directory which isn’t pinned to the earlier accounts-base and seems to have been updated more recently. That has let me upgrade but I haven’t yet been able to prove that it works OK with AzureAD. I’m hopeful that it will though and, if that’s the case, my problem is solved :crossed_fingers:. Thanks for taking an interest.

1 Like

Package updates and maintenance is a constant topic in the Meteor Community which is why it’s good when people report sich issues and, even better, when they found a solution :+1:

One thing to consider: you can always clone the packages locally into a project’s top-level folder packages and change the dependencies yourself, in case the maintainer isn’t responding or the package is abandoned.

https://guide.meteor.com/writing-atmosphere-packages.html#overriding-atmosphere-packages

@zuuk how to resolve this issue
I am currently using Meteor js version 2.15 and need to install accounts-base-ui. However, when attempting to add wiseguyeh:accounts-azure-active-directory, I encounter errors. Could you please advise on the appropriate version

Try using pathable:accounts-azure-active-directory in place of wiseguyeh:accounts-azure-active-directory