These release notes list customer-visible changes to API Products by release number. We release first to preview orgs and then production orgs.
Dates for preview release are the earliest possible release date. Always check your org to verify the release for your org.
To verify the current release for an org, check the footer of the administrator UI. If necessary, click the Admin button to navigate to your administrator UI.

Note: Changes to Okta unrelated to API Products are published in the Okta Release Notes.
| Change | Expected in Preview Orgs |
|---|---|
| Bugs Fixed in 2019.11.3 | December 4, 2019 |
POST calls to the /api/v1/apps endpoint couldn't be used with OAuth for Okta. (OKTA-259867)
In some situations, ID tokens returned from Okta didn't contain the idp claim. (OKTA-253962)
| Change | Expected in Preview Orgs |
|---|---|
| Bug Fixed in 2019.11.2 | November 20, 2019 |
Multifactor (MFA) Enrollment Policy objects returned by Okta included an unused property, enroll.profiles. (OKTA-260160)
| Change | Expected in Preview Orgs |
|---|---|
| Bug Fixed in 2019.11.1 | November 13, 2019 |
An incorrect status was returned in some cases when an admin checked another user's session information using the Sessions API. (OKTA-245793)
| Change | Expected in Preview Orgs |
|---|---|
| Web Authentication as a factor is Generally Available in Production | November 6, 2019 |
| Features API is Generally Available in Preview | November 6, 2019 |
| SAML Inline Hook is Generally Available in Preview | November 6, 2019 |
| Token Inline Hook is Generally Available in Preview | November 6, 2019 |
| OAuth for Okta is Early Access in Preview | November 6, 2019 |
| Concurrent requests to the same app now return exception | November 6, 2019 |
| Rate Limits for /oauth2 endpoints | November 6, 2019 |
| Bug Fixed in 2019.11.0 | November 6, 2019 |
Admins can enable Web Authentication as a factor (WebAuthn) as defined by WebAuthn standards. WebAuthn supports both security key authentication such as YubiKey devices and platform authenticators such as Windows Hello.
The Features API provides operations to manage self-service Early Access features in your Production and Preview orgs and self-service Beta features in your Preview org.
The SAML Inline Hook enables you to customize SAML assertions returned by Okta. You can add attributes or modify existing attributes in outbound SAML assertions.
The Token Inline Hook enables you to integrate your own custom functionality into the process of minting OAuth 2.0 and OpenID Connect tokens.
With OAuth for Okta, you are able to interact with Okta APIs using scoped OAuth 2.0 access tokens. Each access token enables the bearer to perform specific actions on specific Okta endpoints, with that ability controlled by which scopes the access token contains. For more details, see our OAuth for Okta guide.
Concurrent PUT requests sent to the same app instance now return an ApiException rather than a 500 HTTP server error.
Rate limiting has been modified for /oauth2 endpoints so that requests that use an invalid client ID don't consume rate limit. Additionally, a System Log warning has been introduced to provide notification of high rate limit consumption by requests that use a valid client ID.
When the Token Inline Hook feature was enabled and the claim couldn't be evaluated, the OAuth 2.0 token endpoint returned a 403 HTTP status code rather than 400. (OKTA-258981)
| Change | Expected in Preview Orgs |
|---|---|
| User Types Error Message Change | October 31, 2019 |
| Bugs Fixed in 2019.10.2 | October 31, 2019 |
Error messages returned by the User Types API have changed. Omitting display name or variable name when attempting to create a User Type, or specifying a variable name that is already in use, results in a more specific error message being returned.
SameSite=None attribute sent by Okta caused a bug in cross-site handling of cookies in Chrome on iOS 12.* or earlier. (OKTA-254174)mode=force to enable a feature and its dependencies, email notifications were not sent to admins for Beta dependencies that were enabled. (OKTA-249644)| Change | Expected in Preview Orgs |
|---|---|
| Maximum characters increased for the UserAgent string | October 16, 2019 |
The maximum length of the client.userAgent.rawUserAgent property value was increased from 200 to 500 characters. See UserAgent Object in the /logs API reference content for more information on this property.
| Change | Expected in Preview Orgs |
|---|---|
| Event Hooks API is Generally Available | October 9, 2019 |
| User Types API in Early Access | October 9, 2019 |
| Tokens transform events no longer available | October 9, 2019 |
| Cookies updated to preserve cross-functionality | October 9, 2019 |
| App Condition available for Enroll Policy | October 9, 2019 |
| Bugs Fixed in 2019.10.0 | October 9, 2019 |
The Event Hooks API is Generally Available (GA) in Production.
The User Types API is in Early Access (EA) in both Preview and Production.
Tokens transform System Log events will no longer fire for SAML and Token Inline Hooks. They have been replaced by Inline Hook events.
To preserve cross-site functionality, Okta now adds the SameSite=None attribute to all relevant cookies when the client browser is Firefox 69 or above. Previously this was enabled only for Chrome 76 and above.
App Condition is now available for the Enroll Policy.
+ with a space. (OKTA-235187)| Change | Expected in Preview Orgs |
|---|---|
| Scope Naming Restriction | October 2, 2019 |
OAuth Scopes are not allowed to start with the okta. prefix. See the Note under Scope properties for more information.
| Change | Expected in Preview Orgs |
|---|---|
| Bug Fixed in 2019.09.3 | September 25, 2019 |
factorResult parameter was missing from the response. (OKTA-244102)| Change | Expected in Preview Orgs |
|---|---|
| Bugs Fixed in 2019.09.2 | September 18, 2019 |
value. (OKTA-243190)GET requests to the /users/me endpoint would return hidden standard attributes. (OKTA-243864)| Change | Expected in Preview Orgs |
|---|---|
| Features API is Early Access EA in Preview and Production | September 4, 2019 |
| Mappings API is now Generally Available (GA) in Production | September 4, 2019 |
| Error Object in SAML Assertion Inline Hook | September 4, 2019 |
| Rate Limits for Authorization Server Public Metadata | September 4, 2019 |
| Bugs Fixed in 2019.09.0 | September 4, 2019 |
The Features API provides operations to manage self-service features in your Production and Preview orgs and Beta features in your Preview org.
The Okta Mappings API provides operations to manage the mapping of properties between an Okta User's and an App User's Profile Properties using Expression Language. This feature is now GA in Production.
For the SAML Assertion Inline Hook, if an external service returns an error object, Okta now denies the SAML request and redirects the end user to an error page that displays the text string sent in error.errorSummary.
The public metadata endpoints for Authorization Servers are now each assigned separate rate limits, which are not shared with other endpoints.
Responses from the GET /groups/rules API included deleted groups in the assignUserToGroups.groupIds property. (OKTA-242994)
Calls to the /users/${userid}/lifecycle/deactivate endpoint could time out when deactivating a user with an extraordinarily high number of app assignments. (OKTA-228031)
| Change | Expected in Preview Orgs |
|---|---|
| Bugs Fixed in 2019.08.3 | August 29, 2019 |
The Update Inline Hook call wasn't replacing the whole object. (OKTA-229337)
IP addresses identified as malicious by Okta ThreatInsight were missing from Events API ("security.threat.detected") event messages. See the Event Types catalog for more information on this event message. (OKTA-242795)
| Change | Expected in Preview Orgs |
|---|---|
| Bug Fixed in 2019.08.2 | August 21, 2019 |
Paginated responses from the List Users with Search API were limited to a total of 50,000 results, and following the next link after that limit yielded an error. (OKTA-220619)
| Change | Expected in Preview Orgs |
|---|---|
| Bug Fixed in 2019.08.1 | August 14, 2019 |
Some users were not able to access the Group Rules API, despite having proper permissions. (OKTA-240021)
| Change | Expected in Preview Orgs |
|---|---|
| Added Support for TOTP Factor | August 7, 2019 |
| Cookies updated to preserve cross-site functionality | August 7, 2019 |
| Inline Hooks is now GA in Preview | August 7, 2019 |
| LinkedIn API V2 is now supported | August 7, 2019 |
| Mappings API is now GA in Preview | August 7, 2019 |
| Missing type property now returns a 400 error code | August 7, 2019 |
| Bug Fixed in 2019.08.0 | August 7, 2019 |
Okta now supports a custom MFA factor based on the Time-based One-time Password (TOTP) algorithm. For more information, see Custom HOTP Factor.
To preserve cross-site functionality in light of upcoming updates to Chrome, Okta has added the SameSite=None attribute to all relevant cookies.
Inline Hooks enable you to integrate your own custom functionality into Okta process flows. The framework to support them is now Generally Available (GA) in Preview.
Okta now supports LinkedIn API V2. Creation of LinkedIn Identity Providers has been re-enabled in all Production orgs.
The Okta Mappings API provides operations to manage the mapping of properties between an Okta User's and an App User's Profile Properties using Expression Language. This feature is now GA in Preview.
If you create an IP network zone without a type property for an IP field, PUT or POST requests made to the Zone API now return a 400 error code.
In the Update User API, when the secondEmail attribute in a user's profile was updated with an empty value (instead of null), the user was incorrectly prompted for secondEmail. (OKTA-240382)
| Change | Expected in Preview Orgs |
|---|---|
| Deleting App Groups | July 31, 2019 |
| Bug Fixed in 2019.07.2 | July 31, 2019 |
The DELETE /groups/${groupId} endpoint now supports deleting app groups, in addition to Okta groups. Note, however, that groups configured for group push cannot be deleted.
| Change | Expected in Preview Orgs |
|---|---|
| Email Factor is now GA in Production | July 10, 2019 |
| LinkedIn IdP creation re-enabled in Preview | July 10, 2019 |
| Email Customization disabled for free orgs | July 10, 2019 |
The Email Factor is now Generally Available (GA) in all Production orgs.
Creation of LinkedIn Identity Providers has been re-enabled in all Preview orgs.
To curtail phishing, free editions of Okta are no longer able to create and send customized email templates. For feature information, see Email and SMS Options.
| Change | Expected in Preview Orgs |
|---|---|
| Token expiration window increased to five years | July 3, 2019 |
| Bug Fixed in 2019.06.4 | July 3, 2019 |
The refresh token expiration window has increased to a maximum of five years in custom authorization servers.
security.password_spray.detected has been deprecated. For threat related information, see security.threat.detected events. (OKTA-233958)| Change | Expected in Preview Orgs |
|---|---|
| Token Inline Hook Can Modify Sub-Objects and Array Elements | June 26, 2019 |
| Bugs Fixed in 2019.06.3 | June 26, 2019 |
The Token Inline Hook now lets you modify particular sub-objects or array elements within objects contained in claims, without needing to update the rest of the object.
When a customer used a Token Inline Hook and returned an error object to Okta, Okta failed to pass the error to the token requester. (OKTA-231397)
The issuer claim inside JWT tokens was erroneously changing to all lowercase causing JWT verification failure when the application was case-sensitive. (OKTA-235710)
When a customer called the POST /idps/credentials/keys endpoint and supplied an x5t#S256 parameter to specify the SHA-256 thumbprint of the certificate that they were adding, Okta failed to validate the thumbprint.
| Change | Expected in Preview Orgs |
|---|---|
| Email Factor is now GA in Preview | June 5, 2019 |
| Users can be removed from Profile Masters | June 5, 2019 |
The Email Factor is now Generally Available (GA) in all Preview orgs.
Users can now be unassigned from Apps that serve as their Profile Masters.
| Change | Expected in Preview Orgs |
|---|---|
| Token Inline Hook Can Modify or Remove Existing Claims (Early Access) | May 29, 2019 |
| Bugs Fixed in 2019.05.3 | May 29, 2019 |
The Token Inline Hook now supports changing or removing existing claims in tokens minted by the Okta Custom Authorization Server.
Responses from the GET /groups/rules API failed to include a link to the next page of results in cases where there was more than one page. (OKTA-221434)
Calls to the /authorize endpoint during the Authorization Code with PKCE flow would fail if an idp parameter was supplied with the call (in Preview orgs only). (OKTA-229808)
| Change | Expected in Preview Orgs |
|---|---|
| Bug Fixed in 2019.05.2 | May 22, 2019 |
GET/URL/api/v1/meta/schemas/user/default from a preview org, the response ID always contained a production org URL. (OKTA-218937)| Change | Expected in Preview Orgs |
|---|---|
| Bugs Fixed in 2019.05.1 | May 15, 2019 |
| Change | Expected in Preview Orgs |
|---|---|
| The Registration Inline Hook is in Early Access (EA) | May 8, 2019 |
| Bugs Fixed in 2019.05.0 | May 8, 2019 |
The Registration Inline Hook allows you to integrate your own custom logic into Okta's Self-Service Registration flow.
| Change | Expected in Preview Orgs |
|---|---|
| Hashed Password Imports with SHA-512 Algorithm | May 1, 2019 |
| Bugs Fixed in 2019.04.2 | May 1, 2019 |
You can use the SHA-512 hash type when importing passwords.
/oauth2/${authServerId}/.well-known/oauth-authorization-server and /oauth2/${authServerId}/.well-known/openid-configuration endpoints for Custom Authorization Servers would append a query parameter (client_id) to the value returned for the jwks_uri property. Inclusion of the query parameter was misleading because you cannot use the query parameter when calling the JWKS URI. (OKTA-217289)| Change | Expected in Preview Orgs |
|---|---|
| The Event Hooks Feature is Now Available in EA | April 17, 2019 |
| Bug Fixed in 2019.04.1 | April 17, 2019 |
Event hooks enable you to use events within your Okta org to trigger process flows within your own software systems.
The applicable rate limit wasn't updated when the URL for the factor verification endpoint was changed. For more details, see our Rate Limits page. (OKTA-219067)
| Change | Expected in Preview Orgs |
|---|---|
| IdP Extensible Matching Rules are now GA in Preview | April 10, 2019 |
| The SAML Inline Hook is in EA | April 10, 2019 |
| Rate Limits Updated | April 10, 2019 |
| The Sign-In Widget Version for the Custom Login Page has been Updated | April 10, 2019 |
| Bug Fixed in 2019.04.0 | April 10, 2019 |
IdP extensible matching rules allow you to define a regular expression pattern to filter untrusted IdP usernames. For details, see our IdPs page.
The SAML Inline Hook enables you to customize SAML assertions returned by Okta. For details, see our SAML Inline Hook page.
Okta's API rate limits have been updated:
api/v1/apps endpoint was updated for Enterprise orgs. For details, see our Rate Limits page. Custom Sign-in Pages can now use Sign-In Widget version 2.18. When you select the "latest" option, you automatically use 2.18. For more information, see our Sign-In Widget page.
IdPs did not match the user with the USERNAME_OR_EMAIL property when IDP_EXTENSIBLE_MATCHING_RULES was enabled. For details, see our IdPs page. (OKTA-218007)
| Change | Expected in Preview Orgs |
|---|---|
| Bugs Fixed in 2019.03.3 | March 26, 2019 |
| Change | Expected in Preview Orgs |
|---|---|
| PKCE for Browser Clients, CORS Headers for OAuth 2 Token Endpoint | March 20, 2019 |
| Bugs Fixed in 2019.03.2 | March 20, 2019 |
Okta now supports Proof Key for Code Exchange (PKCE) for browser clients and returns CORS headers on the OAuth 2.0 Token endpoints.
passwordChanged values in API responses. (OKTA-210233)HonorForceAuthn property. (OKTA-209083)attributeStatements object would not update if a null value was passed as part of a PUT operation. (OKTA-209767)Note: Okta has changed our release model and version numbering. For more information, see here: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs |
|---|---|
| Bug Fixed in 2019.03.1 | March 13, 2019 |
| Previously Released Early Access Features 2019.03.1 Update | Available Now |
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
Note: Okta has changed our release model and version numbering. For more information, see: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs |
|---|---|
| Password Import Supports SHA-1 and MD5 | March 6, 2019 |
| Enable Role Assignment to Every Member of a Group | March 6, 2019 |
| New Rate Limits for /users/me | March 6, 2019 |
| Generic OIDC IdP is now GA in Preview | March 6, 2019 |
| User Search is now GA in Production | March 6, 2019 |
| The Import Inline Hook is in EA | March 6, 2019 |
| Previously Released Early Access Features 2019.03.0 Update | Available Now |
The Create/Update User API now supports importing users with SHA-1 and MD5 credentials. For more information, see our Users page.
Super and Org Admins can now assign and unassign roles to every user in a group using the APIs. For more information, see our Roles page.
The rate limits for the /users/me endpoint have been updated. For more information, see our Rate Limits page.
Generic OpenID Connect allows users to sign in to an Okta org using their credentials from their existing account at an OIDC Identity Provider. A generic OIDC IdP can be a third-party IdP that supports OIDC, such as Salesforce or Yahoo or your own custom IdP. You can also configure federation between Okta orgs using OIDC as a replacement for SAML. For more information, see Federate Okta with OpenID Connect.
Extended search capabilities for the /users endpoint is now Generally Available. For more information, see our Users page.
The Import Inline Hook enables you to add custom logic to the process of importing new users into Okta from an app.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
Note: Okta has changed our release model and version numbering. For more information, see here: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Imported Hashed User Passwords Generally Available | February 6, 2019 | March 11, 2019 |
| Inline Hooks | February 6, 2019 | February 19, 2019 |
| Token Inline Hook | February 6, 2019 | February 19, 2019 |
| Signature and Digest Algorithms for Template WS-FED Apps | February 6, 2019 | February 19, 2019 |
| Google Integration Updated | February 6, 2019 | February 19, 2019 |
| High Capacity Rate Limits | February 6, 2019 | February 19, 2019 |
| Creation of LinkedIn IdPs Temporarily Disabled | February 14, 2019 | February 19, 2019 |
| Bug Fixed in 2019.02.0 | February 6, 2018 | February 19, 2019 |
| Previously Released Early Access Features 2019.02.0 Update | Available Now | Available Now |
Use of imported hashed passwords when creating or updating users in the Users API is now Generally Available (GA).
Inline Hooks enable you to integrate your own custom functionality into Okta process flows. The framework to support them is now in Early Access (EA/).
The Token Inline Hook enables you to integrate your own custom functionality into the process of minting OAuth 2.0 and OpenID Connect tokens.
Template WS-Fed applications can now choose between SHA1 and SHA256 options for their Signature and Digest Algorithms. In addition, all Template WS-Fed applications will have X.509 certs signed with SHA256.
Okta's Google social login integration has been updated to account for the deprecation of the Google+ API. More information can be found in our Knowledge Base.
A new High Capacity Rate Limit SKU is now available. The impacted endpoints and their rate limits can be found on our Rate Limits page.
We have disabled the creation of new LinkedIn identity providers until further notice due to the upcoming LinkedIn API V1 deprecation.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
Note: Okta has changed our release model and version numbering. For more information, see here: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bug Fixed in 2019.01.2 | January 30, 2019 | February 4, 2019 |
| Previously Released Early Access Features 2019.01.2 Update | Available Now | Available Now |
Admin roles that were granted, scoped, or revoked through the Roles API did not appear in the System Log.
Verifying an OTP using the Voice Call MFA factor failed when the user tried to verify with the OTP within 30 seconds after auto-activation of the Voice Call MFA factor.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
Note: Okta has changed our release model and version numbering. Under the old system, this would have been release
2019.1. For more information, see here: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Social Authentication Generally Available | January 9, 2019 | January 14, 2019 |
| IdP Discovery Generally Available | January 9, 2019 | January 14, 2019 |
| Relay State Format Now Configurable for SAML IdPs | January 9, 2019 | January 14, 2019 |
| No Events API Access for New Orgs | January 9, 2019 | January 14, 2019 |
| Updated Office 365 Legacy Rate Limit | January 9, 2019 | January 14, 2019 |
| Bug Fixed in 2019.01.0 | January 9, 2018 | January 14, 2019 |
| Previously Released Early Access Features 2019.01.0 Update | Available Now | Available Now |
Social Authentication is now Generally Available (GA).
IdP Discovery is now Generally Available (GA) as part of the Policy API.
The Protocol Object now contains a Relay State object that allows an admin to configure the Relay State format on the SAML IdP.
As part of the deprecation process, new orgs created from this release onwards will not have access to the Events API.
The default legacy rate limit for the /app/office365/{key}/sso/wsfed/active endpoint has been lowered from 2000 to 1000.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
Note: Okta has changed our release model and version numbering. Under the old system, this would have been release 2018.52. For more information, see here: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.12.2 | December 27, 2018 | January 7, 2019 |
| Previously Released Early Access Features 2018.12.2 Update | Available Now | Available Now |
An error would be returned if the /apps/${applicationId} endpoint was called to update an app that did not not have a configurable signOnMode property.
The Identity Providers API endpoints GET /idps/${idpId}/users, GET /idps/${idpId}/users/{userId}, and DELETE /idps/${idpId}/users/${userId} previously required the social authentication feature, even for users related to a non-social IdP. Additionally, non-Social IdPs were not included in the results returned by GET /users/${userId}/idps.
Instead of providing specific reasons for failure, Identity Providers operations failed with generic error_description values when the Social Auth provider required user attributes in the user's profile but the attributes were missing or invalid.
The /users/${userId}/factors/catalog endpoint returned email as a supported factor type even when Email Authentication was not enabled for the org in MFA settings.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
Note: Okta has changed our release model and version numbering. Under the old system, this would have been release 2019.50. For more information, see here: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bug Fixed in 2018.12.1 | December 12, 2018 | December 17, 2018 |
| Previously Released Early Access Features 2018.12.1 Update | Available Now | Available Now |
/keys endpoint failed if the requests originated from different domains in the same browser. (OKTA-156155)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
Note: Okta has changed our release model and version numbering. Under the old system, this would have been release 2019.49. For more information, see here: https://support.okta.com/help/s/article/New-Okta-Release-Model
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bug Fixed in 2018.12.0 | December 5, 2018 | December 10, 2018 |
| Previously Released Early Access Features 2018.12.0 Update | Available Now | Available Now |
/logs endpoint would return an HTTP 500 error if they contained encoded curly braces (%7Bor %7D).The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| System Log API Returns Threat Insight Attribute | November 28, 2018 | December 3, 2018 |
| Bugs Fixed in 2018.48 | November 28, 2018 | December 3, 2018 |
| Previously Released Early Access Features 2018.48 Update | Available Now | Available Now |
The debugContext object returned by the System Log API can now include an okta_threat_insight attribute to indicate that an event has been identified as a security risk.
Some customers could access log data outside of their allowed retention range through the System Log API.
Responses from the /oauth2/${authServerId}/.well-known/oauth-authorization-server endpoint did not include supported OpenID Connect response types in the content of the response_types_supported property.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Linked Objects API is Generally Available (GA) | November 6, 2018 | December 10, 2018 |
| Bugs Fixed in 2018.45 | November 6, 2018 | November 12, 2018 |
| Previously Released Early Access Features 2018.45 Update | Available Now | Available Now |
The Linked Objects API is now available to all orgs.
multiOptionalFactorEnroll being set to true. (OKTA-195195)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.44 | October 31, 2018 | November 5, 2018 |
| Previously Released Early Access Features 2018.44 Update | Available Now | Available Now |
/users/${userId}/lifecycle/expire_password endpoint sometimes included hard-to-distinguish characters./logs endpoint with since and until values that were both earlier than the customer's data retention period would return an HTTP 500 error.The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.42 | October 17, 2018 | October 22, 2018 |
| Previously Released Early Access Features 2018.42 Update | Available Now | Available Now |
/clients endpoint dropped the filter parameter for any paginated results returned after the first page.500 error if the message could not be sent.The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Rate Limit Notifications for One App and Enterprise | October 10, 2018 | October 15, 2018 |
| OIDC Clients Can Initiate Logout with Expired Token | October 10, 2018 | October 15, 2018 |
| Change to User Link Editing Permissions | October 10, 2018 | October 15, 2018 |
| Bugs Fixed in 2018.41 | October 10, 2018 | October 15, 2018 |
| Previously Released Early Access Features 2018.41 Update | Available Now | Available Now |
When an org reaches its rate limit, the admin console will display a banner and the admin(s) will receive an email notification. These notifications will only appear on One App and Enterprise organizations.
Client-initiated logout now succeeds even when the ID token is no longer valid.
Editing the link between users now requires edit permissions for all users involved.
/logs endpoint with values for since and until that did not specify the time to milliseconds would sometimes return events outside of the specified time range. (OKTA-191533)/events endpoint would sometimes omit milliseconds from the published field. (OKTA-192568)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.40 | October 3, 2018 | October 8, 2018 |
| Previously Released Early Access Features 2018.40 Update | Available Now | Available Now |
/zones endpoint included a duplicate of the type field. (OKTA-188605)/idps/credentials/keys endpoint was requiring requests to include extra parameters. (OKTA-189780)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.39 | September 26, 2018 | October 1, 2018 |
| Previously Released Early Access Features 2018.39 Update | Available Now | Available Now |
/authorize endpoint would incorrectly prioritize values from the URI query parameter, rather than the request JWT. For more information, see the documentation for that endpoint. (OKTA-187642)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| User Sessions Deleted after Password Reset | September 19, 2018 | October 15, 2018 |
| Bugs Fixed in 2018.38 | September 19, 2018 | September 24, 2018 |
| Previously Released Early Access Features 2018.38 Update | Available Now | Available Now |
We now delete all sessions for a user after a successful password reset as part of the forgot password flow.
firstName, lastName, email, login, mobilePhone, and secondEmail. Any non-string values for these properties will now be converted into strings after they are sent. (OKTA-170711)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| New Device Notification Emails are Generally Available | September 5, 2018 | September 10, 2018 |
| Email Rate Limiting | September 5, 2018 | September 10, 2018 |
| New sendEmail Parameter for User Deletion and Deactivation | September 5, 2018 | October 15, 2018 |
| Support for JWTs Signed with Private Keys | September 5, 2018 | September 10, 2018 |
| System Log Event for Rate Limit Override Expiration | September 5, 2018 | September 10, 2018 |
| Required Properties in App User Schema | September 5, 2018 | September 10, 2018 |
| Previously Released Early Access Features 2018.36 Update | Available now | Available now |
When enabled, end users will receive a new device notification email when signing in to Okta from a new or unrecognized device. This feature is now generally available to all orgs. For more information about email notifications, refer to the New or Unknown Device Notification Emails section on this page.
Okta is introducing new rate limits for emails that are sent to users. This will help with service protection.
User deletion and deactivation requests now have an optional sendEmail parameter. For more information see the documentation for those endpoints:
Requests to the /token and /authorize endpoints will now accept JWTs signed with a private key. For more information see the OIDC documentation for the token endpoint and the authorize endpoint.
A System Log event will be generated exactly two days before a temporary API rate limit override is set to expire. The limit's expiration is set by customer support based on a window agreed upon when the override was requested. Once a limit has expired, it will no longer take effect and the customer will be subject to the default limit for that API endpoint.
API calls to modify an app user schema can no longer change the nullability (required field) of a property if that property is shown as required in the default predefined schema for that app.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.35 | August 29, 2018 | September 4, 2018 |
| Previously Released Early Access Features 2018.35 Update | Available now | Available now |
after parameter would return an HTTP 500 error. (OKTA-185186)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.33 | August 15, 2018 | August 20, 2018 |
| Previously Released Early Access Features 2018.33 Update | Available now | Available now |
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Interstitial Page Settings are Generally Available (GA) | August 8, 2018 | September 2018 |
| New System Log Event Type for Denied Events | August 8, 2018 | August 13, 2018 |
| Bugs Fixed in 2018.32 | August 8, 2018 | August 13, 2018 |
| Previously Released Early Access Features 2018.32 Update | Available now | Available now |
You can now disable the Okta loading animation that appears during a login redirect to your application. For more information, see Manage the Okta interstitial page.
The System Log now reports when requests are denied due to a blacklist rule (such as a IP network zone or location rule). These events are logged with the event type security.request.blocked. (OKTA-178982)
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.31 | August 1, 2018 | August 6, 2018 |
| Previously Released Early Access Features 2018.31 Update | Available now | Available now |
Fixed an issue in the OpenID Connect logout endpoint where performing logout with an expired session resulted in an error instead of following the post_logout_redirect_uri. (OKTA-180521)
Removed System Logs entries for granting refresh tokens in token requests with the refresh_token grant type (since this grant type simply returns the original refresh token). This fix applies to both custom Authorization Servers and the Okta Org Authorization Server. (OKTA-178335)
Fixed issues with the User-Consent Grant Management API: added missing value to issuer, removed issuerId, removed HAL links for issuer and revoke, and added hints for self GET and DELETE. (OKTA-175296)
Fixed a bug where SAML apps created using the API could not enable honorForceAuthn. (OKTA-166146)
Fixed an issue where login_hint was ignored when using OAuth consent with a custom Authorization Server. (OKTA-164836)
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.29 | July 18, 2018 | July 23, 2018 |
| Previously Released Early Access Features 2018.29 Update | Available now | Available now |
credentials.oauthClient property was not provided, even though it is not required. (OKTA-179275)AuthenticationContext.issuer for the event type user.authentication.authenticate. (OKTA-147165)The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| MFA Call Factor is Generally Available (GA) | July 11, 2018 | July 16, 2018 |
| Bugs Fixed in 2018.28 | July 11, 2018 | July 16, 2018 |
| Previously Released Early Access Features 2018.28 Update | Available now | Available now |
The MFA call factor is now Generally Available (GA).
Users received an incorrect error message when using the System Log API and specifying a sort order with an unbounded until statement. (OKTA-175411)
Under certain circumstances, the System Log API did not return events on the first query, but did on subsequent queries. (OKTA-174660)
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| System Log API is Generally Available (GA) | July 5, 2018 | July 9, 2018 |
| Bugs Fixed in 2018.27 | July 5, 2018 | July 9, 2018 |
| Previously Released Early Access Features 2018.27 Update | Available now | Available now |
The System Log API is now Generally Available. Developers of new projects are strongly recommended to use this in lieu of the Events API.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Custom URL Domains |
| Custom Okta-hosted Sign-In Page |
| Custom Error Page |
| Linked Objects API |
| Token Management API |
| User Consent for OAuth 2.0 and OpenID Connect Flows |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Better /userinfo Errors | June 20, 2018 | June 25, 2018 |
| Bugs Fixed in 2018.25 | June 20, 2018 | June 25, 2018 |
| Previously Released Early Access Features 2018.25 Update | Available now | Available now |
The following information has been added to the userinfo endpoint's error response:
authorization_urirealmresourcescope parameter response_mode set to okta_post_message, an HTTP 500 error would return. (OKTA-175326)READ_ONLY permission. The response now correctly contains a READ_WRITE permission. (OKTA-173030)redirect_uri was too long, an HTTP 500 error would return. (OKTA-171950)phoneExtension property would not be returned in GET requests to the Factors API's catalog endpoint. (OKTA-108859)The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| User Login Pattern Validation | June 13, 2018 | June 18, 2018 |
| Bugs Fixed in 2018.24 | June 13, 2018 | June 18, 2018 |
| Previously Released Early Access Features 2018.24 Update | Available now | Available now |
A user's login no longer needs to be in the form of an email address. Instead the login is validated against a pattern property stored in the User Schema, which can be set to certain Regular Expressions. If no pattern is set, the default validation requires email addresses. More information can be found in the User and Schema API references.
/logs endpoint with a since parameter value of less than 1 minute ago would return a 500 error. (OKTA-174239)refreshTokenWindowMinutes value of 0 (infinite). (OKTA-171891)The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Factors API Now Supports U2F | June 6, 2018 | June 11, 2018 |
| Network Selection Modes Deprecated | June 6, 2018 | June 11, 2018 |
| Better Signing Key Errors | June 6, 2018 | June 11, 2018 |
| Previously Released Early Access Features 2018.23 Update | Available now | Available now |
Enrollment, activation, and verification of U2F factors are now supported in the Factors API.
Two deprecated network selection modes (ON_NETWORKand OFF_NETWORK) have been removed from the Network Condition Object. They have been replaced by the ZONE type.
If signing keys cannot be generated for a new Authorization Server, a more descriptive error will be returned.
The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| New Session Token Behavior is in Early Access | May 30, 2018 | June 4, 2018 |
| System Log Events for New Device Notification Emails | May 30, 2018 | June 4, 2018 |
| Bugs Fixed in 2018.22 | May 30, 2018 | June 4, 2018 |
| Previously Released Early Access Features 2018.22 Update | Available now | Available now |
If a user has a valid session and passes a sessionToken, this sessionToken will override any existing session cookie. If the user has a valid session but passes an invalid sessionToken, then their existing session will be invalidated. Currently, if a user has a valid session and passes a sessionToken, the sessionToken will be ignored. If this feature is not enabled, the current behavior will continue.
New device notification email events will now appear in the System Log.
/userinfo endpoint would return an empty JSON object in the response body when using an invalid access token. (OKTA-169553)The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| System Log Entry Delay Change | May 15, 2018 | May 29, 2018 |
| Previously Released Early Access Features 2018.20 Update | Available now | Available now |
Events returned from the /logs endpoint when using the until parameter were previously delayed by up to 1 second. To improve the performance of our System Log, queries to the /logs endpoint that include an until parameter may now return results that are delayed up to 10 seconds. When making requests with an until value that is near real-time, ensure that you allow enough of a buffer as to not miss events (e.g. 20s).
The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| ID Tokens Can Be Refreshed | May 9, 2018 | May 14, 2018 |
| Custom URL Domains are in Early Access | May 9, 2018 | May 14, 2018 |
| Custom Okta-hosted Sign-In Page is in Early Access | May 9, 2018 | May 14, 2018 |
| Custom Error Page is in Early Access | May 9, 2018 | May 14, 2018 |
| Bugs Fixed in 2018.19 | May 9, 2018 | May 14, 2018 |
| Previously Released Early Access Features 2018.19 Update | Available now | Available now |
OpenID Connect ID tokens can now be retrieved using a refresh token. For more information, see our Open ID Connect Reference.
You can customize your Okta org by replacing the Okta domain name with a custom URL domain name that you specify. For example, if the URL of your Okta org is https://${yourOktaDomain}, you can configure a custom URL for the org such as https://id.example.com. For details, see the Configure a custom URL domain.
You can customize the text and the look and feel of the Okta-hosted sign-in page using form controls and an embedded HTML editor. When used together with custom URL domain (required) and custom Okta-hosted error page, this feature offers a fully customized end-user sign-in experience hosted by Okta. For details, see Configure a custom Okta-hosted sign-in page.
You can customize the text and the look and feel of error pages using an embedded HTML editor. When used together with custom URL domain (required) and custom Okta-hosted sign-in page, this feature offers a fully customized error page. For details, see Configure a custom error page.
Delays were experienced when deleting users. As a result of the fix, one will notice a period of time between when the deletion was initiated and when it completes. During the period, the user will still be visible, but the deletion cannot be reversed. (OKTA-157884)
OAuth 2.0 and OIDC requests made with redirect URLs that contained underscores in the domain name would result in an error. (OKTA-167483)
The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Authentication Object for Step-up Authentication Is in Early Access | May 2, 2018 | May 7, 2018 |
| New Version of the Okta Sign-In Widget | Available Now | Available Now |
| Bug Fixed in 2018.18 | May 2, 2018 | May 7, 2018 |
| Previously Released Early Access Features 2018.18 Update | Available now | Available now |
During SP-initiated or IdP-initiated authentication, use the Authentication Object to represent details that the target resource is using.
The Authentication Object is an Early Access feature.
Version 2.8.0 of the Okta Sign-In Widget provides new features, notable changes, and bug fixes. For details, visit the okta-signin-widget repository.
If the configured default IdP was set to inactive, Okta still used the inactive IdP as the primary endpoint for user authentications, causing authentications to fail. (OKTA-137758)
The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Bugs Fixed in 2018.17 | April 24, 2018 | May 1, 2018 |
| Previously Released Early Access Features 2018.17 Update | Available now | Available now |
If an incorrect appInstanceId was supplied as the IdP parameter in a request to the /authorize endpoint, an HTTP 500 error was thrown. (OKTA-166417)
When Okta parsed login names it failed to support addresses enclosed in double quotes as described in RFC 3696. (OKTA-164092)
The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Enhanced Feature: API Support for Assigning App Instance to App Admins | April 11, 2018 | April 15, 2018 |
| Bug Fixed in 2018.15 | April 11, 2018 | April 16, 2018 |
| Previously Released Early Access Features 2018.15 Update | Available now | Available now |
You can add an app instance target to an APP_ADMIN role assignment via the API. Previously an app instance target could be added to the role assignment using the Okta administrators UI only.
When you assign an app instance target to this role assignment, the scope of the role assignment changes from all app targets to just the specified target. Thus you can use this feature to create different APP_ADMIN role assignments for different apps in your org.
For details, visit the Roles API documentation.
This fix applies if the MFA soft lock for delegated authentication feature is enabled. When a user made multiple failed MFA attempts and was locked out, the user status was updated to ACTIVE instead of the correct value, LOCKED_OUT. (OKTA-164900)
The following features have already been released as Early Access. To enable them, contact Support.
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Linked Objects API in Early Access (EA) | April 4, 2018 | April 9, 2018 |
| Client SDKs Version 1.0 | Available Now | Available Now |
| Bug Fixed for 2018.14 | April 4, 2018 | April 9, 2018 |
| Previously Released Early Access Features | Available now | Available now |
Users have relationships to each other, like manager and subordinate or customer and sales representative. You can create users with relationships by using the Linked Objects API.
Okta allows you to create up to 200 linked object definitions. These definitions are one-to-many:
Of course, most organizations have more than one manager or sales representative. You can create the linked object definition once, then assign the primary relationship to as many users as you have people in that relationship.
You can assign the associated relationship for a single primary user to as many users as needed. The associated user can be related to only one primary per linked object definition. But a user can be assigned to more than one linked object definition.
For more details:
We published the 1.0 version of the following client SDKs:
Visit each SDK for a complete list of new features, enhancements, and bug fixes.
The following features have already been released as Early Access. To enable them, contact Support.
| Early Access Features Available Now |
|---|
| Token Management API Is in Early Access (EA) |
| System Log API Is in Early Access (EA) |
| User Consent for OAuth 2.0 and OpenID Connect Flows is in Early Access (EA) |
| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| Change to App Variable Name Incrementing | March 21, 2018 | March 26, 2018 |
| Token Management API Is in Early Access (EA) | March 21, 2018 | March 26, 2018 |
| System Log API Is in Early Access (EA) | Available Now | Available Now |
| Password Imports with Salted SHA-256 Algorithm is in Early Access (EA) | Available Now | Available Now |
| Bug Fixed for 2018.12 | March 21, 2018 | March 26, 2018 |
When creating multiple instances of the same app, each instance of the app has a unique Variable Name. This Variable Name is used as part of the Okta Expression Language. Previously each instance was incrementally numbered (salesforce_1, salesforce_2, etc), but going forward each instance will instead have a 7-character alphanumeric string appended to its Variable Name. To find your app's Variable Name, go into the Profile Editor for that app. This change only affects newly created apps.
Use the Token Management API to view and revoke OAuth 2.0 and OpenID Connect refresh tokens by end user, Custom Authorization Server, or client app.
GET requests to the /authorize endpoint with response_mode=form_post would return an HTML page with a title <span>. (OKTA-162709)| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| API Support for IdP-initiated Authentication | March 14 | March 19 |
| New Powershell Module for TLS 1.2 Compatibility | Available Now | Available Now |
| Rate Limit for System Log Increased | Available Now | Available Now |
| New Version of Okta Sign-in Widget | Available Now | Available Now |
| System Log API Is in Early Access (EA) | Available Now | Available Now |
| Password Imports with Salted SHA-256 Algorithm is in Early Access (EA) | Available Now | Available Now |
| Bugs Fixed for 2018.11 | March 14, 2018 | March 19, 2018 |
Use this feature to allow a client to specify the application right away during an authentication request, instead of taking the user through "step-up" authentication in a separate request. Documentation
The new version of Okta's Powershell module is compatible with TLS 1.2. Documentation
The rate limit for GET requests to /api/v1/logs has been increased from 60 per minute to 120. Documentation
Version 2.7.0 of the Okta Sign-in Widget provides new features, notable changes, and bug fixes. For details, visit the okta-signin-widget repository.
displayName in the Target object was set to Unknown if the eventType was user.authentication.sso and if the value didn't exist in the profile editor.
This behavior matches the behavior in /events. (OKTA-156484)| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| API Access Management is Generally Available (GA) in Production | Available now | March 12, 2018 |
| System Log API Is in Early Access (EA) | March 7, 2018 | March 12, 2018 |
| Password Imports with Salted SHA-256 Algorithm is in Early Access (EA) | March 7, 2018 | March 12, 2018 |
| New Parameter for Authentication with Okta Verify with Auto-Push | March 7, 2018 | March 12, 2018 |
| System Log Changes for 2018.10 | March 7, 2018 | March 12, 2018 |
| Bugs Fixed for 2018.10 | March 7, 2018 | March 12, 2018 |
Secure your APIs with API Access Management, Okta's implementation of the OAuth 2.0 authorization framework. API Access Management uses the Okta Identity platform to enable powerful control over access to your APIs. API Access Management can be controlled through the administrator UI as well as a rich set of APIs for client, user, and policy management.
Generally Available (GA) in preview orgs since February 7, 2018, API Access Management is scheduled to be GA in production orgs starting March 12, 2018.
For more information, see OAuth 2.0 and Okta.
The Okta System Log records system events related to your organization in order to provide an audit trail that can be used to understand platform activity and to diagnose problems.
The Okta System Log API provides near real-time read-only access to your organization's system log and is the programmatic counterpart of the System Log UI.
Often the terms "event" and "log event" are used interchangeably. In the context of this API, an "event" is an occurrence of interest within the system and "log" or "log event" is the recorded fact.
Notes:
q query parameter, because of the presence of more structured data than the Events API. You can use the salted SHA-256 hash type when importing passwords.
We have added an optional URL parameter, autoPush that allows Okta to store the user's Auto-Push preference when verifying Okta Verify with Auto-Push. This parameter is only necessary when implementing custom login flows that do not use the Okta Sign-In Widget.
/logs timed out, an HTTP 504 error was returned. Now an HTTP 500 error will be returned. This aligns /logs error responses with other Okta APIs, and ensures implementation details are not leaked to API consumers. (OKTA-159642)MEDIA_TYPE_NOT_ACCEPTED_EXCEPTION replaced by UNSUPPORTED_MEDIA_TYPEOPP_INVALID_PAGINATION_PROPERTIES replaced by INVALID_PAGING_EXCEPTIONOPP_INVALID_SCIM_FILTER replaced by INVALID_SEARCH_CRITERIA_EXCEPTIONX-Forwarded-For header caused a null pointer exception (HTTP 500 NullPointerException) during primary authentication. (OKTA-159414)| Change | Expected in Preview Orgs | Rollout to Production Orgs Expected to Start |
|---|---|---|
| API Access Management is Generally Available in Preview | February 7, 2018 | March 12, 2018 |
| User Consent for OAuth 2.0 and OpenID Connect Flows in Early Availability (EA) | February 28, 2018 | March 5, 2018 |
| Sessions API Supports HTTP Header Prefer | February 28, 2018 | March 5, 2018 |
User Schema API Allows Nullable firstName, lastName | February 28, 2018 | March 5, 2018 |
| Improved Response Mode for OAuth 2.0 and OpenID Connect Requests | February 28, 2018 | March 5, 2018 |
Change to /authorize Response for prompt for OAuth 2.0 and OpenID Connect Requests | February 28, 2018 | March 5, 2018 |
| Improved System Log Behavior for Date Queries | February 28, 2018 | March 5, 2018 |
| System Log Message Changes Related to Authorization Servers | February 28, 2018 | March 5, 2018 |
| Bugs Fixed for 2018.09 | February 28, 2018 | March 5, 2018 |
A consent represents a user's explicit permission to allow an application to access resources protected by scopes. As part of an OAuth 2.0 or OpenID Connect authentication flow, you can prompt the user with a page to approve your app's access to specified resources.
Consent grants are different from tokens because a consent can outlast a token, and there can be multiple tokens with varying sets of scopes derived from a single consent. When an application comes back and needs to get a new access token, it may not need to prompt the user for consent if they have already consented to the specified scopes. Consent grants remain valid until the user manually revokes them, or until the user, application, authorization server or scope is deactivated or deleted.
To configure an authorization or authentication flow to include a user consent page:
Verify that you have the API Access Management feature enabled, and request that User Consent also be enabled.
Create an app via the Apps API with the appropriate values for tos_uri, policy_uri, and consent_method. (Details)
Note: You can also configure an existing app in the administrator UI: Applications > [Application Name] > General > User Consent.
Ensure that your authentication or authorization flow is configured properly. The combination of prompt in the /authorize request, consent_method set on the app in the previous step, and consent, a property set on scopes, controls whether a user consent window is displayed during the authentication flow. Details
Okta now supports the HTTP Header Prefer in the Sessions API for refreshing sessions. You can extend the session lifetime, but skip any processing work related to building the response body.
curl -v -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: SSWS ${api_token}" \
"https://${yourOktaDomain}/api/v1/sessions/me/refresh"
Note: me can also be an ID.
HTTP/1.1 204 No Content
Preference-Applied: return=minimal
firstName, lastName You can set firstName or lastName to be nullable in the User Profile Base sub-schema. These properties are defined in a profile sub-schema with the resolution scope #base.
For the form_post response mode, we have reduced the HTML content returned in an OpenID Connect or OAuth 2.0 request. Now the response is only a form containing the requested tokens (access token, ID token, or both) and JavaScript to post the form.
/authorize Response for prompt for OAuth 2.0 and OpenID Connect Requests If you set prompt=none for a request on /authorize and the maximum age before sign-in is required (max_age) is exceeded, an error is returned. This ensures the safest possible result when these two settings contradict each other.
This applies to /authorize with either the Okta Org Authorization Server or a Custom Authorization Server (which requires API Access Management).
{
"errorCode": "E0000001",
"errorSummary": "Api validation failed: com.saasure.core.services.user.InvalidUserProfileException: Could not create user due to invalid profile: com.saasure.framework.validation.util.SimpleErrors: 1 errors\nError in object 'newUser': codes [password.passwordRequirementsNotMet.newUser,password.passwordRequirementsNotMet]; arguments [Password requirements: at least 8 characters, a lowercase letter, an uppercase letter, a number, no parts of your username.]; default message [Password requirements were not met. Password requirements: at least 8 characters, a lowercase letter, an uppercase letter, a number, no parts of your username.]",
"errorLink": "E0000001",
"errorId": "oaecNfS38enQ8KtWDvNfusWRw",
"errorCauses": [
{
"errorSummary": "Password requirements were not met. Password requirements: at least 8 characters, a lowercase letter, an uppercase letter, a number, no parts of your username."
}
]
}
{
"errorCode": "E0000001",
"errorSummary": "Api validation failed: com.saasure.core.services.user.InvalidUserProfileException: Could not create user due to invalid profile: com.saasure.framework.validation.util.SimpleErrors: 3 errors\nField error in object 'newUser' on field 'password': rejected value [aaaa]; codes [password.minlength.newUser.password,password.minlength.password,password.minlength.java.lang.String,password.minlength]; arguments [8]; default message [Password requirements: at least 8 characters.]\nField error in object 'newUser' on field 'password': rejected value [aaaa]; codes [password.uppercase.newUser.password,password.uppercase.password,password.uppercase.java.lang.String,password.uppercase]; arguments [Password requirements: at least 0 characters, an uppercase letter.]; default message [Password requirements: at least 0 characters, an uppercase letter.]\nField error in object 'newUser' on field 'password': rejected value [aaaa]; codes [password.number.newUser.password,password.number.password,password.number.java.lang.String,password.number]; arguments [Password requirements: at least 0 characters, a number.]; default message [Password requirements: at least 0 characters, a number.]",
"errorLink": "E0000001",
"errorId": "oaeGZUg95w6SK2GbA44cXgtvA",
"errorCauses": [
{
"errorSummary": "password: Passwords must be at least 8 characters in length",
"reason": "LENGTH_MINIMUM",
"location": "credentials.password.value",
"locationType": "body",
"domain": "user"
},
{
"errorSummary": "password: Password requirements: at least 0 characters, an uppercase letter.",
"reason": "UPPER_CASE_REQUIRED",
"location": "credentials.password.value",
"locationType": "body",
"domain": "user"
},
{
"errorSummary": "password: Password requirements: at least 0 characters, a number.",
"reason": "NUMBER_REQUIRED",
"location": "credentials.password.value",
"locationType": "body",
"domain": "user"
}
]
}
If you don't want these changes, contact Support to opt out.
For /logs, the request parameters since and until require the RFC 3339 Internet Date/Time Format profile of ISO 8601. This allows queries to more accurately target date ranges.
For /logs, the maximum page size is 1,000 messages (limit=1000). The default remains at 100.
The following message changes apply to either the Okta Org Authorization Server or a Custom Authorization Server including default (which requires API Access Management), or both, as indicated in each section.
/authorize Requests for /events System Log The existing messages app.oauth2.authorize_failure, app.oauth2.as.authorize_failure and app.oauth2.as.authorize.scope_denied_failure replace these messages:
app.oauth2.authorize.access_deniedapp.oauth2.authorize.invalid_client_idapp.oauth2.authorize.invalid_cache_keyapp.oauth2.authorize.no_existing_sessionapp.oauth2.authorize.login_failedapp.oauth2.authorize.mismatched_user_in_cache_and_sessionapp.oauth2.authorize.user_not_assignedapp.oauth2.authorize.scope_deniedapp.oauth2.as.authorize.warn_failureapp.oauth2.as.authorize.scope_deniedDetails about the nature of the failure are included, so no information has been lost with this simplification.
These system log changes affect responses from requests that involve either the Okta Org Authorization Server or a Custom Authorization Server including default.
/token Requests for /events System Log Instead of supplying two different messages for token grant failures on /token, the existing message app.oauth2.as.authorize.token.grant_failure replaces
these messages:
app.oauth2.as.token.grant.warn_failureapp.oauth2.as.token.grant.scope_denied_failureThis system log change affects responses from requests that involve a Custom Authorization Server including default.
/token Requests for /events System Log Instead of supplying a different message for ID token and access token generation, there's just one message for each. The ID token or access token minted is included in the message as it was previously.
The existing message app.oauth2.authorize.implicit_success replaces:
app.oauth2.authorize.implicit.id_token_successapp.oauth2.authorize.implicit.access_token_successThe existing message app.oauth2.as.authorize.implicit_success replaces:
app.oauth2.as.authorize.implicit.id_token_successapp.oauth2.as.authorize.implicit.access_token_successThe _success messages weren't being written to the System Log previously, but are now.
These system log changes affect responses from requests that involve either the Okta Org Authorization Server or a Custom Authorization Server including default.
/token Requests for /logs System Log Instead of supplying a different message for ID token and access token generation, there's just one message for each. The ID token or access token minted is included in the message as it was previously.
The existing message app.oauth2.authorize.implicit replaces:
app.oauth2.authorize.implicit.id_tokenapp.oauth2.authorize.implicit.access_tokenThe existing message app.oauth2.as.authorize.implicit replaces:
app.oauth2.as.authorize.implicit.id_tokenapp.oauth2.as.authorize.implicit.access_tokenThese system log changes affect responses from requests that involve either the Okta Org Authorization Server or a Custom Authorization Server, including default.
The following bugs have been fixed and are expected in preview orgs February 28, 2018 and production orgs starting March 5, 2018.
ACTIVE and had never signed in, and an API call reset the user's password, the user's status was incorrectly changed from ACTIVE to PROVISIONED, instead of the expected RECOVERY. (OKTA-154024)-admin was incorrectly included in the domain name during initialization of an OktaAuth object, no error was returned. (OKTA-156927)The following feature enhancement is expected in preview orgs February 14, 2018, and in production orgs on February 27, 2018.
OAuth key store rollover events are now included in both the Events and System Log APIs.
The following bug has been fixed and is expected in preview orgs February 14, 2018 and production orgs starting February 27, 2018.
| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| API Access Management is Generally Available in Preview | February 7, 2018 | starting March 12, 2018 |
| New Administrator Role for API Access Management | February 7, 2018 | starting February 12, 2018 |
| New and Changed Messages for the System Log | February 7, 2018 | starting February 12, 2018 |
Secure your APIs with API Access Management, Okta's implementation of the OAuth 2.0 authorization framework. API Access Management uses the Okta Identity platform to enable powerful control over access to your APIs. API Access Management can be controlled through the administrator UI as well as a rich set of APIs for client, user, and policy management.
For more information, see OAuth 2.0 and Okta.
If you have API Access Management enabled, you can use a dedicated administrator's role for API Access Management: the API Access Management Admin role. Use this role to manage custom authorization servers and related tasks:
To change the role assigned to a user, use the Administrator Roles API or visit Security > Administrators in the administrator UI.
We've added a new message and improved an existing one in the System Log (/api/v1/logs):
/api/v1/events. policy.rule.deactivated specifies in the Debug Context when the cause of a rule being disabled is that all the network zones for that rule have been deleted. The following bug has been fixed and is expected in preview orgs February 7, 2018 and production orgs starting February 12, 2018.
next link from the response headers was returned by a policy get operation (GET {url} /api/v1/policies). (OKTA-152522)| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| App User Schema API is Generally Available | Available Now | Available Now |
Special HTML Characters in state for okta_post_message | January 31, 2018 | February 7, 2018 |
| Custom Scopes in Metadata Endpoints | January 31, 2018 | February 7, 2018 |
| Improved Enforcement of Authorization Server Policies | January 31, 2018 | February 7, 2018 |
| Functions for Including Groups in Tokens | January 31, 2018 | February 7, 2018 |
| New System Log Messages | January 31, 2018 | February 7, 2018 |
| New Version of the Sign-In Widget | Available Now | Available Now |
Use the App User Schema API to work with App User profiles, typically for apps that have features for provisioning users.
state for okta_post_message You can include HTML special characters in the state parameter for okta_post_message.
Note that state in the main request body already allows these characters.
You can specify whether or not to include custom scopes in the metadata endpoints for OAuth 2.0 and OpenID Connect.
Existing custom scopes are not exposed by default. Set the metadataPublish attribute to ALL_CLIENTS to change the behavior.
When a client application tries to redeem an authorization token from a refresh token issued by a custom authorization server, policies are evaluated again. This ensures any changes since the time the refresh token was issued are checked.
Use the new EL functions Group.contains, Group.startsWith, and Group.endsWith to define a set of dynamic groups to be included in tokens minted from Okta's authorization servers.
These functions complement the existing EL function getFilteredGroups which helps you create a static list of groups for inclusion in a token.
User account updates have two new events written to the system log ( /api/v1/events and /api/v1/logs):
user.account.unlock_by_admin event complements the existing user.account.unlock event which is triggered only by self-service unlock or automatic unlock. The user.account.unlock_by_admin event is triggered when an administrator unlocks an account.user.account.update_primary_email event is triggered only when a primary email is updated. It's not triggered by profile sync or other automated processes. Version 2.6.0 of the Okta Sign-In Widget is available. Check out the new features and bug fixes!
The following bugs have been fixed and are expected in preview orgs January 31, 2018 and production orgs starting February 7, 2018.
501: unsupported operation.
Now the correct exception is thrown: 401: You do not have permission to access the feature you are requesting. (OKTA-154940)/api/v1/authn with deviceToken in the body of the request incorrectly prompted the user for MFA, even after successfully verifying the factor the first time, if:
| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| App User Schema API is Generally Available | Available Now | February 13, 2017 |
Use the App User Schema API to work with App User profiles, typically for apps that have features for provisioning users.
| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| App User Schema API is Generally Available | January 10, 2018 | February 13, 2017 |
| SHA-256 Certificates for New SAML 2.0 Apps is Generally Available | Available Now | January 10, 2018 |
Use the App User Schema API to work with App User profiles, typically for apps that have features for provisioning users.
When you create a SAML 2.0 app in Okta, the app is created with SHA-256 signed public certificates. Certificates for existing SAML 2.0 apps aren't changed. To update an existing app, use these instructions.
The following bugs have been fixed, and are expected in preview orgs starting January 10, 2018, and in production orgs starting January 16, 2018.
PASSWORD_RESET or LOCKED_OUT were reported as ACTIVE. (OKTA-153214, OKTA-151861)| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| Token Preview | December 28, 2017 | January 8, 2017 |
New values for amr base claim | December 28, 2017 | January 8, 2017 |
Configuring an application or integration to use OpenID Connect ID tokens or OAuth 2.0 access tokens can take a lot of trial-and-error. Okta has made it easier to choose configuration settings and see the resulting tokens in the Token Preview tab of the Authorization Server page:

Add values on the left side to see how they would affect the token on the right. All the fields are selection boxes except User. For User, type in the first few letters to see a choice of user names.
You can try out different combinations of values, and see the resulting tokens (or error messages). Once you've got the right combination, it's easy to configure your authorization server and other components.
amr Base Claim We improved some behaviors related for base claim amr:
sms or call are used, the amr claim returns mca.token:hardware is used, the amr claim returns hwk.web is used, the amr claim returns swk. This bug fix is expected in preview orgs starting December 28, 2017 and expected in production orgs starting January 8, 2017.
The following legacy events, already present in the /api/v1/events endpoint, are also available in the /api/v1/logs endpoint (System Log API):
app.auth.slo.with_reasonapp.auth.slo.saml.malformed_request.invalid_typeapp.keys.clone_legacyapp.keys.generate_legacyapp.keys.rotate_legacyAdded strict optional parameter to the following operations:
This parameter allows you to force the validation of the password policy's minAge and passwordHistory requirements when an updated password is sent. This will be Generally Available in preview orgs starting on Dec 13, 2017 and in production orgs starting on Dec 19, 2017.
The following bug fixes will be available on preview orgs starting Dec 13, 2017, and will be available on production orgs starting December 19, 2017:
| Feature | Available in Preview Orgs | Available in Production Orgs |
|---|---|---|
| App User Schema API in EA | December 6, 2017 | January 10, 2017 |
| HAL Link Rollout | December 6, 2017 | December 12, 2017 |
| JWT as a Request Parameter | December 6, 2017 | December 12, 2017 |
The App User Schema API is an Early Access (EA) release. Use this API to work with App User profiles, typically for apps that have features for provisioning users.
In previous releases, Okta enabled functionality which modifies the set of links returned with user collection elements. In the new functionality, when a collection of Users is returned, the Links object returned with each element contains only the _self link, which can be used to obtain the individual User object. The User object contains the full set of links. We made this change to ensure you always have up-to-date and complete links.
Most orgs already have this functionality and should see no change in behavior. Some orgs did not receive this functionality because they were identified as possible users of the .NET SDK. These customers have received a communication from Okta outlining the changes and any actions they might need to take.
Some preview orgs created with the Developer Paid edition will receive the new functionality on preview orgs starting December 6, 2017, and on production orgs starting December 12, 2017.
See the User Model documentation for more information.
A new parameter, request is available for all /authorize endpoints. The parameter contains a JWT created by the client, enabling requests to be passed in a single, self-contained parameter. This JWT must be signed.
For details about using request, see Oauth 2.0 or OpenID Connect documentation.
The following bug fixes will be available on preview orgs starting Dec 6, 2017, and will be available on production orgs starting December 11, 2017:
Password requirements were incorrectly evaluated on passwords longer than 72 characters. (OKTA-144636)
If the number of results in a page was divisible by the limit parameter value, an additional empty page was incorrectly returned. (OKTA-146006)
If an app embed link with a session token was used to access an app, the user was incorrectly prompted to authenticate again, instead of using the token to launch the application. (OKTA-149823)
The following bug fix will be available on preview orgs starting November 21, and will be available on production orgs starting November 28, 2017:
/api/v1/users/ {userId}) incorrectly required that login be specified in the profile. (OKTA-145770)The following bug fix is available now on preview orgs, and will be available on production orgs starting November 28, 2017:
/user/{userId}, HAL links would not be included in the response body. (OKTA-145195)| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| App Label Length Increase | November 8, 2017 | November 14, 2017 |
| GET Users by ID Rate Limit Increased | November 8, 2017 | November 14, 2017 |
| User ID Now Included in Token Log Events | November 8, 2017 | November 14, 2017 |
| IdP Provisioning Policy Conditions in GA | November 8, 2017 | November 14, 2017 |
App label maximum length has been increased from 50 to 100 characters.
The default rate limit for GET requests to /api/v1/users/${userId} has been increased from 600 to 2000.
The System Log and Events APIs now report the userId in API Access Management and OpenID Connect access token and refresh token events. This userId appears as a Subject field in the event. For the client_credentials grant type, userId will not be included since there is no user context.
Identity Provider Provisioning Policy Conditions are now Generally Available.
The following bug fixes are available now on preview orgs, and will be available on production orgs starting November 14, 2017:
displayName. In this context, the display name reports that the event was for a refresh token. (OKTA-146743)nextLogin to create a user with an expired password was successful but incorrectly reported the status as ACTIVE in the response. (OKTA-136663)unknown for the target user's AlternateId and DisplayName properties. (OKTA-145115)enum property could not be used in conjunction with JSON Schema validations for minLength/maxLength (for strings) or minimum/maximum (for integers/numbers). (OKTA-142732)Use the new query parameter nextLogin with a create user API request to create and activate a user with an expired password.
The user has to change his or her password the next time they log in. This new query parameter eliminates the need to use two API calls to achieve the same result.
This feature enhancement is expected in preview orgs starting November 1, 2017, and in production orgs starting November 6, 2017.
Three bug fixes are available now on preview orgs, and will be available on production orgs starting November 6, 2017:
3000 to 8080. (OKTA-144916)/oauth2/v1/authorize or OAuth 2.0 /oauth2/${authServerId}/v1/authorize request. (OKTA-143916)User not assigned to app was incorrectly returned from a GET /oauth2/v1/authorize request for Oauth 2.0 clients with a custom client ID. (OKTA-146566)Two bug fixes are expected on preview orgs starting Nov 1, 2017, and will be available on production orgs starting November 6, 2017:
phone_number_verified was returned from some authorization servers. The claim has been removed because Okta doesn't support this claim yet. (OKTA-146470)These bug fixes are expected on preview orgs starting October 25, 2017, and on production orgs starting November 8, 2017.
3000 to 8080. (OKTA-144916)/authorize call. (OKTA-143916)Group Rule evaluation failures are now exposed via the System Log API.
These bug fixes are expected on preview orgs starting October 18, 2017, and on production orgs starting October 24, 2017.
API Access Management now generates System Log events available via the Events API. This will be Generally Available in preview orgs starting on October 11, 2017 and in production orgs starting on October 17, 2017.
Version 2.3 of the Okta Sign-In Widget is available. Check out the new features and bug fixes!
These bug fixes are expected on preview orgs starting October 11, 2017, and on production orgs starting October 17, 2017.
maxAgeDays value of 0, since this setting is unsupported by Active Directory. (OKTA-142874)user.session.end events in the log. (OKTA-138775)Login Denied event in the system log. (OKTA-112077)| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| Concurrent Rate Limits | October 4, 2017 | October 9, 2017 |
| OpenID Connect Scope Change | October 4, 2017 | October 9, 2017 |
| Help Desk Administrator Role Generally Available | October 4, 2017 | October 9, 2017 |
| Policy API | September 7, 2017 | October 9, 2017 |
| Password Policy API | September 7, 2017 | October 9, 2017 |
In order to protect the service for all customers, Okta enforces concurrent rate limits starting with this release. Concurrent limits are distinct from the org-wide, per-minute API rate limits.
For concurrent rate limits, traffic is measured in three different areas. Counts in one area aren't included in counts for the other two:
Okta has verified that these limits are sufficient based on current usage. As a result of verification, we increased the limit for some orgs to 150.
The first request to exceed the concurrent limit returns an HTTP 429 error, and the first error every sixty seconds is written to the log. Reporting concurrent rate limits once a minute keeps log volume manageable.
{
"eventId": "tevEVgTHo-aQjOhd1OZ7QS3uQ1506395956000",
"sessionId": "102oMlafQxwTUGJMLL8FhVNZA",
"requestId": "reqIUuPHG7ZSEuHGUXBZxUXEw",
"published": "2017-09-26T03:19:16.000Z",
"action": {
"message": "Too many concurrent requests in flight",
"categories": [],
"objectType": "core.concurrency.org.limit.violation",
"requestUri": "/report/system_log"
},
"actors": [
{
"id": "00uo7fD8dXTeWU3g70g3",
"displayName": "Test User",
"login": "test-user@test.net",
"objectType": "User"
},
{
"id": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
"displayName": "CHROME",
"ipAddress": "127.0.0.1",
"objectType": "Client"
}
],
"targets": []
}
{
"actor": {
"alternateId": "test.user@test.com",
"detailEntry": null,
"displayName": "Test User",
"id": "00u1qqxig80SMWArY0g7",
"type": "User"
},
"authenticationContext": {
"authenticationProvider": null,
"authenticationStep": 0,
"credentialProvider": null,
"credentialType": null,
"externalSessionId": "trs2TSSLkgWR5iDuebwuH9Vsw",
"interface": null,
"issuer": null
},
"client": {
"device": "Unknown",
"geographicalContext": null,
"id": null,
"ipAddress": "4.15.16.10",
"userAgent": {
"browser": "UNKNOWN",
"os": "Unknown",
"rawUserAgent": "Apache-HttpClient/4.5.2 (Java/1.7.0_76)"
},
"zone": "null"
},
"debugContext": {
"debugData": {
"requestUri": "/api/v1/users"
}
},
"displayMessage": "Too many requests in flight",
"eventType": "core.concurrency.org.limit.violation",
"legacyEventType": "core.concurrency.org.limit.violation",
"outcome": null,
"published": "2017-09-26T20:21:32.783Z",
"request": {
"ipChain": [
{
"geographicalContext": null,
"ip": "4.15.16.10",
"source": null,
"version": "V4"
},
{
"geographicalContext": null,
"ip": "52.22.142.162",
"source": null,
"version": "V4"
}
]
},
"securityContext": {
"asNumber": null,
"asOrg": null,
"domain": null,
"isProxy": null,
"isp": null
},
"severity": "INFO",
"target": null,
"transaction": {
"detail": {},
"id": "Wcq2zDtj7xjvEu-gRMigPwAACYM",
"type": "WEB"
},
"uuid": "dc7e2385-74ba-4b77-827f-fb84b37a4b3b",
"version": "0"
}
This example shows the relevant portion of a rate limit header being returned with the error for a request that exceeded the concurrent rate limit.
HTTP/1.1 429
Date: Tue, 26 Sep 2017 21:33:25 GMT
X-Rate-Limit-Limit: 0
X-Rate-Limit-Remaining: 0
X-Rate-Limit-Reset: 1506461721
Notice that instead of the typical counts for time-based rate limits, when a request exceeds the limit for concurrent requests,
X-Rate-Limit-Limit, X-Rate-Limit-Remaining, and X-Rate-Limit-Reset report the concurrent values instead.
When the number of unfinished requests is below the concurrent rate limit, request headers will switch back to reporting the time-based rate limits.
The X-Rate-Limit-Reset time for concurrent rate limits is only a suggestion. There's no guarantee that enough requests will complete to stop exceeding the concurrent rate limit at the time indicated.
For more information, see developer documentation about rate limit headers.
We've changed the behavior of OpenID Connect scopes:
/api/v1/authorizationServers/${authServerId}/scopes.The Help Desk Administrator Role (HELP_DESK_ADMIN) is generally available via the Roles API.
For information about this role, see the in-app help.
The Policy API enables an Administrator to perform policy and policy rule operations. The policy framework is used by Okta to control rules and settings that govern, among other things, user session lifetime, whether multi-factor authentication is required when logging in, what MFA factors may be employed, password complexity requirements, and what types of self-service operations are permitted under various circumstances. For more information, see Okta's API Reference.
The Password Policy type controls settings that determine a user's password length and complexity, as well as the frequency with which a password can be changed. This policy also governs the recovery operations that may be performed by the user, including change password, reset (forgot) password and self-service password unlock. For more information, see Okta's API Reference.
The following API feature enhancements and bug fixes are available in the 2017.38 release. Dates for preview and production release are the earliest possible release date. Always check your org to verify the release version.
| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| Key Rotation for OpenID and OAuth Apps | September 20, 2017 | September 25, 2017 |
| Policy API | September 7, 2017 | October 9, 2017 |
| Password Policy API | September 7, 2017 | October 9, 2017 |
The Policy API enables an Administrator to perform policy and policy rule operations. The policy framework is used by Okta to control rules and settings that govern, among other things, user session lifetime, whether multi-factor authentication is required when logging in, what MFA factors may be employed, password complexity requirements, and what types of self-service operations are permitted under various circumstances. For more information, see Okta's API Reference.
The Password Policy type controls settings that determine a user's password length and complexity, as well as the frequency with which a password can be changed. This policy also governs the recovery operations that may be performed by the user, including change password, reset (forgot) password and self-service password unlock. For more information, see Okta's API Reference,
You can now specify the key rotation mode for OpenID Connect and OAuth apps in the Apps API with autoKeyRollover. More information can be found in the API Reference.
Bug fixes are expected on preview orgs starting September 20, 2017, and on production orgs starting September 25, 2017.
The Policy API and Password Policy API are Generally Available in preview orgs starting on September 7, 2017 and in production orgs starting on October 9, 2017.
The Policy API enables an Administrator to perform policy and policy rule operations. The policy framework is used by Okta to control rules and settings that govern, among other things, user session lifetime, whether multi-factor authentication is required when logging in, what MFA factors may be employed, password complexity requirements, and what types of self-service operations are permitted under various circumstances.
The Password Policy type controls settings that determine a user's password length and complexity, as well as the frequency with which a password can be changed. This policy also governs the recovery operations that may be performed by the user, including change password, reset (forgot) password and self-service password unlock.
The following platform feature enhancements and bug fixes are available in the 2017.35 release. Dates for preview and production release are the earliest possible release date. Always check your org to verify the release version.
| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| Zones API is an Early Access Release | August 22, 2017 | September 5, 2017 |
Zones are used to group IP Address ranges so that policy decisions can be made based on the client's IP location.
The Zones API is an Early Access release. Contact Support to enable it. This API can be enabled beginning August 22, 2017 for preview orgs, and beginning September 5, 2017 for production orgs.
This bug fix is expected on preview orgs starting August 31, 2017, and on production orgs starting Sept 5, 2017.
/api/v1/users/${userId} failed with a 500 Internal Server Error. (OKTA-138214)The following API feature enhancements and bug fixes are available in the 2017.34 release. Dates for preview and production release are the earliest possible release date. Always check your org to verify the release version.
| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| New Developer Dashboard | Available now in new developer orgs | N/A |
| Zones API is an Early Access Release | August 22, 2017 | September 5, 2017 |
The new developer dashboard is available in all new developer orgs in preview:

Use the developer dashboard to access quick-start guides for your favorite language and view recent system log events. You can also create an OpenID Connect app more easily with this simplified flow:

Zones are used to group IP Address ranges so that policy decisions can be made based on the client's IP location.
The Zones API is an Early Access release. Contact Support to enable it. This API can be enabled beginning August 22, 2017 for preview orgs, and beginning September 5, 2017 for production orgs.
Bug fixes are expected on preview orgs starting August 22, 2017, and on production orgs starting Sept 5, 2017.
application_type of native or browser incorrectly allowed the client_credentials grant type. This fix adheres to the OAuth 2.0 spec. (OKTA-135853)GET /api/v1/apps/${applicationId}/groups?expand=group%2Cmetadata caused an error in orgs with the Application Entitlements Policy enabled. (OKTA-135969)AssertionConsumerServiceURL attribute in a SAML authentication requests matched one of the configured SSO URLs but an error was returned. (OKTA-137555)| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| Default Custom Authorization Server | August 9, 2017 | August 14, 2017 |
| Web App Supports Client Credential Grant Type | August 9, 2017 | August 14, 2017 |
| OpenID Connect Group Claim Retrieves Application Groups | August 9, 2017 | August 14, 2017 |
| SHA-256 Signed Certificates for New SAML 2.0 Apps | Generally Available now | Generally Available beginning 9/11/2017 |
Okta provides a pre-configured Custom Authorization Server named default.
This default authorization server includes a basic access policy and rule, which you can edit to control access.
It allows you to specify default instead of the authServerId in requests to it:
https://${yourOktaDomain}/api/v1/authorizationServers/default vshttps://${yourOktaDomain}/api/v1/authorizationServers/${authServerId} for other Custom Authorization ServersOAuth 2.0 clients now support configuration of the web application type to use a client_credential grant type.
This allows you to use one client_id for an application that needs to make user-specific calls and back-end calls for data.
OpenID Connect, which uses the Okta Authorization Server, can retrieve application groups for use in tokens. Previously, application groups could only be retrieved with the Custom Authorization Server.
You can use the Okta Expression Language getFilteredGroups function to retrieve application groups.
All new SAML 2.0 apps are bootstrapped with SHA-256 signed public certificates. Existing SAML 2.0 apps are unchanged.
Bug fixes are expected on preview orgs starting August 9, 2017, and on production orgs starting August 14, 2017.
/oauth2/v1/authorize with the state parameter incorrectly returned an error. (OKTA-130916)| Feature Enhancement | Expected in Preview Orgs | Expected in Production Orgs |
|---|---|---|
| OpenID Connect | Generally Available now | Generally Available beginning 8/7/2017 |
| Key Rollover | Generally Available now | Generally Available beginning 8/7/2017 |
| Email for Two-Factor Authentication | Early Access by 8/3/2017 | Early Access beginning 8/7/2017 |
| SHA-256 Signed Certificates for New SAML 2.0 Apps | Generally Available by 8/3/2017 | Generally Available beginning 9/11/2017 |
To enable an Early Availability (EA) feature, contact Support. For more information, see Okta Release Lifecycle.
A new version of the Sign-In Widget is available now for all orgs.
OpenID Connect is a simple identity layer on top of the OAuth 2.0 protocol, which allows computing clients to verify the identity of an end user based on the authentication performed by an authorization server, as well as to obtain basic profile information about the end user in an interoperable and REST-like manner. In technical terms, OpenID Connect specifies a RESTful HTTP API, using JSON as a data format.
OpenID Connect allows a range of clients, including Web-based, mobile, and JavaScript clients, to request and receive information about authenticated sessions and end users. The specification suite is extensible, supporting optional features such as encryption of identity data, discovery of OpenID Providers, and session management.
Okta is certified for OpenID Connect. For more information, see OpenID Connect and Okta.
We provide the ability to generate a certificate with a specified validity period for the Apps API and Identity Providers API.
All new SAML 2.0 apps are bootstrapped with SHA-256 signed public certificates. Existing SAML 2.0 apps are unchanged.
You can enroll a user with an email factor. See Enroll Okta Email Factor for details.
Version 2.1.0 of the Okta Sign-In Widget is available on GitHub or NPM. Check out the new features and bug fixes!
These platform features are GA in preview orgs (as of Release 2017.28), and expected to roll out as GA to production orgs during the week of August 7, 2017:
This platform feature enhancement is EA in preview orgs with this release and expected in production orgs the week of July 31, 2017. To enable an EA feature, contact Support.
For information about Early Access (EA) and General Availability (GA), see Okta Release Lifecycle.
OpenID Connect is a simple identity layer on top of the OAuth 2.0 protocol, which allows computing clients to verify the identity of an end user based on the authentication performed by an authorization server, as well as to obtain basic profile information about the end user in an interoperable and REST-like manner. In technical terms, OpenID Connect specifies a RESTful HTTP API, using JSON as a data format.
OpenID Connect allows a range of clients, including Web-based, mobile, and JavaScript clients, to request and receive information about authenticated sessions and end users. The specification suite is extensible, supporting optional features such as encryption of identity data, discovery of OpenID Providers, and session management.
Okta is certified for OpenID Connect. For more information, see OpenID Connect and Okta.
We provide the ability to generate a certificate with specified validity period (see the Apps API and Identity Providers API). We build OpenID Connect and API Access Management on this feature.
You can enroll a user with an email factor. See Enroll Okta Email Factor for details.
These platform bug fixes are in preview orgs with this release and expected in production orgs the week of July 31, 2017.
Under some circumstances users who did not have a secondary email address could not perform a self-service password reset operation. (OKTA-128340)
"When the expand parameter was set in GET requests to /api/v1/groups, the second and subsequent pages of the response did not have the same expand setting. (OKTA-132503)
/oauth2/v1/clients returned HTTP status code 200 rather than 201 when creating a client successfully. (OKTA-128839)
/api/v1/authorizationServers returned HTTP status code 200 rather than 201 when creating an Authorization Server successfully. (OKTA-128839)
/oauth2/v1/clients/{clientId} returned HTTP status code 404 rather than 401 when it did not find the specified client. (OKTA-130804, OKTA-130848)
The following platform features are Generally Available (GA) in preview orgs (as of Release 2017.28), and expected to roll out as GA to production orgs during the week of August 7, 2017:
OpenID Connect is a simple identity layer on top of the OAuth 2.0 protocol, which allows computing clients to verify the identity of an end user based on the authentication performed by an authorization server, as well as to obtain basic profile information about the end user in an interoperable and REST-like manner. In technical terms, OpenID Connect specifies a RESTful HTTP API, using JSON as a data format.
OpenID Connect allows a range of clients, including Web-based, mobile, and JavaScript clients, to request and receive information about authenticated sessions and end users. The specification suite is extensible, supporting optional features such as encryption of identity data, discovery of OpenID Providers, and session management.
Okta is certified for OpenID Connect. For more information, see OpenID Connect and Okta.
We provide the ability to generate a certificate with specified validity period (see the Apps API and Identity Providers API). We build OpenID Connect and API Access Management on this feature.
These platform bug fixes are available in preview orgs and expected in production orgs the week of July 24, 2017.
When answering a security question to recover a forgotten password, users who gave too many incorrect responses didn't receive the "locked out" message. (OKTA-126117)
Custom SMS templates allowed messages greater than 160 characters after substituting the org name and code. The new behavior is to use a default template instead of the custom template when that happens. To ensure use of your custom template, update it to stay within the 160-character limit. (OKTA-128721)
/oauth2/v1/clients error responses didn't conform to the format in the OAuth 2.0 Dynamic Client Registration spec. (OKTA-130375)
/oauth2/v1/clients didn't allow default values for optional parameters. (OKTA-130910)
Neither /oauth2/v1/clients nor /api/v1/apps required client secrets to be unique. (OKTA-131259)
/oauth2/v1/clients returned an incorrect resource URI in the response header. (OKTA-131891)
The following changes are available in preview orgs on Wednesday, July 12. Availability in production orgs is expected either one week or one month later. For information about Early Availability (EA) and Generally Available (GA), see Okta Release Lifecycle.
The following features are GA in preview orgs, and expected to be GA in production orgs during the week of August 7, 2017:
The following feature enhancements are GA in preview orgs, and expected to be GA in production orgs during the week of July 17, 2017:
The following EA feature enhancements are in preview orgs and expected in production orgs during the week of July 17, 2017. To enable an EA feature, contact Support.
The following feature enhancement is available on GitHub:
OpenID Connect is a simple identity layer on top of the OAuth 2.0 protocol, which allows computing clients to verify the identity of an end user based on the authentication performed by an authorization server, as well as to obtain basic profile information about the end user in an interoperable and REST-like manner. In technical terms, OpenID Connect specifies a RESTful HTTP API, using JSON as a data format.
OpenID Connect allows a range of clients, including Web-based, mobile, and JavaScript clients, to request and receive information about authenticated sessions and end users. The specification suite is extensible, supporting optional features such as encryption of identity data, discovery of OpenID Providers, and session management.
Okta is certified for OpenID Connect. For more information, see OpenID Connect and Okta.
We provide the ability to generate a certificate with specified validity period (see the Apps API and Identity Providers API). We build OpenID Connect and API Access Management on this feature.
In keeping with the Okta Data Retention Policy, the events API (/api/v1/events) no longer accepts queries for events greater than 180 days old.
Template Plugin Apps you create from the administrator UI (Admin > Applications > Add Application > Template Plugin App) have improved security.
Version 1.13.0 of the Okta Sign-In Widget is available. Check out the new features and bug fixes!
You can configure the JIT settings for a SAML identity provider (IdP) to enable unsuspending users during inbound SAML login. See the Identity Providers API for more information.

You can send a one-time password (OTP) and an activation link to an email address as part of enrolling a user.
These platform bug fixes are available in preview orgs and expected in production orgs the week of July 17, 2017.
/api/v1/apps/${applicationId}/groups didn't return groups if the specified app is inactive. (OKTA-123695)Okta is changing system log data retention windows. System log data is available from /api/v1/events or
Okta SDK EventsAPIClient.
The new data retention policy starts:
Preview and production orgs created on or after July 17, 2017, will retain log data for three months.
For the full data retention policy, see our Data Retention Policy.
You can export data before Okta deletes it. We recommend using Security Information and Event Management (SIEM) technology or Okta's API.
When using a Social Identity Provider, you can request information in stages. The initial request to /oauth2/v1/authorize can ask for a minimal set of scopes, and you can add scopes to collect additional user data in a subsequent request to the Social Identity Provider. This reduces friction during sign-in when users don't yet trust your app. For more information, see the descriptions of idp_scope in the OAuth 2.0 API and OpenID Connect API parameter tables.
Version 1.11 of the Okta Sign-In Widget and version 1.8 of the Okta Auth SDK for Javascript are available. Check out the new features and bug fixes!
token_endpoint_auth_method set to client_secret_post did not have a selected radio button on the Client Credentials UI (Applications > application name > General). (OKTA-130764)npm. (OKTA-131608)client_id_issued_at or client_secret_expires_at. (OKTA-131647)Okta is changing system log data retention windows. System log data is available from /api/v1/events or
Okta SDK EventsAPIClient.
The new data retention policy starts:
Preview and production orgs created on or after July 17, 2017, will retain log data for three months.
For the full data retention policy, see our Data Retention Policy.
You can export data before Okta deletes it. We recommend using Security Information and Event Management (SIEM) technology or Okta's API.
For OpenID Connect and API Access Management, Okta supports the client_secret_jwt method for token endpoint authentication (token_endpoint_auth_method).
This method is specified in the OpenID Connect specification
and allows you to use JWT and HMAC to authenticate a client for OAuth 2.0 and OpenID Connect requests.
/api/v1/apps/${applicationId}/groups didn't return groups if the specified app is inactive. (OKTA-123695)Okta is changing system log data retention. System log data is available from /api/v1/events or
Okta SDK EventsAPIClient.
The new data retention policy starts:
Preview and production orgs created on July 17, 2017 and later will retain this log data for three months.
For the full data retention policy, see our Data Retention Policy.
You can export data before Okta deletes it. We recommend using Security Information and Event Management (SIEM) technology or Okta's API.
Logged information about key rotation and generation for apps and identity providers is available by using GET requests to either of the following endpoints: /api/v1/events or /api/v1/logs.
For more information, see Identity Provider Signing Key Store Operations
or Update Key Credential for Application.
Here is a response from /api/v1/logs 
The Auth Clients API provides operations to register and manage client applications for use with Okta's OAuth 2.0 and OpenID Connect endpoints.
The Apps API supports creating and configuring OAuth 2.0 or OpenID Connect clients. Alternatively, you can use Client Registration API (RFC 7591 and RFC 7592) to create and manage clients.
Logged information about OAuth 2.0 client updates is now available by using GET requests to
either log endpoint: /api/v1/events or /api/v1/logs.

Okta supports RP-intiated logout from OpenID Connect client apps in both the administrator UI and Okta API. You can specify a logout redirect URI, or accept the default behavior of returning to the Okta Login page. You can access this feature on the Create OpenID Connect Integration page (under Applications) in the UI.
Okta returns the registration_endpoint in OAuth 2.0 and OpenID Connect .well-known responses.
The credentials.signing.kid property of an app was available even if its sign-on mode does not support
certificates. Only apps using the following sign-on mode types support certificates: SAML 2.0, SAML 1.1,
WS-Fed, or OpenID Connect. For more information,
see: Application Key Store Operations (OKTA-76439)
When a call to the token, introspect, or revocation endpoint of OpenID Connect or API Access Management encountered an invalid_client error, the response did not include the WWWÂAuthenticate header. (OKTA-127653)
Beginning in Release 2017.25, the credentials.signing.kid property of an app won't be available if the app doesn't support the key rollover feature.
An app supports key rollover if the app uses one of the following signing mode types: SAML 2.0, SAML 1.1, WS-Fed, or OpenID Connect.
Before this change takes effect, verify that your integration doesn't expect the credentials.signing.kid property
if your app doesn't have one of the listed signing mode types. This change is expected in Release 2017.25,
which is scheduled for preview orgs on June 21, 2017 and in production orgs on June 26, 2017.
Okta is changing system log data retention. System log data is available from /api/v1/events or Okta SDK EventsAPIClient.
The new data retention policy starts:
Preview and production orgs created on July 17,2017 and later will retain this log data for three months.
For the full data retention policy, see our Data Retention Policy.
You can export data before Okta deletes it. We recommend using Security Information and Event Management (SIEM) technology or Okta's API.
Using either the administrator UI or API, you can configure default scopes for an OAuth 2.0 client. If the client omits the scope parameter in an authorization request, Okta returns all default scopes in the Access Token that are permitted by the access policy rule.

For more information about setting default scopes in the API, see OAuth 2.0 API.
The wizard for creating an OpenID Connect app has been improved and consolidated onto a single screen.

Notifications are entered in the System Log via the Events API (/api/v1/events) when OpenID Connect apps are created, modified, deactivated, or deleted.
Previously these notifications appeared only in the System Log (/api/v1/logs).
Query strings are now supported in the definition of IdP Login URLs:
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
We enforce new rate limits for all preview orgs. API calls exceeding the new rate limits return an HTTP 429 error.
As of May 8, we enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached
a threshold of <number> requests per <time-duration>. Please
be warned these rate limits will be enforced in the near future.
As of mid-May, we started enforcing these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate limits return an HTTP 429 error.
We are rolling out the enforcement of these new rate limits to all orgs this week. Once your org has the new limits, you'll see HTTP 429 errors instead of rate-limit warnings in the System Log if the new limits are exceeded.
For a full description of the new rate limits, see API Rate Limits.
Okta is changing system log data retention. System log data is available from /api/v1/events or Okta SDK EventsAPIClient.
The new data retention policy starts:
Preview and production orgs created on July 17,2017 and later will retain this log data for three months.
For the full data retention policy, see our Data Retention Policy.
You can export data before Okta deletes it. We recommend using Security Information and Event Management (SIEM) technology or Okta's API.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
We enforce new rate limits for all preview orgs. API calls exceeding the new rate limits return an HTTP 429 error.
As of May 8, we have enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached
a threshold of <number> requests per <time-duration>. Please
be warned these rate limits will be enforced in the near future.
As of mid-May, we started enforcing these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate limits return an HTTP 429 error.
In early June, we'll enforce these new rate limits for all orgs, and instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
For a full description of the new rate limits, see API Rate Limits.
You can now use the Authorization Server API to configure components of an Authorization Server. With the following enhancements, the API Access Management Authorization Servers API is an Early Access Release:
alwaysIncludeInToken property. You can also configure this in the administrator UI.For more information see the Authorization Server API documentation.
If Okta detects five or more consecutive request attempts with the wrong client secret, we log the events as suspicious:
We log an event when an invalid client_id is provided, and when an invalid client_secret is provided for a given client_id.
The API operations Set Recovery Question Answer and Set Password must be requested with an API token, not a session token. Additionally, the Set Recovery Question Answer operation doesn't validate complexity policies or credential policies.
Every step-up transaction starts with a user accessing an application. If step-up authentication is required, Okta redirects the user to the custom login page with state token as a request parameter. For more information, see the SP initiated Step-up Authentication documentation.
Okta has enabled the Simple HAL Links on User Collections feature for most preview organizations. This feature removes the HAL links that reflect state from user objects returned in collections.
Important: Okta expects to deliver this feature to production orgs (with the same Okta .NET SDK caveats described below) starting June 12, 2017.
Before release 2017.19, a user object returned in a collection contained some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by ID using the self link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, when the SDK issue is resolved, Okta will send a customer communication explaining the migration path to enable the feature for those orgs.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
We enforce new rate limits for new preview orgs. For these new orgs, the API calls exceeding the new rate limits return an HTTP 429 error.
At the end of May, we'll enforce these new rate limits for all preview orgs. Instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
As of May 8, we have enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached
a threshold of <number> requests per <time-duration>. Please
be warned these rate limits will be enforced in the near future.
As of mid-May, we started enforcing these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate limits return an HTTP 429 error.
In early June, we'll enforce these new rate limits for all orgs, and instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
For a full description of the new rate limits, see API Rate Limits.
Okta has enabled the Simple HAL Links on User Collections feature for most preview organizations. This feature removes the HAL links that reflect state from user objects returned in collections.
Before release 2017.19, a user object returned in a collection contains some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by ID using the self link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, when the SDK issue is resolved, Okta will send a customer communication explaining the migration path to enable the feature for those orgs. Okta expects to deliver this feature in production orgs (with the same Okta .NET SDK caveats) starting June 12, 2017.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
We enforce new rate limits for new preview orgs. For these new orgs, the API calls exceeding the new rate limits return an HTTP 429 error.
In mid-May, we'll enforce these new rate limits for all preview orgs. Instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
As of May 8, we have enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached a threshold of <number> requests per <time-duration>. Please be warned these rate limits will be enforced in the near future.
In mid-May, we'll enforce these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate limits return an HTTP 429 error.
In early June, we'll enforce these new rate limits for all orgs, and instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
For a full description of the new rate limits, see API Rate Limits.
Notifications are entered in the System Log when OpenID Connect apps are created or updated.
/api/v1/apps. (OKTA-123220, OKTA-122423, OKTA-115762)authorization_code grant type. This requirement was not enforced correctly. (OKTA-123471)/api/v1/idps) that included duplicated group IDs failed. (OKTA-124853)Okta has enabled the Simple HAL Links on User Collections feature for most preview organizations. This feature removes the HAL links that reflect state from user objects returned in collections.
Before release 2017.19, a user object returned in a collection contains some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by ID using the self link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, when the SDK issue is resolved, Okta will send a customer communication explaining the migration path to enable the feature for those orgs.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
We enforce new rate limits for new preview orgs. For these new orgs, the API calls exceeding the new rate limits return an HTTP 429 error.
In mid-May, we'll enforce these new rate limits for all preview orgs. Instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
As of May 8, we have enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached a threshold of <number> requests per <time-duration>. Please be warned these rate limits will be enforced in the near future.
In mid-May, we'll enforce these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate limits return an HTTP 429 error.
In early June, we'll enforce these new rate limits for all orgs, and instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
For a full description of the new rate limits, see API Rate Limits.
Use the Okta Expression Language function getFilteredGroups to create a list of groups that the current user belongs to.
With such a list you can, for example, create claims in Access Tokens and ID Tokens based on the groups.
For more information, see Group Functions.
The profile property in the Apps API accepts any well-formed JSON schema. You can specify properties in the profile and then access them in API requests.
For example:
getFilteredGroups.For more information, see the Apps API.
Note that the status code for service claims errors has changed from 500 to 400 as part of this feature.
Use the login_hint property on /oauth2/${authServerId}/v1/authorize or /oauth2/v1/authorize to populate a username when prompting for authentication.
max_age incorrectly caused a new session to be created, which updated the createdAt timestamp. (OKTA-99850)application_type in the OAuth 2.0 Clients API could be edited. (OKTA-120223)Okta has enabled the Simple HAL Links on User Collections feature for most preview organizations. This feature removes the HAL links that reflect state from user objects returned in collections.
Before release 2017.19, a user object returned in a collection contains some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by 'id' using the "self" link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, when the SDK issue is resolved, Okta will send a customer communication explaining the migration path to enable the feature for those orgs.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
We enforce new rate limits for new preview orgs. For these new orgs, the API calls exceeding the new rate limits return an HTTP 429 error.
In mid-May, we'll enforce these new rate limits for all preview orgs. Instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
As of May 8, we have enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached a threshold of <number> requests per <time-duration>. Please be warned these rate limits will be enforced in the near future.
In mid-May, we'll enforce these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate limits return an HTTP 429 error.
In early June, we'll enforce these new rate limits for all orgs, and instead of alerts in your System Log, the API calls exceeding the new rate limits will return an HTTP 429 error.
For a full description of the new rate limits, see API Rate Limits.
The Zones API is now Generally Available in preview orgs. It will be at least one month before the Zones API is available in production.
Zones are used to group IP Address ranges so that policy decisions can be made based on the zone a client's IP belongs to.
For more information, see the Zones API developer documentation.
Update: Zones API is a Beta release. This release note is in error.
Okta has enabled the Simple HAL Links on User Collections feature for most preview organizations. This feature will remain in preview for at least one month.
This feature removes the HAL links that reflect state from user objects returned in collections.
Before release 2017.19, a user object returned in a collection contains some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by 'id' using the "self" link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, when the SDK issue is resolved, Okta will send a customer communication explaining the migration path to enable the feature for those orgs.
/api/v1/apps with incorrect filter parameters returned an empty _embedded node in the response instead of the correct error message. (OKTA-124544)The items in this section are scheduled for future releases. Although we share our expected release dates, these dates are subject to change.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
As of last week, we enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached a threshold of <number> requests per <time-duration>. Please be warned these rate limits will be enforced in the near future.
As of May 2, 2017, we enforce these new rate limits for all new preview orgs. For these new orgs, instead of alerts in your System Log, the API calls exceeding the new rate-limits return an HTTP 429 error.
In mid-May, we'll enforce these new rate limits for all preview orgs. Instead of alerts in your System Log, the API calls exceeding the new rate-limits return an HTTP 429 error.
In early May, we'll enable a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached a threshold of <number> requests per <time-duration>. Please be warned these rate limits will be enforced in the near future.
In mid-May, we'll enforce these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate-limits return an HTTP 429 error.
In early June, we'll enforce these new rate limits for all orgs, and instead of alerts in your System Log, the API calls exceeding the new rate-limits return an HTTP 429 error.
For a full description of the new rate limits, see API Rate Limits.
Okta will enable the Simple HAL Links on User Collections feature for most preview organizations. This change is currently scheduled for the 2017.19 release on 5/10/17, to remain in preview for at least one month.
This feature will remove the HAL links that reflect state from user objects returned in collections.
Currently, a user object returned in a collection contains some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by 'id' using the "self" link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, when the SDK issue is resolved, Okta will send a customer communication explaining the migration path to enable the feature for those orgs.
Using GET /api/v1/idps/${idpId}/users/${userId}/credentials/tokens, you can fetch the Access Tokens minted by a social authentication provider.
When a user authenticates to Okta via a Social IdP, this request returns the tokens and metadata provided by the Social IdP.
Clients can use the Access Token against the social provider's endpoints in order to fetch additional profile attributes that Okta doesn't support in Universal Directory, for example, nested attributes.
For more information, see the Identity Providers API.
The items in this section are scheduled for future releases. Although we share our expected release dates, these dates are subject to change.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately lessens the chances of one user's request impacting another. We're also providing a transition period so you can see what these changes look like in your Okta system log before enforcing them:
As of last week, we enabled a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached a threshold of <number> requests per <time-duration>. Please be warned these rate limits will be enforced in the near future.
In early May, we'll enforce these new rate limits for all new preview orgs. For these new orgs, instead of alerts in your System Log, the API calls exceeding the new rate-limits return an HTTP 429 error.
In mid-May, we'll enforce these new rate limits for all preview orgs. Instead of alerts in your System Log, the API calls exceeding the new rate-limits return an HTTP 429 error.
In early May, we'll enable a System Log alert which lets you know if you have exceeded any of the new API rate limits:
Warning: requests for url pattern <url-pattern> have reached a threshold of <number> requests per <time-duration>. Please be warned these rate limits will be enforced in the near future.
In mid-May, we'll enforce these new rate limits for all newly created orgs. For these new orgs, instead of alerts in your System log, the API calls exceeding the new rate-limits return an HTTP 429 error.
In early June, we'll enforce these new rate limits for all orgs, and instead of alerts in your System Log, the API calls exceeding the new rate-limits return an HTTP 429 error.
For a full description of the new rate limits, see API Rate Limits.
Okta will enable the Simple HAL Links on User Collections feature for most preview organizations. This change is currently scheduled for the 2017.19 release on 5/10/17, to remain in preview for at least one month.
This feature will remove the HAL links that reflect state from user objects returned in collections.
Currently, a user object returned in a collection contains some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by 'id' using the "self" link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, when the SDK issue is resolved, Okta will send a customer communication explaining the migration path to enable the feature for those orgs.
A new default value for startDate ensures better performance. If the following criteria are met, the default value for startDate is one hour before the request was sent:
startDate is omitted ANDafter is omittedIf your org or integrations depend on the previous behavior, you can request the previous behavior be enabled.
APP_ADMIN role assignment changed the scope of the role assignment to all app targets. Now an exception is thrown.
To target all apps, delete the APP_ADMIN role assignment and recreate it. (OKTA-115122)The items in this section are scheduled for future releases. Although we share our expected release dates, these dates are subject to change.
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits will further lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately will lessen the chances of one user's impacting another. We're also providing a transition period so you can see what these changes will look like in your Okta system log before enforcing them:
After Monday, 2017-04-17, you'll see system log alerts that let you know if you would have exceeded any of the new API rate limits. We're making this feature available to all preview orgs, and the feature will remain in preview for at least two weeks.
Starting later in April, 2017, we'll treat authenticated end-user interactions on a per-user basis. Interactions like SSO after login won't apply to your org-wide API rate limits.
Early in May, 2017, we will enforce the new, more granular rate limits. At that point, the warnings in the System Log will change to error notifications.
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
Okta will enable the Simple HAL Links on User Collections feature for most preview organizations. This change is currently scheduled for the 2017.19 release on 5/10/17, to remain in preview for at least one month.
This feature will remove the HAL links that reflect state from user objects returned in collections.
Currently, a user object returned in a collection contains some or all of the following links:
"_links": {
"suspend": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/suspend",
"method": "POST"
},
"resetPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/reset_password",
"method": "POST"
},
"expirePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/expire_password",
"method": "POST"
},
"forgotPassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/forgot_password",
"method": "POST"
},
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
},
"changeRecoveryQuestion": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_recovery_question",
"method": "POST"
},
"deactivate": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/lifecycle/deactivate",
"method": "POST"
},
"changePassword": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3/credentials/change_password",
"method": "POST"
}
}
Unfortunately, these links are not guaranteed to accurately reflect the state of the specified user. As outlined in Design Principles:
"Search and list operations are intended to find matching resources and their identifiers. If you intend to search for a resource and then modify its state or make a lifecycle change, the correct pattern is to first retrieve the resource by 'id' using the "self" link provided for that resource in the collection. This will provide the full set of lifecycle links for that resource based on its most up-to-date state."
The Simple HAL Links on User Collections feature ensures that possibly invalid state links are not returned. Instead only the self link is returned:
"_links": {
"self": {
"href": "https://${yourOktaDomain}/api/v1/users/00ulxgGOjrKcnmDHT0g3"
}
}
As noted above, to change user state, the self link should be called to retrieve a user object with up-to-date links.
Important: Not all preview organizations will receive this feature. Okta has identified preview organizations that depend on the Okta .NET SDK, which requires the old functionality. Okta won't enable the feature for these orgs. Instead, Okta will send a customer communication explaining the migration path to enable the feature.
Access policies can now be defined based on an IP address range using the Zones API. This feature is Generally Available in preview orgs for at least one month before being Generally Available in production.
idp was specified in the query string for a request to the oauth2/v1/authorize endpoint, the request failed in some orgs. (OKTA-120122)We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits will further lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately will lessen the chances of one user's impacting another. We're also providing a transition period so you can see what these changes will look like in your Okta system log before enforcing them:
After Monday, 2017-04-17, you'll see system log alerts that let you know if you would have exceeded any of the new API rate limits. We're making this feature available to all preview orgs, and the feature will remain in preview for at least two weeks.
Starting later in April, 2017, we'll treat authenticated end-user interactions on a per-user basis. Interactions like SSO after login won't apply to your org-wide API rate limits.
Early in May, 2017, we will enforce the new, more granular rate limits. At that point, the warnings in the System Log will change to error notifications.
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
Use the oauthTokens parameter when clearing user sessions to revoke all OpenID Connect and OAuth Access Tokens and Refresh Tokens
issued to the user. For more information, see the Users API.
Token requests with password grant type (grant_type) and openid scope now return an ID Token.
Previously only the appropriate Access Token or Refresh Token was returned.
The API now authenticates a user via a trusted application or proxy that uses the activation token. For more information, see Authentication API.
A HAL link to /api/v1/users/${userId}/lifecycle/reactivate is now provided
for requests when the user is in a PROVISIONED state but doesn't have a password.
A new banner displays when you log into your developer org. It provides links to common onboarding tasks. Once you dismiss the banner, it can't be displayed again.
Access Policies can now be defined based on an IP address range.
Okta Admins can now upload their own SAML certificates to sign the assertion for Outbound SAML apps. These certificates can also be used to sign the AuthNRequest, as well as to decrypt the assertion for Inbound SAML. For more information, see Sign the Okta Certificate with your own CA.
When determining the user locale via the API, Okta uses the locale setting in the Universal Directory. If one isn't found, then Okta uses the org-wide display language instead. If the settings in Universal Directory and org are different for an end user, then Okta will prioritize the locale indicated in Universal Directory settings. This priority may change in future releases.
Added lifecycle/reactivate endpoint.
This endpoint enables the API user to recover from failure in the authentication workflow, specifically when the user password is not set. In those cases this endpoint can be used to restart the activation by getting a new token and proceeding to set the user credentials. For more information, see the API Reference.
Added a number of APIs that allow you to link an existing Okta user to a Social Identity Provider via an externalId. For more information, see Identity Provider User Operations
/api/v1/users while the user was still activating failed to return an HTTP 409 error. (OKTA-120458)x5t to x5t#S256. (OKTA-121442)after, we would return 0 results. Now you will get a validation error. (OKTA-119726)We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits will further lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately will lessen the chances of one user's impacting another. We're also providing a transition period so you can see what these changes will look like in your Okta system log before enforcing them:
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
/api/v1/apps API sometimes incorrectly returned null for the realm or groupName
attribute for a Template WS-Fed application. (OKTA-117274)/api/v1/idps/{idpId} API sometimes incorrectly returned an HTTP response code of 500
rather than 400. (OKTA-117691)/api/v1/idps API improperly allowed social identity providers to be created
when the administrator did not have sufficient permissions. Those providers could not be used. (OKTA-118067)/api/v1/apps API returned an incorrect number of app instances when pagination and permissions
filtering were both in effect. (OKTA-113411)We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits will further lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately will lessen the chances of one user's impacting another. We're also providing a transition period so you can see what these changes will look like in your Okta system log before enforcing them:
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
Sample code to demonstrate OIDC authorization flows is available from the following locations:
System log now records the result of applying the Okta sign-on policy to determine whether to use multi-factor authentication for a user trying to log in. This log entry includes the user's zone.

