diff --git a/docs/docs/guides/integrate/identity-providers/migrate.mdx b/docs/docs/guides/integrate/identity-providers/migrate.mdx new file mode 100644 index 0000000000..dc9cbb0962 --- /dev/null +++ b/docs/docs/guides/integrate/identity-providers/migrate.mdx @@ -0,0 +1,48 @@ +--- +title: Migrate from Generic Provider to specific Identity Provider +sidebar_label: Migrate IDP +--- + +## Migrate Generic OIDC Provider + +You can migrate from a generic OIDC provider to the following supported templates: +- AzureAD +- Google + +To migrate, you either use the [Migrate Generic OIDC Identity Provider (Instance)](/docs/apis/resources/admin/admin-service-migrate-generic-oidc-provider#migrate-generic-oidc-identity-provider) or [Migrate Generic OIDC Identity Provider (Organization)](/docs/apis/resources/mgmt/management-service-migrate-generic-oidc-provider#migrate-generic-oidc-identity-provider) API request. +These calls change the type of the provider and don't delete any linked users. + +:::note Linked users will not notice the change and be able to login as usual. +::: + +### Google Configuration + +The available configuration is described in [Google Configuration](./google). + +### AzureAD Configuration + +The available configuration is described in [AzureAD Configuration](./azure-ad). + +## Migrate with Terraform +Please note that you only have to perform this migration if you already have an existing IDP with linked users, that should not loose the connection to the provider. +If that isn't your case please just add a new provider from scratch. +To migrate to a specific provider, you need to follow a few essential steps: +1. Create a desired IDP as Terraform resource for example [Google](https://registry.terraform.io/providers/zitadel/zitadel/latest/docs/resources/idp_google). +2. Make the corresponding API call to [migrate the IDP](./migrate#google-configuration), save the ID of the IDP for the import +3. Before applying the Terraform resources again, import the new IDP resource. +```bash +#resource "zitadel_idp_google" "google" { +# name = "Google" +# client_id = "182902..." +# client_secret = "GOCSPX-*****" +# scopes = ["openid", "profile", "email"] +# is_linking_allowed = false +# is_creation_allowed = true +# is_auto_creation = false +# is_auto_update = true +#} + +# terraform import zitadel_idp_google.*resource_name* *id*:*client_secret* +terraform import zitadel_idp_google.google 222302827723096428:GOCSPX-***** + +You have now migrated your provider and you should be able to apply the resource again. There should be no changes and the IDP is maintained by Terraform again. \ No newline at end of file diff --git a/docs/sidebars.js b/docs/sidebars.js index 98c752eeb5..a90e7a0ada 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -225,6 +225,7 @@ module.exports = { "guides/integrate/identity-providers/gitlab", "guides/integrate/identity-providers/ldap", "guides/integrate/identity-providers/openldap", + "guides/integrate/identity-providers/migrate", "guides/integrate/identity-providers/google-oidc", "guides/integrate/identity-providers/azuread-oidc", ],