Deprecate for removal Instagram Identity Broker (#38998)

Closes #37967
Closes #36562

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
This commit is contained in:
Pedro Igor 2025-04-17 04:07:06 -03:00 committed by GitHub
parent 17e3bad7b2
commit 1ba8fe16ac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 48 additions and 3 deletions

View File

@ -130,7 +130,12 @@ public class Profile {
IPA_TUURA_FEDERATION("IPA-Tuura user federation provider", Type.EXPERIMENTAL),
ROLLING_UPDATES_V1("Rolling Updates", Type.DEFAULT, 1),
;
/**
* @see <a href="https://github.com/keycloak/keycloak/issues/37967">Deprecate for removal the Instagram social broker</a>.
*/
@Deprecated
INSTAGRAM_BROKER("Instagram Identity Broker", Type.DEPRECATED, 1);
private final Type type;
private final String label;

View File

@ -10,3 +10,13 @@ All available log handlers now support asynchronous logging capabilities.
Asynchronous logging might be useful for deployments requiring **high throughput** and **low latency** to move log operations in a separate thread.
For more details, see the https://www.keycloak.org/server/logging[Logging guide].
= Deprecated for removal the Instagram Identity Broker
It has been a while since discussions started about any activity around the Instagram Identity Broker
and any objection from the community about deprecating it for removal. For more details, see
https://github.com/keycloak/keycloak/issues/37967[Deprecate for removal the Instagram social broker].
In this release, the Instagram Identity Broker is deprecated for removal and is not enabled by default.
If you are using this broker, it is recommended to use the Facebook Identity Broker instead. For more
details, see link:{upgradingguide_link}[{upgradingguide_name}].

View File

@ -1,6 +1,9 @@
==== Instagram
IMPORTANT: The Instagram Identity Broker is deprecated for removal. Prefer using the Facebook Identity Broker instead.
To enable it, start the server with `--features=instagram-broker`.
.Procedure
. Click *Identity Providers* in the menu.
. From the *Add provider* list, select *Instagram*.
@ -25,7 +28,7 @@ image:images/meta-select-app-type.png[Select an app type]
.Create an app
image:images/meta-create-app.png[Create an app]
+
.. Fill in all required fields.
.. Fill in all required fields.
.. Click *Create app*. Meta then brings you to the dashboard.
.. In the navigation panel, select *App settings* - *Basic*.
.. Select *+ Add Platform* at the bottom of the page.

View File

@ -2,6 +2,22 @@
Breaking changes are identified as requiring changes from existing users to their configurations.
=== Deprecated for removal the Instagram Identity Broker
In this release, the Instagram Identity Broker is deprecated for removal and is not enabled by default.
If you are using this broker, it is recommended to use the Facebook Identity Broker instead.
If you are using the Instagram Identity Broker and want to re-enable it, you can do it by enabling the `instagram-broker`
feature using the `features` server option:
```
--features=instagram-broker
```
It has been a while since discussions started about any activity around the Instagram Identity Broker
and any objection from the community about deprecating it for removal. For more details, see
https://github.com/keycloak/keycloak/issues/37967[Deprecate for removal the Instagram social broker].
== Notable changes
Notable changes where an internal behavior changed to prevent common misconfigurations, fix bugs or simplify running {project_name}.

View File

@ -16,16 +16,20 @@
*/
package org.keycloak.social.instagram;
import org.keycloak.Config.Scope;
import org.keycloak.broker.oidc.OAuth2IdentityProviderConfig;
import org.keycloak.broker.provider.AbstractIdentityProviderFactory;
import org.keycloak.broker.social.SocialIdentityProviderFactory;
import org.keycloak.common.Profile;
import org.keycloak.common.Profile.Feature;
import org.keycloak.models.IdentityProviderModel;
import org.keycloak.models.KeycloakSession;
import org.keycloak.provider.EnvironmentDependentProviderFactory;
/**
* @author Pedro Igor
*/
public class InstagramIdentityProviderFactory extends AbstractIdentityProviderFactory<InstagramIdentityProvider> implements SocialIdentityProviderFactory<InstagramIdentityProvider> {
public class InstagramIdentityProviderFactory extends AbstractIdentityProviderFactory<InstagramIdentityProvider> implements SocialIdentityProviderFactory<InstagramIdentityProvider>, EnvironmentDependentProviderFactory {
public static final String PROVIDER_ID = "instagram";
@ -48,4 +52,9 @@ public class InstagramIdentityProviderFactory extends AbstractIdentityProviderFa
public String getId() {
return PROVIDER_ID;
}
@Override
public boolean isSupported(Scope config) {
return Profile.isFeatureEnabled(Feature.INSTAGRAM_BROKER);
}
}

View File

@ -6,6 +6,7 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.keycloak.OAuth2Constants;
import org.keycloak.admin.client.resource.IdentityProviderResource;
@ -351,6 +352,7 @@ public class SocialLoginTest extends AbstractKeycloakTest {
}
@Test
@Ignore
public void instagramLogin() throws InterruptedException {
setTestProvider(INSTAGRAM);
performLogin();