Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow to disable 'ActiveAuth' on enterprise Connections #471

Merged
merged 4 commits into from
Jul 25, 2018

Conversation

lbalmaceda
Copy link
Contributor

@lbalmaceda lbalmaceda commented Jul 24, 2018

Some Enterprise Connections can use Active Authentication (username/ password) to log the user in from within Lock. This unfortunately, breaks scenarios where the SSO identity provider requires MFA.

With this PR, users can now select which Enterprise connections of those which are...

  1. whitelisted to be shown in Lock and
  2. allowed to use ActiveAuth (enterprise strategies 'ad', 'adfs', 'waal')

...and use the browser instead and perform Web Authentication.

The default behavior remains the same: ActiveAuth will be used on those connections that fulfill what's stated in (2) above. The remainder (Connections without ActiveAuth enabled) will always use the Browser to authenticate.

Process for ActiveAuth enabled connection

  1. type the email and match the connection domain
  2. SSO banner/message is shown and user clicks "next"
  3. user types the password and clicks login

Process for ActiveAuth disabled connection

  1. type the email and match the connection domain
  2. SSO banner/message is shown and user clicks "login"
  3. browser is opened and the authentication is delegated

Usage

You need to pass the list of connections that normally use Active Authentication and now will use Web Authentication.

Lock lock = Lock.newBuilder(auth0, callback)
       .enableEnterpriseWebAuthenticationFor(Arrays.asList("my-ad-connection"));
       //further customization
       .builder.build(this);

startActivity(lock.newIntent(this));

@lbalmaceda lbalmaceda added this to the v2-Next milestone Jul 24, 2018
* users in from within the Lock widget using their email and password. This is known as
* Active Authentication, and is not supported for MFA enabled identity providers.
* By whitelisting the connections here, the Universal Login Page is used instead and the
* log in is delegated to the browser application.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

login ... one word for a noun.

Question: this is a very specific use case you're describing. Is it useful in other contexts? In other words: should this description either include other use cases or not be specific about MFA?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know to be honest. I know about MFA because it was reported now. Should I remove it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole paragraph just seems like overkill. Maybe just:

Set which enterprise connections should use Web Authentication (redirect to the Universal Login Page) instead of Active Authentication (username and password form).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed that and the MFA mention.

* log in is delegated to the browser application.
* Enterprise connections allowed for this client will use Active Authentication by default.
*
* @param connections the list of enterprise connections that will use Web Authentication.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it be explicit about what connections are accepted?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AuthType.ENTERPRISE ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AuthType.ENTERPRISE is an internal class. I didn't want to get detailed enumerating every enterprise strategy. Maybe I can link to https://manage.auth0.com/#/connections/enterprise ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isActiveFlowEnabled has 3 strategies it's checking ... would it be helpful to add those here?

configuration = new Configuration(connections, options);

//Connections include 2 'ad' enterprise connections: "MyAD" and "mySecondAD"
//One of them is tell above to use Web Authentication
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

//The "MyAD" connection is set to use web auth above

... or thereabouts

Copy link
Member

@cocojoe cocojoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@lbalmaceda lbalmaceda merged commit c1d1400 into master Jul 25, 2018
@lbalmaceda lbalmaceda modified the milestones: v2-Next, 2.9.0 Jul 25, 2018
@lbalmaceda lbalmaceda deleted the allow-enterprise-hlp branch May 4, 2021 18:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants