예제 #1
0
        public void AcquireTokenWithFederatedUsernameIncorrectPassword()
        {
            UserQuery query = new UserQuery
            {
                FederationProvider = FederationProvider.AdfsV4,
                IsMamUser          = false,
                IsMfaUser          = false,
                IsFederatedUser    = false
            };

            var labResponse = LabUserHelper.GetLabUserData(query);
            var user        = labResponse.User;

            SecureString incorrectSecurePassword = new SecureString();

            incorrectSecurePassword.AppendChar('x');
            incorrectSecurePassword.MakeReadOnly();

            var msalPublicClient = PublicClientApplicationBuilder.Create(labResponse.AppId).WithAuthority(_authority).Build();

            var result = Assert.ThrowsExceptionAsync <MsalException>(async() => await msalPublicClient
                                                                     .AcquireTokenByUsernamePassword(s_scopes, user.Upn, incorrectSecurePassword)
                                                                     .ExecuteAsync(CancellationToken.None)
                                                                     .ConfigureAwait(false));
        }
        [Timeout(1 * 60 * 1000)] // 1 min timeout
        public async Task DeviceCodeFlowAdfsTestAsync()
        {
            UserQuery query = new UserQuery
            {
                FederationProvider = FederationProvider.ADFSv2019,
                IsMamUser          = false,
                IsMfaUser          = false,
                IsFederatedUser    = true
            };

            LabResponse labResponse = LabUserHelper.GetLabUserData(query);

            Trace.WriteLine("Calling AcquireTokenWithDeviceCodeAsync");
            PublicClientApplication pca = PublicClientApplicationBuilder.Create(Adfs2019LabConstants.PublicClientId)
                                          .WithRedirectUri(Adfs2019LabConstants.ClientRedirectUri)
                                          .WithAdfsAuthority(Adfs2019LabConstants.Authority)
                                          .BuildConcrete();
            var result = await pca.AcquireTokenWithDeviceCode(s_scopes, deviceCodeResult =>
            {
                RunAutomatedDeviceCodeFlow(deviceCodeResult, labResponse.User, true);

                return(Task.FromResult(0));
            }).ExecuteAsync().ConfigureAwait(false);

            Trace.WriteLine("Running asserts");

            Assert.IsNotNull(result);
            Assert.IsTrue(!string.IsNullOrEmpty(result.AccessToken));
        }
예제 #3
0
        public async Task MultiUserCacheCompatabilityTestAsync()
        {
            // Arrange
            //cache = new TokenCache();

            //Acquire AT for default lab account
            LabResponse          labResponseDefault   = LabUserHelper.GetDefaultUser();
            AuthenticationResult defaultAccountResult = await RunTestForUserAsync(labResponseDefault).ConfigureAwait(false);

            //Acquire AT for ADFS 2019 account
            UserQuery federatedUserquery = new UserQuery
            {
                FederationProvider = FederationProvider.ADFSv2019,
                IsMamUser          = false,
                IsMfaUser          = false,
                IsFederatedUser    = true
            };

            LabResponse labResponseFederated   = LabUserHelper.GetLabUserData(federatedUserquery);
            var         federatedAccountResult = await RunTestForUserAsync(labResponseFederated, false).ConfigureAwait(false);

            //Acquire AT for MSA account
            LabResponse labResponseMsa = LabUserHelper.GetB2CMSAAccount();

            labResponseMsa.AppId = LabApiConstants.MSAOutlookAccountClientID;
            var msaAccountResult = await RunTestForUserAsync(labResponseMsa).ConfigureAwait(false);

            PublicClientApplication pca = PublicClientApplicationBuilder.Create(labResponseDefault.AppId).BuildConcrete();

            AuthenticationResult authResult = await pca.AcquireTokenSilent(new[] { CoreUiTestConstants.DefaultScope }, defaultAccountResult.Account)
                                              .ExecuteAsync()
                                              .ConfigureAwait(false);

            Assert.IsNotNull(authResult);
            Assert.IsNotNull(authResult.AccessToken);
            Assert.IsNotNull(authResult.IdToken);

            pca = PublicClientApplicationBuilder.Create(labResponseFederated.AppId).BuildConcrete();

            authResult = await pca.AcquireTokenSilent(new[] { CoreUiTestConstants.DefaultScope }, federatedAccountResult.Account)
                         .ExecuteAsync()
                         .ConfigureAwait(false);

            Assert.IsNotNull(authResult);
            Assert.IsNotNull(authResult.AccessToken);
            Assert.IsNull(authResult.IdToken);

            pca = PublicClientApplicationBuilder.Create(LabApiConstants.MSAOutlookAccountClientID).BuildConcrete();

            authResult = await pca.AcquireTokenSilent(new[] { CoreUiTestConstants.DefaultScope }, msaAccountResult.Account)
                         .ExecuteAsync()
                         .ConfigureAwait(false);

            Assert.IsNotNull(authResult);
            Assert.IsNotNull(authResult.AccessToken);
            Assert.IsNull(authResult.IdToken);
        }
예제 #4
0
        public async Task Interactive_AdfsV3_FederatedAsync()
        {
            // Arrange
            UserQuery query = new UserQuery
            {
                FederationProvider = FederationProvider.AdfsV4,
                IsMamUser          = false,
                IsMfaUser          = false,
                IsFederatedUser    = true
            };

            LabResponse labResponse = LabUserHelper.GetLabUserData(query);

            await RunTestForUserAsync(labResponse).ConfigureAwait(false);
        }
예제 #5
0
        public async Task AcquireTokenFromAdfsUsernamePasswordAsync()
        {
            UserQuery query = new UserQuery
            {
                FederationProvider = FederationProvider.ADFSv2019,
                IsMamUser          = false,
                IsMfaUser          = false,
                IsFederatedUser    = true
            };

            LabResponse labResponse = LabUserHelper.GetLabUserData(query);


            var user = labResponse.User;

            SecureString securePassword = new NetworkCredential("", user.GetOrFetchPassword()).SecurePassword;

            var msalPublicClient            = PublicClientApplicationBuilder.Create(Adfs2019LabConstants.PublicClientId).WithAdfsAuthority(Adfs2019LabConstants.Authority).Build();
            AuthenticationResult authResult = await msalPublicClient.AcquireTokenByUsernamePassword(s_scopes, user.Upn, securePassword).ExecuteAsync().ConfigureAwait(false);

            Assert.IsNotNull(authResult);
            Assert.IsNotNull(authResult.AccessToken);
            Assert.IsNotNull(authResult.IdToken);
        }