- Interceptor support for the Authenticator module [SDKS-2545]
- Deep link support for
mfauth
scheme in Authenticator sample app [SDKS-2524] - Interface for access_token refresh [SDKS-2563]
- Ability to process new JSON format of IG policy advice [SDKS-2239]
- Fixed an issue on parsing
issuer
from combined MFA registration uri [SDKS-2542] - Added error message about duplicated accounts while performing combined MFA registration [SDKS-2627]
- Support for passkeys [SDKS-2140]
DeviceBinding
callback support [SDKS-1748]DeviceSigningVerifier
callback support [SDKS-2023]- Support for combined MFA in the Authenticator SDK [SDKS-1972]
- Support for policy enforcement in the Authenticator SDK [SDKS-2166]
- Interface for listing and deleting WebAuthn credentials from the device [SDKS-2279]
- Interface for assigning device name during the WebAuthn registration process [SDKS-2297]
- SwiftUI QuickStart Example [SDKS-2405]
- Added error message description to the
WebAuthnError
enum [SDKS-2226] - Updated the order of presenting the registered WebAuthn keys on the device [SDKS-2251]
- Updated Facebook SDK Version to 16.0.1 [SDKS-1839]
- Updated Google SDK Version to 7.0.0 [SDKS-2426]
- In WebAuthnRegistrationCallback:
public func register(node: Node? = nil, onSuccess: @escaping StringCompletionCallback, onError: @escaping ErrorCallback)
topublic func register(node: Node? = nil, window: UIWindow? = UIApplication.shared.windows.first, deviceName: String? = nil, usePasskeysIfAvailable: Bool = false, onSuccess: @escaping StringCompletionCallback, onError: @escaping ErrorCallback)
- In WebAuthnAuthenticationCallback:
public func authenticate(node: Node? = nil, onSuccess: @escaping StringCompletionCallback, onError: @escaping ErrorCallback)
topublic func authenticate(node: Node? = nil, window: UIWindow? = UIApplication.shared.windows.first, preferImmediatelyAvailableCredentials: Bool = false, usePasskeysIfAvailable: Bool = false, onSuccess: @escaping StringCompletionCallback, onError: @escaping ErrorCallback)
- In FacebookSignInHandler:
public static func handle(_ application: UIApplication, _ url: URL, _ options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool
topublic static func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
. It should now be called fromapplication(_ application:, didFinishLaunchingWithOptions launchOptions: )
instead ofapplication(_ app:, open url:, options:)
. - FRAClient.updateAccount() now throws
AccountError.accountLocked
upon attempt to update a locked account [SDKS-2166] - HOTPMechanism.generateCode() and TOTPMechanism.generateCode() now throws
AccountError.accountLocked
upon attempt to get an OATH token for a locked account [SDKS-2166]
- Updated legacy encryption algorithm for iOS SE [SDKS-1994]
- Fixed an issue related to push notifications timeout [SDKS-2164]
- Fixed an unexpected error occurring during the decoding of some push notifications [SDKS-2199]
- Dynamic SDK Configuration [SDKS-1760]
- iOS 16 Support [SDKS-1932]
- Fixed build errors on Xcode 14 [SDKS-2073]
- Fixed bug where the
state
parameter value was not verified upon calling theAuthorize
endpoint [SDKS-2077]
- Interface for log management [SDKS-1863]
- Fixed memory leak in NetworkCollector [SDKS-1931]
- Add PushType.biometric support and BiometricAuthentication class for biometric authentication. Updated sample app to handle new Push types [SDKS-1865]
- Fixed the bug when refreshing the access token we return the old token [SDKS-1824]
- Fixed bug when multiple threads are trying to access the same resource in the deviceCollector and ProfileCollector [SDKS-1912]
- SSL Pinning Support [SDKS-1627]
- Obtain timestamp from new Push Notification payload [SDKS-1665]
- Add new payload attributes in the Push Notification [SDKS-1775]
- Apple Sign In enhancements to get user profile info [SDKS-1632]
- Remove "Accept: application/x-www-form-urlencoded" header from /authorize endpoint for GET requests [SDKS-1729]
- Remove iPlanetDirectoryPro (or session cookie name) from the query parameter and inject it to the header instead [SDKS-1708]
- Fix issue when expired push notification displayed as "Approved" in the notification history list [SDKS-1491]
- Fix Issues with registering TOTP accounts with invalid period [SDKS-1405]
- Updated GoogleSignIn library to the latest version '6.1.0'
- Made FRGoogleSignIn available through SPM
- Added custom implementation for
HTTPCookie
for iOS 11+ devices, in order to support NSSecureCoding for storing cookies. [SDKS-1366] - Changed all instances of Archiving/Unarchiving to use NSSecureCoding. [SDKS-1366]
SecuredKey
initializer supports passing a Keychain accessibility flag. [SDKS-1334]SecuredKey
now has the same default Keychain accessibility flag as the KeychainService ".afterFirstUnlock". [SDKS-1334]
- Fixed an issue where the
MetadataCallback
was overriding the stage property of a node [SDKS-1209] - Fixed an issue which was affecting the Centralized Login feature [SDKS-1157]
- Various bug-fixes and enhancements for the Authenticator SDK [SDKS-1186], [SDKS-1238], [SDKS-1241]
- ForgeRock iOS SDK now supports and available through Swift Package Manager. [SDKS-912]
- ForgeRock iOS SDK now supports Social Login for
Sign in with Apple
,Google Sign-In
, andFacebook Login
. [SDKS-879] - New SDK modules,
FRGoogleSignIn
andFRFacebookSignIn
, are now available to enable Social Login with AM using providers' native SDKs. [SDKS-879] WebAuthnRegistrationCallback
, andWebAuthnAuthenticationCallback
are introduced to support AM'sWebAuthn Registration Node
andWebAuthn Authentication Node
. [SDKS-782]FRUser.revokeAccessToken()
is introduced to revoke OAuth2 token only, and keep existing SSO token. [SDKS-979]Account
,OathTokenCode
,PushNotification
and allMechanism
classes now conform toCodable
protocol, and introduce new methodtoJson()
to return serialized JSON String value of the object. [SDKS-1004]FRAClient.getAllNotifications()
is introduced to retrieve all notifications across all mechanisms. [SDKS-1009]
- SDK now persists SSO Token through
FRSession
instance without OAuth2 configuration. [SDKS-873] - All
JailbreakDetector
andDeviceCollector
's initialization methods are now exposed as public methods to help developers more easily customize and utilize existing implementation. [SDKS-836] PlatformCollector
's attribute names were changed fromtimezone
andjailbreakScore
totimeZone
andjailBreakScore
respectively to align with AM and Android SDK. [SDKS-908]Browser.validateBrowserLogin()
is now available in Objective-c as well. [SDKS-975]- Jailbreak detection logic was updated to prevent Jailbreak detection bypass. [SDKS-840]
- Removed public var value from SingleValueCallback [SDKS-910]
- Removed FRURLProtocolResponseEvaluationCallback [SDKS-910]
- Removed FRURLProtocol.validatedURLs [SDKS-910]
- Removed deprecated FRAuth.shared.next() (public func next) method [SDKS-910]
FRUser.browser()
is introduced to support external user-agent authorization.Browser
object can be constructed throughBrowserBuilder
, andBrowserBuilder
allows to customize URL query parameter, and to choose which external user-agent to be used. [SDKS-328]
FRUser.logout()
now also invalidatesid_token
, if exists, using OIDC end session endpoint after it invalidates SSO Token (using/sessions
endpoint), and OAuth2 token(s) (using/token/revoke
endpoint). [SDKS-328]- Fix Secure Enclave availability validation using
CryptoKit
for iOS 13 and above. [SDKS-673] - Fix inconsistent font size for TextField in login screen. [SDKS-675]
AuthorizationPolicy
'svalidatingURL
anddelegate
properties are now public properties. [SDKS-696]- Fix the issue that
refresh_token
is not persisted when refresh_token grant type does not return newrefresh_token
. [SDKS-648] - Change
FRUser.getAccessToken
to clear OAuth2 tokens and handle error more percisely to reflect the user authentication status. Ifrefresh_token
grant returnsinvalid_grant
, SDK will resume with/authorize
flow with SSO Token (other errors withrefresh_token
grant will throw an exception), and if the/authorize
request fails with current SSO Token, SDK will clear all credentials and states assuming that there is no more valid credentials. [SDKS-700] FRUser.currentUser.getAccessToken
method will now validate SSO Token associated withAccessToken
, and make sure that it is same as currentFRSession.currentSession.sessionToken
value. If two values are different, SDK will invalidate OAuth2 token, and try to authorize new OAuth2 token(s) with current SSO Token. [SDKS-700]FRUser.currentUser.getUserInfo
no longer thorws an exception for session renewal failure; instead SDK now invokes API withoutAuthorization
header if token renewal failed. [SDKS-644]
SuspendedTextOutputCallback
is now supported in iOS SDK forEmail Suspend Node
in AM. [SDKS-504]Node
now supportspageHeader
, andpageDescription
attributes fromPage Node
. [SDKS-517]NumberAttributeInputCallback
, andBooleanAttributeInputCallback
are now supported for IDM integrationCallback
. [SDKS-494]AbstractValidatedCallback
supports updatedPolicies
structures. [SDKS-460]FRProximity.setLocationAccuracy
is added to specifyCLLocationManager.desiredAccuracy
configuration used inLocationCollector
. [SDKS-617]
FRUI
no longer asks for user's consent whenDeviceProfileCallback
is the onlyCallback
in theNode
. [SDKS-436]FRAuth
was mistakenly allowing other app's private Keychain Access storage when .entitlement is misconfigured. [SDKS-552]FRProximity
SDK'sLocationCollector
now requests for Location Authorization while collecting Device Profile information if the authorization has not been asked yet. [SDKS-617]
FRAuth
introduces new dependency,FRCore
which contains generic core functionalities that can be shared across other ForgeRock iOS SDK. [SDKS-241]FRCore
has been added to iOS SDK suite.FRCore
is responsible to handle generic iOS tools and functionalities that are not relevant to ForgeRock products.FRAuth
is now able to handle AM's Transactional Authorization requests out of box for IG integration, and with a little bit of customization for custom REST Apps.FRAuth
SDK can supportAuthentication by Service
andTransaction - Authenticate to Tree
in Policy environment. [SDKS-87]MetadataCallback
is now supported inFRAuth
SDK. For AM 6.5.2, whenMetadataCallback
is returned withstage
value, SDK automatically parsesMetadataCallback
intoNode
'sstage
property. Please refer this blog post for more details. [SDKS-304]FRAuth
now allows more flexible customization on server infomration. Custom URL paths can be configured through.plist
config file, orServerConfigBuilder
. [SDKS-302]FRAuth
now supportsDevice Profile Node
in AM 7.0.0. [SDKS-294]FRCore
introduces an ability to customize internal SDK requests throughRequestInterceptor
. UseFRCore.RequestInterceptor
to implement the interceptor, andFRAuth.FRRequestInterceptorRegistry
to register interceptors. [SDKS-250]FRAuth
now supports customizable cookie name to align with AM. Use.plist
config file, orServerConfigBuilder
to changecookieName
. [SDKS-382]FRAuthenticator
SDK is now available; useFRAuthenticator
to implement OATH, and Push Authentication with AM in the application.
FRAuth
now supportsnoSession
parameter in Authentication Tree. If no SSO Token is returned with 200 status code,NodeCompletion
returnsnil
for all three parameters. [SDKS-433]ConfirmationCallback
andTextOutputCallback
's invalidMessageType
error is fixed. SDK should now be able to support those callbacks received from AM.- Single Sign-On issue where it fails to decrypt the data from other applications is fixed. SDK should now be able to encrypt/decrypt and share the data across the apps within SSO group.
FRURLProtocol.validatedURLs
andFRURLProtocol.refreshTokenPolicy
are now deprecated; useTokenManagementPolicy
andTokenManagementPolicyDelegate
to perform Token Management feature. [SDKS-386]ServerConfig(url:realm:timeout:)
is now deprecated; useServerConfigBuilder
to constructServerConfig
. [SDKS-302]
FRSession
is now added to replaceSessionManager
. UseFRSession
to authenticate against Authentication Tree in AM, persist and manage Session Token. [SDKS-174]FRSession.authenticate
retrieves Session Token, and createsFRUser.currentUser
without OAuth2 token set. UseFRUser.currentUser.getAccessToken
to obtain OAuth2 token set if needed. [SDKS-174]forgerock_enable_cookie
option is now available; you can set Boolean value to indicate whether or not SDK to persist and manage Cookies from AM. [SDKS-183]- FRAuth iOS SDK adds security layer on Keychain Service to encrypt all stored data with
SecuredKey
(using Secure Enclave when available). [SDKS-192]
FRUser.login
now returnsAuthError.userAlreadyAuthenticated
when there is already authenticated user session. [SDKS-174]- When Session Token is updated, or changed through
FRSession.authenticate
, orFRUser.login
, previously granted OAuth2 token set will automatically be revoked. [SDKS-174]
FRAuth.next
is now deprecated; useFRSession.authenticate
instead. [SDKS-174]SessionManager
is now deprecated and will become internal class. UseFRSession
andFRUser
instead. [SDKS-174]
SessionManager
is now publicly accessible to retrieveSSO Token
/AccessToken
/FRUser
object, and to revokeSSO Token
[SDKS-174]SessionManager
is now accessible throughSessionManager.currentManager
singleton object after SDK initialization [SDKS-174]
FRAuth.start()
stops validating OAuth2 value(s) in configuration and makeOAuth2Client
andTokenManager
become optional properties [SDKS-174]
- General Availability release for SDKs
- Changed OAuth2 authorization request to POST [SDKS-125]
- Added iOS 13 Dark Mode support to FRUI [SDKS-130]
- Fixed CPU usage issue [SDKS-131]
- Fixed FRProximity location collector issue [SDKS-124, SDKS-151]
- Fixed cosmetic issues on sample apps [SDKS-124, SDKS-132]
- Changed DropDown UI component in FRUI [SDKS-134]
- Initial release for FRAuth SDK
- Initial release for FRUI SDK
- Initial release for FRProximity SDK
- Initial Cocoapods deployment for beta version