Skip to content

Replaced JIT with Register Strong Auth #2613

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

Merged
merged 4 commits into from
May 21, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
MSALNativeAuthLogger.logPII(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request does not update CHANGELOG.md.

Please consider if this change would be noticeable to a partner or user and either update CHANGELOG.md or resolve this conversation.

level: .error,
context: telemetryInfo.context,
format: "JIT: an error occurred after calling /introspect API: \(MSALLogMask.maskPII(error))"
format: "RegisterStrongAuth: an error occurred after calling /introspect API: \(MSALLogMask.maskPII(error))"
)
stopTelemetryEvent(telemetryInfo, error: error)
return .init(.error(error: error), correlationId: context.correlationId())
Expand All @@ -101,7 +101,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
authMethod: authMethod,
verificationContact: verificationContact,
context: context,
logErrorMessage: "JIT RequestChallenge: cannot create challenge request object"
logErrorMessage: "Request RegisterStrongAuth Challenge: cannot create challenge request object"
)
return await handleChallengeResponse(
result,
Expand All @@ -122,7 +122,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
grantType: grantType,
context: context,
oobCode: challenge,
logErrorMessage: "JIT RequestContinue: cannot create challenge request object"
logErrorMessage: "Request RegisterStrongAuth Continue: cannot create challenge request object"
)
return await handleSubmitChallengeResponse(
result,
Expand Down Expand Up @@ -196,7 +196,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
do {
return try jitRequestProvider.introspect(parameters: params, context: context)
} catch {
MSALNativeAuthLogger.log(level: .error, context: context, format: "Error creating JIT introspect request: \(error)")
MSALNativeAuthLogger.log(level: .error, context: context, format: "Error creating RegisterStrongAuth Introspect Request: \(error)")
return nil
}
}
Expand All @@ -220,7 +220,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
)
return try jitRequestProvider.challenge(parameters: params, context: context)
} catch {
MSALNativeAuthLogger.log(level: .error, context: context, format: "Error creating JIT Challenge Request: \(error)")
MSALNativeAuthLogger.log(level: .error, context: context, format: "Error creating RegisterStrongAuth Challenge Request: \(error)")
return nil
}
}
Expand All @@ -238,7 +238,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
do {
return try jitRequestProvider.continue(parameters: params, context: context)
} catch {
MSALNativeAuthLogger.log(level: .error, context: context, format: "Error creating JIT continue request: \(error)")
MSALNativeAuthLogger.log(level: .error, context: context, format: "Error creating RegisterStrongAuth Continue Request: \(error)")
return nil
}
}
Expand All @@ -255,7 +255,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
MSALNativeAuthLogger.logPII(
level: .error,
context: context,
format: "JIT request continue: received continue error response: \(MSALLogMask.maskPII(error.errorDescription))"
format: "Request RegisterStrongAuth Continue: received continue error response: \(MSALLogMask.maskPII(error.errorDescription))"
)
stopTelemetryEvent(event, context: context, error: error)
return .init(.error(
Expand Down Expand Up @@ -306,7 +306,7 @@ final class MSALNativeAuthJITController: MSALNativeAuthBaseController, MSALNativ
MSALNativeAuthLogger.logPII(
level: .error,
context: context,
format: "JIT request challenge: received challenge error response: \(MSALLogMask.maskPII(error.errorDescription))"
format: "Request RegisterStrongAuth Challenge: received challenge error response: \(MSALLogMask.maskPII(error.errorDescription))"
)
stopTelemetryEvent(event, context: context, error: error)
return .init(.error(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,11 +159,11 @@ final class MSALNativeAuthSignInController: MSALNativeAuthTokenController, MSALN
self.stopTelemetryEvent(telemetryInfo.event, context: context, error: error)
return .init(.failure(error), correlationId: context.correlationId())
case .jitAuthMethodsSelectionRequired(let authMethods, let jitRequiredState):
MSALNativeAuthLogger.log(level: .info, context: context, format: "JIT required after sing in after previous flow")
MSALNativeAuthLogger.log(level: .info, context: context, format: "RegisterStrongAuth required after sing in after previous flow")
let jitController = createJITController()
guard let authMethod = authMethods.first else {
let error = SignInAfterSignUpError(correlationId: context.correlationId())
MSALNativeAuthLogger.log(level: .error, context: context, format: "JIT required, did not receive any default methods")
MSALNativeAuthLogger.log(level: .error, context: context, format: "RegisterStrongAuth required, did not receive any default methods")
self.stopTelemetryEvent(telemetryInfo.event, context: context, error: error)
return .init(.failure(error), correlationId: context.correlationId())
}
Expand All @@ -181,14 +181,14 @@ final class MSALNativeAuthSignInController: MSALNativeAuthTokenController, MSALN
let error = SignInAfterSignUpError(correlationId: context.correlationId())
MSALNativeAuthLogger.log(level: .error,
context: context,
format: "Request JIT challenge, received verification required on SignInAfterPreviousFlow")
format: "Request RegisterStrongAuth Challenge, received verification required on SignInAfterPreviousFlow")
self.stopTelemetryEvent(telemetryInfo.event, context: context, error: error)
return .init(.failure(error), correlationId: context.correlationId())
case .error(let apiError, _):
let error = SignInAfterSignUpError(correlationId: context.correlationId())
MSALNativeAuthLogger.logPII(level: .error,
context: context,
format: "Request JIT challenge, received invalid response \(MSALLogMask.maskPII(apiError.errorDescription))")
format: "Request RegisterStrongAuth Challenge, received invalid response \(MSALLogMask.maskPII(apiError.errorDescription))") // swiftlint:disable:this line_length
self.stopTelemetryEvent(telemetryInfo.event, context: context, error: error)
return .init(.failure(error), correlationId: context.correlationId())
}
Expand Down Expand Up @@ -314,7 +314,7 @@ final class MSALNativeAuthSignInController: MSALNativeAuthTokenController, MSALN
self?.stopTelemetryEvent(telemetryInfo.event, context: context, delegateDispatcherResult: result)
})
case.jitRequired(continuationToken: let newContinuationToken):
MSALNativeAuthLogger.log(level: .info, context: context, format: "JIT required after submit password")
MSALNativeAuthLogger.log(level: .info, context: context, format: "RegisterStrongAuth required after submit password")
let jitController = createJITController()
let jitIntrospectResponse = await jitController.getJITAuthMethods(continuationToken: newContinuationToken, context: context)
switch jitIntrospectResponse.result {
Expand Down Expand Up @@ -626,7 +626,7 @@ final class MSALNativeAuthSignInController: MSALNativeAuthTokenController, MSALN
return .init(.error(error: error, newState: nil), correlationId: context.correlationId())
case .jitRequired:
let error = VerifyCodeError(type: .generalError, correlationId: context.correlationId())
MSALNativeAuthLogger.log(level: .error, context: context, format: "Submit code: received unexpected JIT required API result")
MSALNativeAuthLogger.log(level: .error, context: context, format: "Submit code: received unexpected RegisterStrongAuth required API result") // swiftlint:disable:this line_length
stopTelemetryEvent(telemetryInfo.event, context: context, error: error)
return .init(.error(error: error, newState: nil), correlationId: context.correlationId())
}
Expand Down Expand Up @@ -812,7 +812,7 @@ final class MSALNativeAuthSignInController: MSALNativeAuthTokenController, MSALN
MSALNativeAuthLogger.log(level: .info, context: telemetryInfo.context, format: "Multi factor authentication required")
return .awaitingMFA(state)
case .jitRequired(let continuationToken):
MSALNativeAuthLogger.log(level: .info, context: telemetryInfo.context, format: "JIT required.")
MSALNativeAuthLogger.log(level: .info, context: telemetryInfo.context, format: "RegisterStrongAuth required.")
let jitController = createJITController()
let jitIntrospectResponse = await jitController.getJITAuthMethods(continuationToken: continuationToken,
context: telemetryInfo.context)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ final class MSALNativeAuthTokenResponseValidator: MSALNativeAuthTokenResponseVal
MSALNativeAuthLogger.log(
level: .error,
context: context,
format: "Token: JIT required response, expected continuation token not empty")
format: "Token: RegisterStrongAuth required response, expected continuation token not empty")
return .error(.generalError(
MSALNativeAuthTokenResponseError(errorDescription: MSALNativeAuthErrorMessage.unexpectedResponseBody)
))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ extension RegisterStrongAuthBaseState {
verificationContact: String?) async -> MSALNativeAuthJITControlling.JITRequestChallengeControllerResponse {
let context = MSALNativeAuthRequestContext(correlationId: correlationId)
MSALNativeAuthLogger.log(level: .warning, context: context, format: MSALNativeAuthLogMessage.privatePreviewLog)
MSALNativeAuthLogger.log(level: .info, context: context, format: "JIT, request challenge")
MSALNativeAuthLogger.log(level: .info, context: context, format: "RegisterStrongAuth, Request Challenge")
return await controller.requestJITChallenge(continuationToken: continuationToken,
authMethod: authMethod,
verificationContact: verificationContact,
Expand All @@ -40,9 +40,9 @@ extension RegisterStrongAuthVerificationRequiredState {
func submitChallengeInternal(challenge: String) async -> MSALNativeAuthJITControlling.JITSubmitChallengeControllerResponse {
let context = MSALNativeAuthRequestContext(correlationId: correlationId)
MSALNativeAuthLogger.log(level: .warning, context: context, format: MSALNativeAuthLogMessage.privatePreviewLog)
MSALNativeAuthLogger.log(level: .info, context: context, format: "JIT, submit challenge")
MSALNativeAuthLogger.log(level: .info, context: context, format: "RegisterStrongAuth, Submit Challenge")
guard inputValidator.isInputValid(challenge) else {
MSALNativeAuthLogger.log(level: .error, context: context, format: "JIT, invalid challenge")
MSALNativeAuthLogger.log(level: .error, context: context, format: "RegisterStrongAuth, invalid challenge")
return .init(
.error(error: RegisterStrongAuthSubmitChallengeError(type: .invalidChallenge, correlationId: correlationId), newState: self),
correlationId: context.correlationId()
Expand Down