All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.aad.msal4j.IPublicClientApplication Maven / Gradle / Ivy

There is a newer version: 1.0.15
Show newest version
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.aad.msal4j;

import java.util.concurrent.CompletableFuture;

/**
 * Interface representing a public client application (Desktop, Mobile).
 * Public client application are not trusted to safely store application secrets,
 * and therefore can only request tokens in the name of an user.
 * For details see https://aka.ms/msal4jclientapplications
 */
public interface IPublicClientApplication extends IClientApplicationBase {

    /**
     * Acquires tokens from the authority configured in the application via Username/Password authentication.
     *
     * @param parameters instance of {@link UserNamePasswordParameters}
     * @return {@link CompletableFuture} containing an {@link IAuthenticationResult}
     */
    CompletableFuture acquireToken(UserNamePasswordParameters parameters);

    /**
     * Acquires tokens from the authority configured in the application via Integrated Windows Authentication.
     *
     * @param parameters instance of {@link IntegratedWindowsAuthenticationParameters}
     * @return {@link CompletableFuture} containing an {@link IAuthenticationResult}
     */
    CompletableFuture acquireToken(IntegratedWindowsAuthenticationParameters parameters);

    /**
     * Acquires security token from the authority using an device code flow.
     * Flow is designed for devices that do not have access to a browser or have input constraints.
     * The authorization server issues DeviceCode object with verification code, an end-user code
     * and the end-user verification URI. DeviceCode is provided through deviceCodeConsumer callback.
     * End-user should be instructed to use another device to connect to the authorization server to approve the access request.
     * Since the client cannot receive incoming requests, it polls the authorization server repeatedly
     * until the end-user completes the approval process.
     *
     * @param parameters instance of {@link DeviceCodeFlowParameters}
     * @return {@link CompletableFuture} containing an {@link IAuthenticationResult}
     * @throws MsalException thrown if authorization is pending or another error occurred.
     *                       If the errorCode of the exception is AuthenticationErrorCode.AUTHORIZATION_PENDING,
     *                       the call needs to be retried until the AccessToken is returned.
     *                       DeviceCode.interval - The minimum amount of time in seconds that the client
     *                       SHOULD wait between polling requests to the token endpoint
     */
    CompletableFuture acquireToken(DeviceCodeFlowParameters parameters);

    /**
     * Acquires tokens from the authority using authorization code grant. Will attempt to open the
     * default system browser where the user can input the credentials interactively, consent to scopes,
     * and do multi-factor authentication if such a policy is enabled on the Azure AD tenant.
     * System browser can behavior can be customized via {@link InteractiveRequestParameters#systemBrowserOptions}.
     * For more information, see https://aka.ms/msal4j-interactive-request
     *
     * @param parameters instance of {@link InteractiveRequestParameters}
     * @return {@link CompletableFuture} containing an {@link IAuthenticationResult}
     */
    CompletableFuture acquireToken(InteractiveRequestParameters parameters);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy