I'm trying to get OAuth/OpenID based authentication working for my Node-RED instance. I'm using Azure AD as identity provider and the passport-azure-ad module. My relevant sections of my settings.js look like this
adminAuth: {
type:"strategy",
strategy: {
name: "azuread-openidconnect",
label: 'Sign in with Azure AD',
icon: "fa-windows",
strategy: require("passport-azure-ad").OIDCStrategy,
options: {
identityMetadata: "https://login.microsoftonline.com/<tenent id>/v2.0/.well-known/openid-configuration",
clientID: "<client id>",
responseType: "id_token",
responseMode: "form_post",
redirectUrl: "https://localhost:1880/auth/strategy/callback",
issuer: "https://login.microsoftonline.com/<tenant id>/v2.0",
scope: ['openid', 'profile', 'email'],
verify: function(token, tokenSecret, profile, done) {
done(null, profile);
}
}
},
users: function(user) {
return Promise.resolve({ username: user, permissions: "*" });
}
},
https: {
key: require("fs").readFileSync(require("path").join(__dirname,'key.pem')),
cert: require("fs").readFileSync(require("path").join(__dirname,'cert.pem'))
},
This works as far as it shows a login screen where I can click on the "Sign in with Azure AD" button. It then redirects to Azure AD for authentication and comes back with an identity token.
However, the final POST to /auth/strategy/callback fails with a HTTP 404 message. It seems that Node-RED is not listening on the redirect URL.
Any idea what I'm doing wrong?