mirror of
https://github.com/logto-io/logto.git
synced 2024-12-16 20:26:19 -05:00
chore(core): update generation of SAML service provider entity id (#4943)
This commit is contained in:
parent
5fd390a8ce
commit
df6d0894ba
2 changed files with 8 additions and 17 deletions
|
@ -57,12 +57,14 @@ class SamlConnector {
|
||||||
tenantId: string,
|
tenantId: string,
|
||||||
ssoConnectorId: string
|
ssoConnectorId: string
|
||||||
) {
|
) {
|
||||||
|
const tenantEndpoint = getTenantEndpoint(tenantId, EnvSet.values);
|
||||||
|
|
||||||
this.assertionConsumerServiceUrl = buildAssertionConsumerServiceUrl(
|
this.assertionConsumerServiceUrl = buildAssertionConsumerServiceUrl(
|
||||||
getTenantEndpoint(tenantId, EnvSet.values),
|
tenantEndpoint,
|
||||||
ssoConnectorId
|
ssoConnectorId
|
||||||
);
|
);
|
||||||
|
|
||||||
this.spEntityId = buildSpEntityId(EnvSet.values, tenantId, ssoConnectorId);
|
this.spEntityId = buildSpEntityId(tenantEndpoint, ssoConnectorId);
|
||||||
|
|
||||||
this.serviceProviderMetadata = {
|
this.serviceProviderMetadata = {
|
||||||
entityId: this.spEntityId,
|
entityId: this.spEntityId,
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import * as validator from '@authenio/samlify-node-xmllint';
|
import * as validator from '@authenio/samlify-node-xmllint';
|
||||||
import { ConnectorError, ConnectorErrorCodes } from '@logto/connector-kit';
|
import { ConnectorError, ConnectorErrorCodes } from '@logto/connector-kit';
|
||||||
import { type GlobalValues } from '@logto/shared';
|
|
||||||
import { type Optional, conditional, appendPath } from '@silverhand/essentials';
|
import { type Optional, conditional, appendPath } from '@silverhand/essentials';
|
||||||
import { got } from 'got';
|
import { got } from 'got';
|
||||||
import * as saml from 'samlify';
|
import * as saml from 'samlify';
|
||||||
|
@ -181,27 +180,17 @@ export const attributeMappingPostProcessor = (
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate the entity id for the current SAML SSO connector using admin console path, current tenant id and connector id.
|
* Generate the entity id for the current SAML SSO connector using tenant endpoint path and connector id.
|
||||||
* Used URL-like entity id here since some identity providers will check the format of the entity id.
|
* Used URL-like entity id here since some identity providers will check the format of the entity id.
|
||||||
* See {@link https://spaces.at.internet2.edu/display/federation/saml-metadata-entityid} to know more details about how should `entityId` look like.
|
* See {@link https://spaces.at.internet2.edu/display/federation/saml-metadata-entityid} to know more details about how should `entityId` look like.
|
||||||
*
|
*
|
||||||
* @param globalValues Global setups
|
* @param baseUrl Base endpoint for the current service
|
||||||
* @param tenantId Current tenant id.
|
|
||||||
* @param connectorId Current connector id.
|
* @param connectorId Current connector id.
|
||||||
*
|
*
|
||||||
* @returns Entity id for the current SAML SSO connector.
|
* @returns Entity id for the current SAML SSO connector.
|
||||||
*/
|
*/
|
||||||
export const buildSpEntityId = (
|
export const buildSpEntityId = (baseUrl: URL, connectorId: string) => {
|
||||||
globalValues: GlobalValues,
|
return appendPath(baseUrl, `/enterprise-sso/${connectorId}`).toString();
|
||||||
tenantId: string,
|
|
||||||
connectorId: string
|
|
||||||
) => {
|
|
||||||
const { isCloud, cloudUrlSet, adminUrlSet } = globalValues;
|
|
||||||
return appendPath(
|
|
||||||
isCloud ? cloudUrlSet.endpoint : adminUrlSet.endpoint,
|
|
||||||
tenantId,
|
|
||||||
`/enterprise-sso/${connectorId}`
|
|
||||||
).toString();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue