AD FS: перенаправить пользователя на страницу входа при смене пароля? - PullRequest
2 голосов
/ 25 октября 2019

Я использую OpenID Connect и OAuth 2.0 для аутентификации и авторизации пользователей непосредственно в AD FS 4.0. Я добавил свое приложение Angular + ASP.NET Core как приложение Native и Wep API в группы приложений. Если я изменю пароль пользователя в AD, пользователь будет перенаправлен на страницу входа только через 1 час. Мне нужно перенаправить пользователя на страницу входа при смене пароля за пару минут.

Для этого я уменьшил TokenLifetime (время жизни токена доступа) с 60 до 2 минут в свойствах AdfsWebApiApplication. Каждые 2 минуты проверяется токен обновления, но, несмотря на изменение пароля, перенаправление не происходит. Пользователь по-прежнему перенаправлен на страницу входа через 60 минут. Также я попытался уменьшить время SSOLifetime до 5 минут в AdfsProperties, но в этом случае пользователь перенаправляется на страницу входа каждые 5 минут независимо от статуса смены пароля.

Get-AdfsWebApiApplication:

AccessControlPolicyName              : Permit everyone
AccessControlPolicyParameters        : 
AdditionalAuthenticationRules        : 
AllowedAuthenticationClassReferences : {}
AllowedClientTypes                   : Public, Confidential
ApplicationGroupIdentifier           : MyApp
AlwaysRequireAuthentication          : False
ClaimsProviderName                   : {}
DelegationAuthorizationRules         : 
Enabled                              : True
ImpersonationAuthorizationRules      : 
IssuanceAuthorizationRules           : 
IssueOAuthRefreshTokensTo            : AllDevices
IssuanceTransformRules               : ...


NotBeforeSkew                        : 0
Description                          : 
PublishedThroughProxy                : False
RefreshTokenProtectionEnabled        : False
RequestMFAFromClaimsProviders        : False
ResultantPolicy                      : RequireFreshAuthentication:False
                                       IssuanceAuthorizationRules:
                                       {
                                         Permit everyone
                                       }
TokenLifetime                        : 2

Get-AdfsProperties:

AddProxyAuthorizationRules                 : ...
ArtifactDbConnection                       :....
AuditLevel                                 : {Basic}
AutoCertificateRollover                    : True
CertificateCriticalThreshold               : 2
CertificateDuration                        : 365
CertificateGenerationThreshold             : 20
CertificatePromotionThreshold              : 5
CertificateRolloverInterval                : 720
CertificateSharingContainer                : 
CertificateThresholdMultiplier             : 1440
ClientCertRevocationCheck                  : None
ContactPerson                              : Microsoft.IdentityServer.Management.Resources.ContactPerson
DisplayName                                : login
IntranetUseLocalClaimsProvider             : False
ExtendedProtectionTokenCheck               : Allow
FederationPassiveAddress                   : /adfs/ls/
HostName                                   : login
HttpPort                                   : 80
HttpsPort                                  : 443
TlsClientPort                              : 49443
Identifier                                 : <identifier>
IdTokenIssuer                              : <issuer>
InstalledLanguage                          : en-US
LogLevel                                   : {Errors, FailureAudits, Information, Verbose...}
MonitoringInterval                         : 1440
NetTcpPort                                 : 1501
NtlmOnlySupportedClientAtProxy             : False
OrganizationInfo                           : 
PreventTokenReplays                        : False
ProxyTrustTokenLifetime                    : 21600
ReplayCacheExpirationInterval              : 60
SignedSamlRequestsRequired                 : False
SamlMessageDeliveryWindow                  : 5
SignSamlAuthnRequests                      : False
SsoLifetime                                : 480
PersistentSsoLifetimeMins                  : 129600
KmsiLifetimeMins                           : 1440
PersistentSsoEnabled                       : True
PersistentSsoCutoffTime                    : 01/01/0001 00:00:00
KmsiEnabled                                : False
LoopDetectionEnabled                       : True
LoopDetectionTimeIntervalInSeconds         : 20
LoopDetectionMaximumTokensIssuedInInterval : 5
PasswordValidationDelayInMinutes           : 60
SendClientRequestIdAsQueryStringParameter  : False
WIASupportedUserAgents                     : {MSAuthHost/1.0/In-Domain, MSIE 6.0, MSIE 7.0, MSIE 8.0...}
BrowserSsoSupportedUserAgents              : {Windows NT 1, Windows Phone 1}
ExtranetLockoutThreshold                   : 2147483647
ExtranetLockoutEnabled                     : False
ExtranetObservationWindow                  : 00:30:00
GlobalRelyingPartyClaimsIssuancePolicy     : ...
ExtranetLockoutRequirePDC                  : True
LocalAuthenticationTypesEnabled            : True
RelayStateForIdpInitiatedSignOnEnabled     : False
BrowserSsoEnabled                          : True
DelegateServiceAdministration              : 
AllowSystemServiceAdministration           : False
AllowLocalAdminsServiceAdministration      : True
CurrentFarmBehavior                        : 3
DeviceUsageWindowInDays                    : 14
EnableIdpInitiatedSignonPage               : False
IgnoreTokenBinding                         : False

Я полагаю, что PasswordValidationDelayInMinutes = 60 отвечает за это. Но я не могу изменить этот параметр с помощью команды Set-AdfsProperties.

Что я могу сделать, чтобы перенаправить пользователя на страницу входа через 2 минуты?

1 Ответ

0 голосов
/ 28 октября 2019

Через 2 минуты приложение. тайм-аут истекает - идет в ADFS - токен не истекает, потому что это 5 минут, поэтому новый токен выдан.

Таким образом, тайм-аут ADFS должен быть меньше, чем приложение. тайм-аут.

...