For a user mastered from Active Directory and in password reset mode, the /api/v1/users API returned the user's status as ACTIVE rather than RECOVERY. (OKTA-109772)
We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits will further lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately will lessen the chances of one user's impacting another. We're also providing a transition period so you can see what these changes will look like in your Okta system log before enforcing them:
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
/api/v1/authn/factors/<factorId>/verify responded with a valid stateToken after user status
became LOCKED_OUT, causing user interface errors. (OKTA-115153)We are making org-wide rate limits more granular, and treating authenticated end-user interactions separately. More granular rate limits will further lessen the likelihood of calls to one URI impacting another. Treating authenticated end-user interactions separately will lessen the chances of one user's impacting another. We're also providing a transition period so you can see what these changes will look like in your Okta system log before enforcing them:
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
For a collection of Users, the Links object contains only the self link. This feature will be in preview for at least a month.
We are making rate limits more granular and will roll the changes out over the next few months:
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
General settings > Implicit grant type, you can now use checkboxes to
include ID Tokens, Access Tokens, or both.
Access Token contains claims that evaluate to an
array, we did not send the claims as a JSON array and did not ensure that the values were of
the correct types. (OKTA-113034)We are making rate limits more granular and will roll the changes out over the next few months:
Of course, as each change is released, we'll announce the change here.
For a full description of the rate limit changes, see API Rate Limits.
All scopes radio button.
We are making rate limits more granular and will roll the changes out over the next few months:
Of course, as each change is released, we'll announced the change here.
For a full description of the rate limit changes, see API Rate Limits.
You can now search (exact match) for an authorization server name or resource URI: To see the new search box, log into your Okta org, click the Admin button, and visit Security > API > Authorization Servers.

