使用 IdentityServer4 的多租户 Azure AD 身份验证
Multi-Tenant Azure AD authentication with IdentityServer4
我已经配置了 Identity Server 4 并使用了 Azure AD 身份验证。如果我在身份服务器中使用租户特定权限 URL,一切正常。这样,只有来自该租户的用户才能登录。我想允许多个域登录并想在后端验证发行者。
为了支持我需要使用 Azure AD 的通用登录端点,登录后我在重定向到 Identity Server 的 signin-aad 端点时收到以下错误。我应该做什么配置才能手动验证颁发者?
SecurityTokenInvalidIssuerException: IDX10205: Issuer validation failed. Issuer: 'https://sts.windows.net/94b73406-72db-4abb-a142-adfdfdfdfdbc/'. Did not match: validationParameters.ValidIssuer: 'null' or validationParameters.ValidIssuers: 'https://sts.windows.net/{tenantid}/'.
Microsoft.IdentityModel.Tokens.Validators.ValidateIssuer(string issuer, SecurityToken securityToken, TokenValidationParameters validationParameters)
如果您的域可以在运行时动态增长,则在 TokenValidationParameters
中将 ValidateIssuer
设置为 false
。如果您预先确定了一组域,则将它们全部添加到 ValidIssuers
.
我已经配置了 Identity Server 4 并使用了 Azure AD 身份验证。如果我在身份服务器中使用租户特定权限 URL,一切正常。这样,只有来自该租户的用户才能登录。我想允许多个域登录并想在后端验证发行者。
为了支持我需要使用 Azure AD 的通用登录端点,登录后我在重定向到 Identity Server 的 signin-aad 端点时收到以下错误。我应该做什么配置才能手动验证颁发者?
SecurityTokenInvalidIssuerException: IDX10205: Issuer validation failed. Issuer: 'https://sts.windows.net/94b73406-72db-4abb-a142-adfdfdfdfdbc/'. Did not match: validationParameters.ValidIssuer: 'null' or validationParameters.ValidIssuers: 'https://sts.windows.net/{tenantid}/'. Microsoft.IdentityModel.Tokens.Validators.ValidateIssuer(string issuer, SecurityToken securityToken, TokenValidationParameters validationParameters)
如果您的域可以在运行时动态增长,则在 TokenValidationParameters
中将 ValidateIssuer
设置为 false
。如果您预先确定了一组域,则将它们全部添加到 ValidIssuers
.