# Migration Guide

# SAML2 Integration Migration Guide

## <span style="white-space: pre-wrap;">SAML2 Integration Migration Guide </span>

<span style="white-space: pre-wrap;">As part of an ongoing platform modernization effort, Frame is migrating SAML2 authentication services to a new domain structure. </span>

<span style="white-space: pre-wrap;">This change is required because Frame is discontinuing the use of legacy nutanix.com-based domains for authentication services. As a result, existing SAML2 integrations must be migrated to new domains to ensure continued and supported operation. </span>

<p class="callout info"><span style="white-space: pre-wrap;"> - In the US region, this change affects authentication endpoints under the img.frame.nutanix.com domain.</span>  
<span style="white-space: pre-wrap;"> - In the DEU region, the authentication service is being moved to a subdomain that already hosts the Frame backend.</span>  
<span style="white-space: pre-wrap;"> This simplifies the overall domain structure used for user authentication. </span></p>

<span style="white-space: pre-wrap;">The updated domain structure simplifies network configuration, particularly for customers with on‑premises desktop deployments that rely on strict network allow‑listing. </span>

<span style="white-space: pre-wrap;">To minimize disruption, the migration process allows you to: </span>

- <span style="white-space: pre-wrap;">Create and validate a new SAML2 integration in parallel with the existing one </span>
- <span style="white-space: pre-wrap;">Migrate users and authorization rules incrementally </span>
- <span style="white-space: pre-wrap;">Verify end‑user access before decommissioning the old integration </span>

##### <span style="white-space: pre-wrap;">Migration Overview </span>

<span style="white-space: pre-wrap;">The migration is performed by creating a new SAML2 integration alongside the existing one, validating it, and then migrating data from the old (source) integration to the new (target) integration. </span>

<span style="white-space: pre-wrap;">At a high level, the process consists of the following phases: </span>

1. <span style="white-space: pre-wrap;">Create and configure a new SAML2 integration </span>
2. <span style="white-space: pre-wrap;">Verify that the new integration works as expected </span>
3. <span style="white-space: pre-wrap;">Migrate users and permissions from the old integration </span>
4. <span style="white-space: pre-wrap;">Validate end-user access </span>
5. <span style="white-space: pre-wrap;">Decommission the old integration </span>

<span style="white-space: pre-wrap;">Each phase is described in detail below. </span>

#### <span style="white-space: pre-wrap;">1. Create a New SAML2 Integration </span>

<span style="white-space: pre-wrap;">Start by creating a new SAML2 integration in Frame. </span>

<span style="white-space: pre-wrap;">Configure the integration according to the </span>[SAML2 documentation.](https://docs.difr.com/books/platform-administrators-guide/chapter/identity-and-access-management)<span style="white-space: pre-wrap;"> </span>

- <span style="white-space: pre-wrap;">On the IdP side, you may reuse the existing application configuration if your IdP allows it (for example, by adding additional entity IDs, ACS URLs, or domains). </span>
- <span style="white-space: pre-wrap;">If reusing the existing application is not possible, create a new application in your Identity Provider and configure it for the new integration. </span>

<span style="white-space: pre-wrap;">At this stage, the existing SAML2 integration should remain active and unchanged. </span>

<span style="white-space: pre-wrap;"> </span>

#### <span style="white-space: pre-wrap;">2. Verify the New Integration </span>

<span style="white-space: pre-wrap;">Once the new SAML2 integration is configured: </span>

- <span style="white-space: pre-wrap;">Perform a test login using the new integration. </span>
- <span style="white-space: pre-wrap;">Confirm that authentication completes successfully. </span>
- <span style="white-space: pre-wrap;">Ensure that user attributes (such as email, username, or external ID) are mapped correctly. This can be done by creating a test user for login or use a existing one which can be removed afterwards. </span>

<span style="white-space: pre-wrap;">Only proceed to migration after you are satisfied that the new integration works correctly. </span>

##### <span style="white-space: pre-wrap;">3. Migrate Data from the Existing Integration </span>

<span style="white-space: pre-wrap;">After validating the new integration, you can migrate data from the existing (source) integration. </span>

**3.1 Start the Migration**

- <span style="white-space: pre-wrap;">Locate the existing (source) SAML2 integration. </span>
- <span style="white-space: pre-wrap;">Click on the three-dot menu next to it. </span>

[![image.png](https://docs.difr.com/uploads/images/gallery/2026-03/scaled-1680-/image.png)](https://docs.difr.com/uploads/images/gallery/2026-03/image.png)

- <span style="white-space: pre-wrap;">Select “Migrate to …” and choose the newly created SAML2 integration as the target. </span>

[![image.png](https://docs.difr.com/uploads/images/gallery/2026-03/scaled-1680-/TIwimage.png)](https://docs.difr.com/uploads/images/gallery/2026-03/TIwimage.png)<span style="white-space: pre-wrap;"> </span>

**3.2 Migration Execution**

- <span style="white-space: pre-wrap;">The migration runs as a background task. </span>
- <span style="white-space: pre-wrap;">You can continue working while the migration is in progress. </span>
- <span style="white-space: pre-wrap;">When the task completes, you will receive a notification. </span>

[![image.png](https://docs.difr.com/uploads/images/gallery/2026-03/scaled-1680-/oBiimage.png)](https://docs.difr.com/uploads/images/gallery/2026-03/oBiimage.png)<span style="white-space: pre-wrap;"> </span>

**3.3 Migration Results**

- <span style="white-space: pre-wrap;">The notification can be opened to review detailed results of the migration. </span>
- <span style="white-space: pre-wrap;">The results include information about migrated users, authorization rules, and any skipped items. </span>  
      
    [![image.png](https://docs.difr.com/uploads/images/gallery/2026-03/scaled-1680-/6OCimage.png)](https://docs.difr.com/uploads/images/gallery/2026-03/6OCimage.png)

<span style="white-space: pre-wrap;">Explanation: </span>

- **Users created:**<span style="white-space: pre-wrap;"> number of copied users from old to the new integration </span>
- **Users skipped:**<span style="white-space: pre-wrap;"> number of users that were already copied to the new integration (in case you are running migrate for the second time) </span>
- **Users error:** <span style="white-space: pre-wrap;">some user could not be copied, and in that case, you should contact support to resolve the problem so users can be copied or maybe you decide to skip them if they are old </span>
- **Authorization rules copied:**<span style="white-space: pre-wrap;"> number of SAML2 Permission rules copied to the new integration </span>
- **Authorization rules skipped:**<span style="white-space: pre-wrap;"> already copied </span>
- **Authorization rules errors:** <span style="white-space: pre-wrap;"> contact support to solve this </span>

#### <span style="white-space: pre-wrap;">4. Validate End-User Access </span>

<span style="white-space: pre-wrap;">Once the migration has completed: </span>

- <span style="white-space: pre-wrap;">Verify that users can log in through the new SAML2 integration. </span>
- <span style="white-space: pre-wrap;">If your users have: </span>
- <span style="white-space: pre-wrap;">Persistent desktops </span>
- <span style="white-space: pre-wrap;">User profiles </span>
- <span style="white-space: pre-wrap;">Personal drives </span>

confirm that they receive the same resources as before.  
<span style="white-space: pre-wrap;">At this stage, both integrations may coexist, but users should primarily authenticate using the new integration. </span>

<span style="white-space: pre-wrap;"> </span>

#### <span style="white-space: pre-wrap;">5. Remove the Old Integration </span>

<span style="white-space: pre-wrap;">After you have confirmed that: </span>

- <span style="white-space: pre-wrap;">All required users are migrated </span>
- <span style="white-space: pre-wrap;">Authentication works as expected </span>
- <span style="white-space: pre-wrap;">User resources are preserved </span>

we recommend removing the old SAML2 integration.  
<span style="white-space: pre-wrap;">This completes the migration process. </span>

<p class="callout info"> **Optional**  
<span style="white-space: pre-wrap;"> Running an Additional Migration Pass</span>  
<span style="white-space: pre-wrap;"> If you need additional time to verify the new integration, you may keep the old integration active for a limited period.</span>  
<span style="white-space: pre-wrap;"> During this time, it is possible that new users authenticate through the old integration. These users do not yet exist in the new integration</span>  
<span style="white-space: pre-wrap;"> To address this, before deleting the old integration, you can run the migration again.</span></p>

<span style="white-space: pre-wrap;">Additional Migration Pass </span>

- <span style="white-space: pre-wrap;">Open the three-dot menu on the old integration. </span>
- <span style="white-space: pre-wrap;">Select “Migrate to …”. </span>
- <span style="white-space: pre-wrap;">Choose the same new integration as the target. </span>

<span style="white-space: pre-wrap;">This second migration will: </span>

- <span style="white-space: pre-wrap;">Migrate only newly added users and authorization rules </span>
- <span style="white-space: pre-wrap;">Skip users and roles that already exist in the target integration </span>

<span style="white-space: pre-wrap;">As a result: </span>

- <span style="white-space: pre-wrap;">The migration typically completes much faster </span>
- <span style="white-space: pre-wrap;">The results may show a high number of skipped users and skipped authorization roles </span>

<span style="white-space: pre-wrap;">This behavior is expected and indicates that only the differences were applied. </span>

<span style="white-space: pre-wrap;">If no new users were added since the previous migration, all users may be skipped. </span>

<span style="white-space: pre-wrap;"></span>