In the administrator UI, you can set an authorization server to manually rotate keys. Keys are rotated automatically by default.
Important: Automatic key rotation is more secure than manual key rotation. Use manual key rotation only if you can't use automatic key rotation.
To change an authorization server configuration to use manual key rotation:
response_mode set to okta_post_message failed to return
the error message ("The authorization server does not support the requested response mode") in the
response. Instead it redirected the error response to the URI specified in redirect_uri. (OKTA-103437)sessionToken in the response from the POST /api/v1/authn request with username
and password was valid for two hours after issuance. It is now valid for 5 minutes for added security. (OKTA-109907)search parameter with GET /api/v1/users when the user is federated returned an incorrect
value for provider. (OKTA-110929)The new expression language function Arrays.toCsvString(array) converts an array to a comma-delimited string. For example:
Arrays.toCsvString({"This", "is", " a ", "test"}) returns This,is, a ,test
self and next were returned with incorrect values. (OKTA-111350)When editing scopes in the General Settings tab for a single-page app (SPA) for OpenID Connect, switching to another tab deselected all scopes. (OKTA-108562)
Instead of returning an error, invalid fields and names were added to user profiles in some cases. (OKTA-109719)
The HAL links for the self-service actions forgot_password, reset_password, and unlock were returned for every user whether the action was allowed by policy or not.
This behavior applied to new orgs as of 2016.45 and is being reversed.
As of 2016.51, HAL links for these three operations are returned only if the policy for that user indicates the action is available. (OKTA-110739)
Okta's API Access Management helps enterprises protect their APIs using OAuth 2.0 as a Service. By defining flexible security domains, scopes, claims, and access policies, you can control access as narrowly or as widely as needed for your enterprise. With this solution, you can create one or more authorization servers, configure scopes, set access policies and have a fully operational OAuth Authorization Service in minutes. We support the full set of core OAuth and OIDC flows (code, implicit, password, client credential, hybrid, and refresh) and are fully spec compliant.

To get started with API Access Management, visit API Access Management.
The endpoint to delete users changed from the Beta endpoint POST /api/v1/users/{id}/lifecycle/delete
to the more intuitive DELETE /api/v1/users/{id} for EA.
The Beta endpoint has been removed.
API access to delete users is now in EA. To request the feature, contact Support.
System logs are truncated after six months. You may want to revise any system log queries for the new limit. This change allows us to provide faster, more consistent responses to a wider range of system-log API requests. Because the system keeps less data in memory, it responds faster.
The new version of Okta Sign-In Widget, 1.8.0, is available:
Learn about these and other improvements in the GitHub repository.
OpenID Connect error messages related to invalid scopes now return more information.
Previously, HAL links for self-service operations (reset password, change password and self-service unlock) were only returned if a policy evaluation indicated they should be present. As of this release we always return these links, except we don't return the self-service unlock link if the user is not locked.
This enhancement applies to all new preview and productions orgs. Existing orgs receive the enhancement at a later date.
GET /api/v1/apps/{app-ID} request for an OpenID Connect app. (OKTA-104767)The OpenID Connect discovery endpoint .well-known includes the introspection and revocation endpoints.
Request Example:
GET https://${yourOktaDomain}/.well-known/openid-configuration
Response Example:
{
"issuer": "https://${yourOktaDomain}",
"authorization_endpoint": "https://${yourOktaDomain}/oauth2/v1/authorize",
"token_endpoint": "https://${yourOktaDomain}/oauth2/v1/token",
"userinfo_endpoint": "https://${yourOktaDomain}/oauth2/v1/userinfo",
"jwks_uri": "https://${yourOktaDomain}/oauth2/v1/keys",
"response_types_supported": [
"code",
"code id_token",
"code id_token token",
"id_token",
"id_token token",
"token"
],
...
"introspection_endpoint": "https://${yourOktaDomain}/oauth2/v1/introspect",
"introspection_endpoint_auth_methods_supported": [
"client_secret_basic",
"client_secret_post",
"none"
],
"revocation_endpoint": "https://${yourOktaDomain}/oauth2/v1/revoke",
"revocation_endpoint_auth_methods_supported": [
"client_secret_basic",
"client_secret_post",
"none"
]
}
Use the Expression Language function String.replaceFirst to replace the first occurrence of a string.
Example:
String.replaceFirst("This list includes chores", "is", "at") = "That list includes chores"
In release 2016.41 we introduced the string replacement function String.replace, which replaces all instances of a specified string.
POST requests to /api/v1/sessions failed with an InvalidSessionException if the request specified a
sessionToken but no API token was included. (OKTA-104965)
The new version of Okta Sign-In Widget, 1.7.0, is available:
tokenManager manages OAuth 2.0 and OpenID Connect tokens.Learn about these and other improvements in the GitHub repository.
The new version of Okta Auth JS, 1.5.0, is available:
token.refresh method.token.getUserInfo.Learn about these and other improvements in the GitHub repository.
Just as you can in the Apps API, you can perform key store operations in the Identity Providers API:
For more information, see Identity Provider Signing Key Store Operations.
Use the Expression Language function String.replace to replace strings.
Example:
String.replace("This list includes chores", "is", "at") = "That last includes chores"
For more information, see Expression Language: String Functions.
Once you have shared a credential between apps, you can list all the applications that are using the same application key credential.
For more information, see the Apps API reference.
By cloning an app key credential with the Apps API, you can share the same certificate between two or more apps:
/apps/:aid/credentials/keys/:kid/clone?targetAid=:targetAid
To share a certificate among app instances:
kid) with one or more target apps.For more detailed instructions, see "Clone Key Credential for Application" and "Update Key Credential for Application".
The WWW-Authenticate header couldn't be read when the /oauth2/v1/userinfo endpoint returned errors in a browser. (OKTA-101943)
The names of AppUser properties that have changed during an import are included in the system log.
createdAt is returned in results.lastPasswordVerification isn't updated.lastPasswordVerification is only updated when the password is verified.The new version of Okta Sign-In Widget, 1.6.0, is available:
npm module.Learn about these and other improvements at the Git site.
Two Session API endpoints, GET /api/v1/sessions/me and POST /sessions/me/lifecycle/refresh, return /me instead of /${userId} in response links.
These links are CORS-enabled, consistent with the original API calls which are also CORS-enabled.
For more information, see Get Session or Refresh Session.
matchAttribute in inbound SAML IdPs. (OKTA-96281)/api/v1/users/${userId}/factors or /api/v1/users/${userId}/factors/catalog. (OKTA-95569)oauth2/v1/authorize that specified the Form Post Response Mode sometimes failed to receive expires_in and scope in the response. (OKTA-98245)We've added support for Access Tokens and two new namespaces, token and tokenManager, to handle both ID Tokens and Access Tokens. The token namespace makes it easier to specify how to retrieve your tokens: getWithoutPrompt, getWithPopup, and getWithRedirect. The tokenManager namespace allows tracking tokens and automatically refreshes them for you.
For more details including feature and bug-fix commits, see the okta-auth-js Git repository.
Use the expand query parameter to include up to twenty rules in a Policy API query:
GET https://my-org.okta.com/api/v1/policies/{id}?expand=rules
The embedded rules option returns up to 20 rules for a given policy. If the policy has more than 20 rules, this request returns an error.
/api/v1/authn/recovery/password to fail. (OKTA-93994)You can now create SAML and SWA custom apps using the Apps API. Previously you had to create a custom app using the App Integration Wizard in the administrator UI.
For more information about creating custom apps with the API, see Apps API: Add Custom SAML Application.
For SAML IdPs, you can now match transformed IdP usernames using more attributes.
To match on an attribute other than username, email, or either, specify the attribute name in the property matchAttribute,
and specify the value CUSTOM_ATTRIBUTE in matchType.
For more information, see Identity Providers.
Contact Support to enable this Early Access feature.
The Okta Sign-In Widget release 1.5.0 contains the following enhancements:
@okta/i18n and @okta/courage are optional, to allow npm install to work properly.The expires_in response parameter tells you the number of seconds before a token (Access Token) expires. If your
response from the /oauth2/v1/authorize endpoint includes an Access Token, expires_in is included in the response.
For more information, see the /oauth2/v1/authorize Response Properties.
The default certificate used by new SAML IdP instances to sign assertions is a SHA256 certificate. Existing SAML IdP instances will continue to use the certificate they currently have.
okta-auth-js didn't work unless you also defined global variables in the build flow. (OKTA-94206)To enable a platform client to display password
complexity requirements to the user, we've enhanced the PasswordComplexity object to include those requirements: excludeUsername, age:minAgeMinutes, and age:historyCount.
{
"expiration":{
"passwordExpireDays": 0
},
"complexity": {
"minLength": 8,
"minLowerCase": 1,
"minUpperCase": 1,
"minNumber": 1,
"minSymbol": 0,
"excludeUsername": "true"
},
"age":{
"minAgeMinutes":0,
"historyCount":0
}
}
Also, the response to an answer recovery question (/api/v1/authn/recovery/answer) includes the PasswordPolicy object, which contains the PasswordComplexity object:
{
"stateToken": "00lMJySRYNz3u_rKQrsLvLrzxiARgivP8FB_1gpmVb",
"expiresAt": "2015-11-03T10:15:57.000Z",
"status": "PASSWORD_RESET",
"relayState": "/myapp/some/deep/link/i/want/to/return/to",
"_embedded": {
"user": {
"id": "00ub0oNGTSWTBKOLGLNR",
"passwordChanged": "2015-09-08T20:14:45.000Z",
"profile": {
"login": "dade.murphy@example.com",
"firstName": "Dade",
"lastName": "Murphy",
"locale": "en_US",
"timeZone": "America/Los_Angeles"
}
},
"policy": {
"expiration":{
"passwordExpireDays": 0
},
"complexity": {
"minLength": 8,
"minLowerCase": 1,
"minUpperCase": 1,
"minNumber": 1,
"minSymbol": 0,
"excludeUsername": "true"
},
"age":{
"minAgeMinutes":0,
"historyCount":0
}
}
},
"_links": {
...
}
}
When performing a self-service password reset (forgot password), the request for an answer recovery question is made in response to the security question challenge. For more information, see Password Complexity Object and Answer Recovery Question.
To improve usability, we've moved some of the panels in the administrator UI related to OAuth:

The Okta Sign-In Widget will be updated to version 1.4.0 for Production orgs.
See Okta Sign-In Widget for updated sample code.
The new release includes several enhancements:
To ensure a successful password recovery lookup if an email address is associated with multiple users, we improved the lookup behavior:
/oauth2/v1/userinfo. (OKTA-91099)iss) in the Access Token has changed: it was the client ID. It now takes the form: `https://${yourOktaDomain}.okta.com/as/{authorization-server-ID}. (OKTA-93628)You can send custom text as part of an SMS message request:
/api/v1/templates/sms endpoint to create a custom SMS text template.For more information, see Templates API and Factors API.
The /oauth2/v1/token endpoint includes a Refresh Token if:
grant_type with the value password and your client supports the grant_type value refresh_token. For more information, see Token Request.offline_access scope. For more information, see Refresh Tokens.last_name didn't return all the matches. (OKTA-91367)To protect against arbitrarily large numbers of groups matching the group filter, the group claim has a limit of 100. If more than 100 groups match the filter, then the request fails.
The following issues are fixed:
Added on June 29:
Version 1.3.3 of the Okta Sign-In Widget, and version 1.0.2 of okta-auth-js are available for Preview orgs. For more information, see Okta Sign-In Widget.
The Links object, _links, is available in the Policy object. For more information, see Links Object.
The error descriptions related to OAuth provide more helpful information about invalid clients for OpenID Connect flows.
If you need to disable automatic key rotation for an OpenID Connect flow, you can do so in General Settings section under the General tab for an app, and then use the /oauth2/v1/keys endpoint to fetch public keys for your app. For more information, see OpenID Connect.
helpURL for vpn wasn't returned even though it had been set previously in a request to /api/v1/apps./api/v1/idps/./oauth2/v1/authorize failed if they included a state value with special characters./oauth2/v1/introspect incorrectly included scopesList.