Файлы примеров Android для Azure B2C также требуют, чтобы информация о файле конфигурации реплицировалась в классе B2CConfiguration

#azure-ad-b2c

#azure-ad-b2c

Вопрос:

Я внедрял Azure AD B2C в многопользовательском режиме и читал файлы примеров. Почему существует класс конфигурации, в котором указано:

«Если вы хотите использовать собственную регистрацию приложения, вам также потребуется обновить B2CConfiguration.java для соответствия вашему конфигурационному файлу json «.

Разве это не противоречит цели создания файла конфигурации? Разве значения не должны быть доступны через модуль каким-либо образом, если файл конфигурации

Этот код показывает вызов файла конфигурации json:

     // Creates a PublicClientApplication object with res/raw/auth_config_single_account.json
    PublicClientApplication.createMultipleAccountPublicClientApplication(getContext(),
            R.raw.auth_config_b2c,
            new IPublicClientApplication.IMultipleAccountApplicationCreatedListener() {
                @Override
                public void onCreated(IMultipleAccountPublicClientApplication application) {
                    b2cApp = application;
                    loadAccounts();
                }

                @Override
                public void onError(MsalException exception) {
                    displayError(exception);
                    removeAccountButton.setEnabled(false);
                    runUserFlowButton.setEnabled(false);
                    acquireTokenSilentButton.setEnabled(false);
                }
            });
  

И B2CConfiguraiton показывает:

 /**
 * Name of your B2C tenant hostname.
 */
final static String azureAdB2CHostName = "fabrikamb2c.b2clogin.com";

/**
 * Name of your B2C tenant.
 */
final static String tenantName = "fabrikamb2c.onmicrosoft.com";

/**
 * Returns an authority for the given policy name.
 *
 * @param policyName name of a B2C policy.
 */
public static String getAuthorityFromPolicyName(final String policyName) {
    return "https://"   azureAdB2CHostName   "/tfp/"   tenantName   "/"   policyName   "/";
}

/**
 * Returns an array of scopes you wish to acquire as part of the returned token result.
 * These scopes must be added in your B2C application page.
 */
public static List<String> getScopes() {
    return Arrays.asList(
            "https://fabrikamb2c.onmicrosoft.com/helloapi/demo.read");
}
  

Все эти значения находятся в файле конфигурации, за исключением областей.

Есть ли здесь другой вариант, чтобы мне не нужно было жестко кодировать информацию о конфигурации?

Комментарии:

1. Детали конфигурации должны быть жестко запрограммированы, у вас нет другого способа динамически восстанавливать / изменять значения. В конфигурации B2CConfiguration. java-файл, который был четко упомянут в разделе комментариев как The value in this class has to map with the json configuration file (auth_config_b2c.json).

Ответ №1:

Сведения о конфигурации (например, tenentid, имя политики) не могут отображаться динамически.

В B2CConfiguration.java файле, если вы видите раздел комментариев, он был упомянут как The value in this class has to map with the json configuration file (auth_config_b2c.json) .

Комментарии:

1. Спасибо, Рагавендра. Я видел, что они упомянули, что информация была реплицирована, но подумал, что это неэффективно, и задавался вопросом, почему это должно быть так, поскольку любое изменение файла конфигурации фактически требует изменения кода, усложняя перемещение между средами (dev, test, prod). Кстати, вы в организации Joy’s?

2. @Icj: Спасибо за обратную связь и правильные замечания.