Skip to content

Enable Multi Factor Authentication across Service Providers #2038

@krishnilak

Description

@krishnilak

Description:
I have found that, enabling multiple authentication steps across service providers (Service providers which is using default authentication sequence) can be done by doing changes in the <IS_Home>/repository/conf/identity/service-providers/default.xml
[1] This is not mentioned in the documentation anywhere
[2] Could not find any mapping from deployment.toml to default.xml authentication steps

Affected Product Version:
IS 5.10 onwards

Steps to reproduce:
Changing MFA Steps in a global level (Across all the service providers) can be done by doing configurations changes at the <IS_HOME>/repository/identity/service-providers/default.xml, And by enabling the default authentication flow for the service provider.

Initially default.xml will have configurations as belows, But if I need to add more authentication steps, to the default flow I can do that by adding element with 2

        <LocalAndOutBoundAuthenticationConfig>
		<AuthenticationSteps>
			<AuthenticationStep>
				<StepOrder>1</StepOrder>
				<LocalAuthenticatorConfigs>
					<LocalAuthenticatorConfig>
						<Name>BasicAuthenticator</Name>
						<DisplayName>basicauth</DisplayName>
						<IsEnabled>true</IsEnabled>
					</LocalAuthenticatorConfig>
				</LocalAuthenticatorConfigs>
				<!-- FederatedIdentityProviders>
				 <IdentityProvider>
				       <IdentityProviderName>facebook</IdentityProviderName>
				       <IsEnabled>true</IsEnabled>
                                     <DefaultAuthenticatorConfig>
                                             <FederatedAuthenticatorConfig> 
                                                     <Name>FacebookAuthenticator</Name>
                                                     <IsEnabled>true</IsEnabled>
                                             </FederatedAuthenticatorConfig>
                                     </DefaultAuthenticatorConfig>
				 </IdentityProvider>
				</FederatedIdentityProviders -->
				<SubjectStep>true</SubjectStep>
				<AttributeStep>true</AttributeStep>
			</AuthenticationStep>
		</AuthenticationSteps>	
	</LocalAndOutBoundAuthenticationConfig>

For example, If I want to have basic authentication as the first step and google account verification as the second step, following are the configurations

          <LocalAndOutBoundAuthenticationConfig>
		<AuthenticationSteps>
			<AuthenticationStep>
				<StepOrder>1</StepOrder>
				<LocalAuthenticatorConfigs>
					<LocalAuthenticatorConfig>
						<Name>BasicAuthenticator</Name>
						<DisplayName>basicauth</DisplayName>
						<IsEnabled>true</IsEnabled>
					</LocalAuthenticatorConfig>
				</LocalAuthenticatorConfigs>
				<SubjectStep>true</SubjectStep>
				<AttributeStep>true</AttributeStep>
			</AuthenticationStep>
                         <AuthenticationStep>
				<StepOrder>2</StepOrder>
				< FederatedIdentityProviders>
				 <IdentityProvider>
				       <IdentityProviderName>google</IdentityProviderName>
				       <IsEnabled>true</IsEnabled>
                                     <DefaultAuthenticatorConfig>
                                             <FederatedAuthenticatorConfig> 
                                                     <Name>google</Name>
                                                     <IsEnabled>true</IsEnabled>
                                             </FederatedAuthenticatorConfig>
                                     </DefaultAuthenticatorConfig>
				 </IdentityProvider>
				</FederatedIdentityProviders>
				<SubjectStep>false</SubjectStep>
				<AttributeStep>false</AttributeStep>
			</AuthenticationStep>
		</AuthenticationSteps>	
	</LocalAndOutBoundAuthenticationConfig>

Default sequence can be enabled for a service provider by, traversing to service provider edit view from the management console and navigating to “Inbound and Outbound Authentication Configuration” and checking the option “Default”

a

Related Issues:
wso2/product-is#9452

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions