diff --git a/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/util/AuthzUtil.java b/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/util/AuthzUtil.java index 5811e251c0..29620bd069 100644 --- a/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/util/AuthzUtil.java +++ b/components/org.wso2.carbon.identity.oauth/src/main/java/org/wso2/carbon/identity/oauth2/util/AuthzUtil.java @@ -255,7 +255,13 @@ public static boolean isUserAuthorized(AuthenticatedUser authenticatedUser, List // Application id is not required for basic authentication flow. List roleIds = getUserRoles(authenticatedUser, null); - List permissions = getAssociatedScopesForRoles(roleIds, authenticatedUser.getTenantDomain()); + String tenantDomain = authenticatedUser.getTenantDomain(); + if (StringUtils.isNotBlank(authenticatedUser.getAccessingOrganization()) && + !authenticatedUser.getAccessingOrganization(). + equals(authenticatedUser.getUserResidentOrganization())) { + tenantDomain = getAccessingTenantDomain(authenticatedUser); + } + List permissions = getAssociatedScopesForRoles(roleIds, tenantDomain); if (OAuthServerConfiguration.getInstance().isUseLegacyPermissionAccessForUserBasedAuth()) { // Handling backward compatibility for previous access level. List internalScopes = getInternalScopes(authenticatedUser.getTenantDomain());