Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OIDC SSO AZURE MULTITENANT #300

Open
nlonge opened this issue Nov 16, 2023 · 3 comments
Open

OIDC SSO AZURE MULTITENANT #300

nlonge opened this issue Nov 16, 2023 · 3 comments

Comments

@nlonge
Copy link

nlonge commented Nov 16, 2023

Bonjour,

Dans ma dernière "Issue" (#295) nous ne parvenions pas à effectuer une connexion SSO via AzureAD avec OIDC. Cela venait d'un problème de configuration dans mon fichier config.js.
Depuis aucun problème pour se connecter depuis notre domaine en utilisant notre tenant.

Nous voudrions désormais mettre en place une configuration qui permettrait de se connecter depuis différents domaines.
Pour cela nous avons autorisé le multilocataire (multi tenant) sur notre application Azure AD.

Nous avons donc modifié les fichiers de configs en conséquence :

  • config.js :
    config js

  • linshare.properties :
    image

Lors de la tentative de connexion SSO depuis notre domaine principal ou un autre domaine :
error_issuer

Lors d'une tentative de connexion SSO via une adresse microsoft personnelle le consentement est bien demandé.
image
Notre configuration multitenant (common => tenant pro + perso) est donc correctement configurée au niveau d'Azure.
Après le consentement, toujours la même erreur :
image

Je vous ajoute le Manifest de notre application dans Azure :

{
	"id": "48dd0b50-3bc1-4860-8143-3a96410186d8",
	"acceptMappedClaims": true,
	"accessTokenAcceptedVersion": 2,
	"addIns": [],
	"allowPublicClient": null,
	"appId": "3f376616-d86f-42de-8e5f-081bbc303e8d",
	"appRoles": [],
	"oauth2AllowUrlPathMatching": false,
	"createdDateTime": "2023-10-17T07:49:47Z",
	"description": null,
	"certification": null,
	"disabledByMicrosoftStatus": null,
	"groupMembershipClaims": null,
	"identifierUris": [
		"api://3f376616-d86f-42de-8e5f-081bbc303e8d"
	],
	"informationalUrls": {
		"termsOfService": null,
		"support": null,
		"privacy": null,
		"marketing": null
	},
	"keyCredentials": [],
	"knownClientApplications": [],
	"logoUrl": null,
	"logoutUrl": null,
	"name": "TRANSFERT-LINSHARE",
	"notes": null,
	"oauth2AllowIdTokenImplicitFlow": true,
	"oauth2AllowImplicitFlow": false,
	"oauth2Permissions": [
		{
			"adminConsentDescription": "Autoriser l'accès à l'API d'authentification pour Linshare",
			"adminConsentDisplayName": "Linshare Autorisation",
			"id": "8de0429d-ea50-4fbd-ba26-9bd2c657df00",
			"isEnabled": true,
			"lang": null,
			"origin": "Application",
			"type": "Admin",
			"userConsentDescription": null,
			"userConsentDisplayName": null,
			"value": "linshare-scope"
		}
	],
	"oauth2RequirePostResponse": false,
	"optionalClaims": null,
	"orgRestrictions": [],
	"parentalControlSettings": {
		"countriesBlockedForMinors": [],
		"legalAgeGroupRule": "Allow"
	},
	"passwordCredentials": [
		{
			"customKeyIdentifier": null,
			"endDate": "2025-10-16T19:50:34.901Z",
			"keyId": "bfa9ffc1-3926-452f-ac7c-3d9569e01000",
			"startDate": "2023-10-17T19:50:34.901Z",
			"value": null,
			"createdOn": "2023-10-17T19:50:58.1442932Z",
			"hint": "S30",
			"displayName": "Linshare"
		}
	],
	"preAuthorizedApplications": [],
	"publisherDomain": "XXX.fr",
	"replyUrlsWithType": [
		{
			"url": "https://XXX.fr/new/oidc/callback",
			"type": "Spa"
		},
		{
			"url": "https://XXX.fr/new/oidc/callback",
			"type": "Spa"
		},
		{
			"url": "https://XXX.fr/oidc/callback",
			"type": "Spa"
		},
		{
			"url": "https://XXX.fr/oidc/callback",
			"type": "Spa"
		}
	],
	"requiredResourceAccess": [
		{
			"resourceAppId": "00000003-0000-0000-c000-000000000000",
			"resourceAccess": [
				{
					"id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
					"type": "Scope"
				}
			]
		}
	],
	"samlMetadataUrl": null,
	"signInUrl": null,
	"signInAudience": "AzureADandPersonalMicrosoftAccount",
	"tags": [],
	"tokenEncryptionKeyId": null
}

La question est donc de savoir s'il est possible de configurer multi tenant dans Linshare (au niveau du config.js ou linshare.properties) pour une même application AzureAD ? En effet nous avons essayé de préciser plusieurs "authority" ou "oidc.issuerUri" sans résultat. Cette fonctionnalité nous semble essentielle pour nous et permet de garantir un niveau de sécurité non-comparable à des connexions LDAPS (que nous ne voulons plus mettre en place).

De ce que l'on a vu, la configuration multitenant semble possible via LemonSSO mais cela nous impose d'ajouter une nouvelle brique et de passer un temps considérable dans la mise en place d'une nouvelle infrastructure (ce que que nous aimerions éviter).

J'ai essayé de vous donner un maximum d'information, je reste à votre dispo pour tous besoins d'informations complémentaires.

Merci d'avance et bonne journée.

@wboudiche
Copy link
Contributor

Hello
For the moment we support only on oidc provider

@nlonge
Copy link
Author

nlonge commented Nov 20, 2023

Hi, is it planned in your schedule ?
thx

@wboudiche
Copy link
Contributor

Hello
Actually it's not planned but if it will be paid by a customer was can priorze it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants