﻿<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "AuthenticationServices",
  "identifier" : "/documentation/AuthenticationServices",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "Authentication Services"
    ],
    "preciseIdentifier" : "AuthenticationServices"
  },
  "title" : "Authentication Services"
}
-->

# Authentication Services

Make it easy for users to log into apps and services.

## Overview

Use the Authentication Services framework to improve the experience of users when they enter credentials to establish their identity.

- Give users the ability to sign into your services with their Apple ID.
- Enable users to look up their stored passwords from within the sign-in flow of an app.
- Provide a passwordless registration and authentication workflow for apps and websites using iCloud Keychain or a physical security key.
- Perform automatic security upgrades from weak to strong passwords, or upgrade to using Sign in with Apple.
- Share data between an app and a web browser using technologies like OAuth to leverage existing web-based logins in the app.
- Create a single sign-on (SSO) experience in an enterprise app.

Simple and straightforward sign-up and sign-in flows reduce the burden on the user to remember passwords, which may improve security.

## Topics

### Authorization requests

[`class ASAuthorizationController`](/documentation/AuthenticationServices/ASAuthorizationController)

A controller that manages authorization requests that a provider creates.

[`struct AuthorizationController`](/documentation/AuthenticationServices/AuthorizationController)

A SwiftUI environment value that views use to perform authorization requests.

[`enum ASAuthorizationResult`](/documentation/AuthenticationServices/ASAuthorizationResult)

Describes the outcome of a successful authorization request.

### Sign In with Apple

[Implementing User Authentication with Sign in with Apple](/documentation/AuthenticationServices/implementing-user-authentication-with-sign-in-with-apple)

Provide a way for users of your app to set up an account and start using your services.

[Simplifying User Authentication in a tvOS App](/documentation/AuthenticationServices/simplifying-user-authentication-in-a-tvos-app)

Build a fluid sign-in experience for your tvOS apps using AuthenticationServices.

[`struct SignInWithAppleButton`](/documentation/AuthenticationServices/SignInWithAppleButton)

A SwiftUI view that creates the Sign in with Apple button for display.

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.applesignin>

[`class ASAuthorizationAppleIDProvider`](/documentation/AuthenticationServices/ASAuthorizationAppleIDProvider)

A mechanism for generating requests to authenticate users based on their Apple ID.

[`class ASAuthorizationAppleIDCredential`](/documentation/AuthenticationServices/ASAuthorizationAppleIDCredential)

A credential that results from a successful Apple ID authentication.

### Passwords

  <doc://com.apple.documentation/documentation/Security/password-autofill>

[`class ASAuthorizationPasswordProvider`](/documentation/AuthenticationServices/ASAuthorizationPasswordProvider)

A mechanism for generating requests to perform keychain credential sharing.

[`class ASPasswordCredential`](/documentation/AuthenticationServices/ASPasswordCredential)

A password credential.

[Password use in web browsers](/documentation/AuthenticationServices/password-use-in-web-browsers)

Register and authenticate website users by using passwords.

### Passkeys

[Public-Private Key Authentication](/documentation/AuthenticationServices/public-private-key-authentication)

Register and authenticate users with passkeys and security keys, without using passwords.

[Passkey use in web browsers](/documentation/AuthenticationServices/passkey-use-in-web-browsers)

Register and authenticate website users by using passkeys.

[Performing fast account creation with passkeys](/documentation/AuthenticationServices/performing-fast-account-creation-with-passkeys)

Allow people to quickly create an account with passkeys and associated domains.

[Connecting to a service with passkeys](/documentation/AuthenticationServices/connecting-to-a-service-with-passkeys)

Allow users to sign in to a service without typing a password.

### Web authentication sessions

[Authenticating a User Through a Web Service](/documentation/AuthenticationServices/authenticating-a-user-through-a-web-service)

Use a web authentication session to authenticate a user in your app.

[Securing Logins with iCloud Keychain Verification Codes](/documentation/AuthenticationServices/securing-logins-with-icloud-keychain-verification-codes)

Use time-based codes generated on-device for a secure authentication experience.

[`class ASWebAuthenticationSession`](/documentation/AuthenticationServices/ASWebAuthenticationSession)

A session that an app uses to authenticate a user through a web service.

[`struct WebAuthenticationSession`](/documentation/AuthenticationServices/WebAuthenticationSession)

A SwiftUI environment value that views use to authenticate someone using a web service.

[Supporting Single Sign-On in a Web Browser App](/documentation/AuthenticationServices/supporting-single-sign-on-in-a-web-browser-app)

Extend your web browser app to handle web authentication requests from other apps.

[`class ASWebAuthenticationSessionWebBrowserSessionManager`](/documentation/AuthenticationServices/ASWebAuthenticationSessionWebBrowserSessionManager)

A session manager that mediates sharing data between an app and a web browser.

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

### AutoFill credentials

[Providing one-time passcodes to AutoFill](/documentation/AuthenticationServices/providing-one-time-passcodes-to-autofill)

Help people efficiently perform multifactor authentication.

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.authentication-services.autofill-credential-provider>

[`class ASCredentialProviderViewController`](/documentation/AuthenticationServices/ASCredentialProviderViewController)

A view controller that a credential manager app uses to extend AutoFill.

### Credential migration

[`class ASCredentialExportManager`](/documentation/AuthenticationServices/ASCredentialExportManager)

A class to manage exporting credentials.

[`class ASCredentialImportManager`](/documentation/AuthenticationServices/ASCredentialImportManager)

A class to manage importing credentials.

### Single sign-on (SSO)

[Enterprise single sign-on (SSO)](/documentation/AuthenticationServices/enterprise-single-sign-on-sso)

[Platform Single Sign-on (SSO)](/documentation/AuthenticationServices/platform-single-sign-on-sso)

Provide a Platform Single Sign-on (Platform SSO) extension to integrate your identity provider with macOS.

### Apple TV authentication

[`var customAuthorizationMethods: [ASAuthorizationCustomMethod]`](/documentation/AuthenticationServices/ASAuthorizationController/customAuthorizationMethods)

An array of custom authorization methods for the user to choose.

[`func authorizationController(ASAuthorizationController, didCompleteWithCustomMethod: ASAuthorizationCustomMethod)`](/documentation/AuthenticationServices/ASAuthorizationControllerDelegate/authorizationController(_:didCompleteWithCustomMethod:))

Informs the delegate when authorization completes, and specifies the custom method the user selected.

[`struct ASAuthorizationCustomMethod`](/documentation/AuthenticationServices/ASAuthorizationCustomMethod)

The custom authorization method.

### Automatic security upgrades

[Upgrading Account Security With an Account Authentication Modification Extension](/documentation/AuthenticationServices/upgrading-account-security-with-an-account-authentication-modification-extension)

Automatically and transparently convert accounts to Sign in with Apple or to use strong passwords for improved security.

[`class ASAccountAuthenticationModificationController`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationController)

An object that performs a request to modify an account’s authentication properties.

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

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

[`class ASAccountAuthenticationModificationExtensionContext`](/documentation/AuthenticationServices/ASAccountAuthenticationModificationExtensionContext)

An object that you interact with to change an account’s password or to upgrade to Sign in with Apple.

### Updating credential managers

[`class ASCredentialUpdater`](/documentation/AuthenticationServices/ASCredentialUpdater)

A class to pass credential update events to credential managers enabled on the system.

### Reference

[AuthenticationServices Enumerations](/documentation/AuthenticationServices/authenticationservices-enumerations)

[AuthenticationServices Data Types](/documentation/AuthenticationServices/authenticationservices-data-types)

### Classes

[`class ASAuthorizationAccountCreationPlatformPublicKeyCredential`](/documentation/AuthenticationServices/ASAuthorizationAccountCreationPlatformPublicKeyCredential)

[`class ASAuthorizationAccountCreationPlatformPublicKeyCredentialRequest`](/documentation/AuthenticationServices/ASAuthorizationAccountCreationPlatformPublicKeyCredentialRequest)

[`class ASAuthorizationAccountCreationProvider`](/documentation/AuthenticationServices/ASAuthorizationAccountCreationProvider)

[`class ASAuthorizationProviderExtensionUserLoginConfiguration`](/documentation/AuthenticationServices/ASAuthorizationProviderExtensionUserLoginConfiguration)

[`class ASCredentialDataManager`](/documentation/AuthenticationServices/ASCredentialDataManager)

This class allows submitting credentials and events to any credential manager enabled on the system.

[`class ASDeliveredVerificationCodesManager`](/documentation/AuthenticationServices/ASDeliveredVerificationCodesManager)

This class allows interacting with one-time codes delivered to the system.

[`class ASGeneratePasswordsRequest`](/documentation/AuthenticationServices/ASGeneratePasswordsRequest)

[`class ASGeneratedPassword`](/documentation/AuthenticationServices/ASGeneratedPassword)

[`class ASOneTimeCodeCredentialIdentity`](/documentation/AuthenticationServices/ASOneTimeCodeCredentialIdentity)

[`class ASSavePasswordRequest`](/documentation/AuthenticationServices/ASSavePasswordRequest)

### Structures

[`struct ASAuthorizationProviderExtensionEncryptionAlgorithm`](/documentation/AuthenticationServices/ASAuthorizationProviderExtensionEncryptionAlgorithm)

[`struct ASAuthorizationProviderExtensionSigningAlgorithm`](/documentation/AuthenticationServices/ASAuthorizationProviderExtensionSigningAlgorithm)

[`struct ASAutoFillURLScope`](/documentation/AuthenticationServices/ASAutoFillURLScope)

This structure represents the subset of URL components supported for the AutoFill of credentials.

[`struct ASEmailIdentifier`](/documentation/AuthenticationServices/ASEmailIdentifier)

[`struct ASImportableCredentialScope`](/documentation/AuthenticationServices/ASImportableCredentialScope)

The scope for where a credential should be usable.

[`struct ASImportableEditableField`](/documentation/AuthenticationServices/ASImportableEditableField)

A field that someone can edit within a credential.

[`struct ASImportableFIDO2Extensions`](/documentation/AuthenticationServices/ASImportableFIDO2Extensions)

A representation of FIDO2 extensions as defined in CXF.

[`struct ASImportableFIDO2HMACCredential`](/documentation/AuthenticationServices/ASImportableFIDO2HMACCredential)

A representation of FIDO2 HMAC Credentials as defined in CXF.

[`struct ASImportableFIDO2LargeBlob`](/documentation/AuthenticationServices/ASImportableFIDO2LargeBlob)

A representation of FIDO2 LargeBlob extensions as defined in CXF.

[`struct ASPhoneNumberIdentifier`](/documentation/AuthenticationServices/ASPhoneNumberIdentifier)

[`struct ASPublicKeyCredentialClientData`](/documentation/AuthenticationServices/ASPublicKeyCredentialClientData-swift.struct)

[`struct ASVerificationCode`](/documentation/AuthenticationServices/ASVerificationCode)

This is an instance of a verification code.

[`struct CredentialDataManager`](/documentation/AuthenticationServices/CredentialDataManager)

[`struct DeliveredVerificationCodesManager`](/documentation/AuthenticationServices/DeliveredVerificationCodesManager)

### Variables

[`let ASCredentialExchangeActivity: String`](/documentation/AuthenticationServices/ASCredentialExchangeActivity)

The activity type used in user activity objects sent to importing apps.

[`let ASCredentialImportToken: String`](/documentation/AuthenticationServices/ASCredentialImportToken)

The key for the token in the user info dictionary of the user activity sent to importing apps.

### Enumerations

[`enum ASContactIdentifier`](/documentation/AuthenticationServices/ASContactIdentifier)

[`enum ASContactIdentifierRequest`](/documentation/AuthenticationServices/ASContactIdentifierRequest)

[`enum ASImportableExtension`](/documentation/AuthenticationServices/ASImportableExtension)

A representation of CXF extensions.

---

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-poli