<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AuthenticationServices",
  "identifier" : "/documentation/AuthenticationServices/ASAccountAuthenticationModificationViewController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Authentication Services"
    ],
    "preciseIdentifier" : "c:objc(cs)ASAccountAuthenticationModificationViewController"
  },
  "title" : "ASAccountAuthenticationModificationViewController"
}
-->

# ASAccountAuthenticationModificationViewController

A view controller that can upgrade user passwords to strong passwords, or convert accounts to use Sign in with Apple.

```
class ASAccountAuthenticationModificationViewController
```

## Overview

Adding an account modification extension lets your app seamlessly upgrade user passwords to strong passwords, or convert from using passwords to using Sign in with Apple. The entire process can be automatic, requiring no user interaction, or you can include interactions, such as two-factor authentication confirmation.

> Note:
> This class ignores calls from Mac apps built with Mac Catalyst.

## Topics

### Upgrading to Sign in with Apple

[`convertAccountToSignInWithAppleWithoutUserInteraction(for:existingCredential:userInfo:)`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationViewController/convertAccountToSignInWithAppleWithoutUserInteraction(for:existingCredential:userInfo:))

Converts an account’s authentication mechanism from using passwords to using Sign in with Apple.

[`prepareInterfaceToConvertAccountToSignInWithApple(for:existingCredential:userInfo:)`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationViewController/prepareInterfaceToConvertAccountToSignInWithApple(for:existingCredential:userInfo:))

Prepares the view controller’s interface that displays when converting an account that uses password authentication to use Sign in with Apple.

  <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/NSExtension/ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple>

### Upgrading to Strong Passwords

[`changePasswordWithoutUserInteraction(for:existingCredential:newPassword:userInfo:)`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationViewController/changePasswordWithoutUserInteraction(for:existingCredential:newPassword:userInfo:))

Upgrades a user’s weak password to a strong password.

[`prepareInterfaceToChangePassword(for:existingCredential:newPassword:userInfo:)`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationViewController/prepareInterfaceToChangePassword(for:existingCredential:newPassword:userInfo:))

Prepares the view controller’s interface that displays when upgrading from a weak password to a strong password.

  <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/NSExtension/ASAccountAuthenticationModificationSupportsStrongPasswordChange>

  <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/NSExtension/ASAccountAuthenticationModificationPasswordGenerationRequirements>

  <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/ASAccountAuthenticationModificationOptOutOfSecurityPromptsOnSignIn>

### Handling Modification Requests

[`cancelRequest()`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationViewController/cancelRequest())

Cancels a request that the user initiated.

[`ASAccountAuthenticationModificationControllerDelegate`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationControllerDelegate)

An interface you implement for receiving success and failure statuses about modification of an account’s authentication properties.

[`ASAccountAuthenticationModificationControllerPresentationContextProviding`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationControllerPresentationContextProviding)

An interface you implement to coordinate presentation of the user interface when modifying an account’s authentication properties.

### Getting the Extension Context

[`extensionContext`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationViewController/extensionContext)

The context your account authentication modification extension uses to provide information to the system.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)