public async Task VerifyClientSecretCredentialExceptionAsync() { string expectedInnerExMessage = Guid.NewGuid().ToString(); var mockMsalClient = new MockMsalConfidentialClient(new MockClientException(expectedInnerExMessage)); var credential = InstrumentClient(new ClientSecretCredential(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), default, default, mockMsalClient));
public async Task EnvironmentCredentialAuthenticationFailedException() { string expectedInnerExMessage = Guid.NewGuid().ToString(); var mockMsalClient = new MockMsalConfidentialClient(new MockClientException(expectedInnerExMessage)); ClientSecretCredential innerCred = new ClientSecretCredential(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), default, default, mockMsalClient);
public void TestSetup() { expectedTenantId = TenantId; expectedReplyUri = null; authCode = Guid.NewGuid().ToString(); expectedToken = Guid.NewGuid().ToString(); expiresOn = DateTimeOffset.Now.AddHours(1); var result = new AuthenticationResult( expectedToken, false, null, expiresOn, expiresOn, TenantId, new MockAccount("username"), null, new[] { Scope }, Guid.NewGuid(), null, "Bearer"); silentFactory = (_, _tenantId, _replyUri, _) => { Assert.AreEqual(expectedTenantId, _tenantId); Assert.AreEqual(expectedReplyUri, _replyUri); return(new ValueTask <AuthenticationResult>(result)); }; mockMsalClient = new MockMsalConfidentialClient(silentFactory); mockMsalClient.AuthcodeFactory = (_, _tenantId, _replyUri, _) => { Assert.AreEqual(expectedTenantId, _tenantId); Assert.AreEqual(expectedReplyUri, _replyUri); return(result); }; }
public async Task VerifyClientCertificateCredentialExceptionAsync(bool usePemFile) { string expectedInnerExMessage = Guid.NewGuid().ToString(); var mockMsalClient = new MockMsalConfidentialClient(new MockClientException(expectedInnerExMessage)); var expectedTenantId = Guid.NewGuid().ToString(); var expectedClientId = Guid.NewGuid().ToString(); var certificatePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "Data", "cert.pfx"); var certificatePathPem = Path.Combine(TestContext.CurrentContext.TestDirectory, "Data", "cert.pem"); var mockCert = new X509Certificate2(certificatePath); ClientCertificateCredential credential = InstrumentClient( usePemFile ? new ClientCertificateCredential(expectedTenantId, expectedClientId, certificatePathPem, CredentialPipeline.GetInstance(null), mockMsalClient) : new ClientCertificateCredential(expectedTenantId, expectedClientId, mockCert, CredentialPipeline.GetInstance(null), mockMsalClient) ); var ex = Assert.ThrowsAsync <AuthenticationFailedException>(async() => await credential.GetTokenAsync(new TokenRequestContext(MockScopes.Default))); Assert.IsNotNull(ex.InnerException); Assert.IsInstanceOf(typeof(MockClientException), ex.InnerException); Assert.AreEqual(expectedInnerExMessage, ex.InnerException.Message); await Task.CompletedTask; }
public async Task ValidateClientSecretCredentialSucceededEvents() { var mockMsalClient = new MockMsalConfidentialClient(AuthenticationResultFactory.Create()); var credential = InstrumentClient(new ClientSecretCredential(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), CredentialPipeline.GetInstance(null), mockMsalClient)); var method = "ClientSecretCredential.GetToken"; await AssertCredentialGetTokenSucceededAsync(credential, method); }
public async Task ValidateClientCertificateCredentialSucceededEvents() { var mockMsalClient = new MockMsalConfidentialClient(AuthenticationResultFactory.Create(Guid.NewGuid().ToString(), expiresOn: DateTimeOffset.Now + TimeSpan.FromMinutes(10))); var mockAadClient = new MockAadIdentityClient(() => new AccessToken(Guid.NewGuid().ToString(), DateTimeOffset.UtcNow.AddMinutes(10))); var credential = InstrumentClient(new ClientCertificateCredential(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new X509Certificate2(), CredentialPipeline.GetInstance(null), mockMsalClient)); var method = "ClientCertificateCredential.GetToken"; await AssertCredentialGetTokenSucceededAsync(credential, method); }
public async Task ValidateClientCertificateCrededntialFailedEvents() { var expExMessage = Guid.NewGuid().ToString(); var mockMsalClient = new MockMsalConfidentialClient(new MockClientException(expExMessage)); var credential = InstrumentClient(new ClientCertificateCredential(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), new X509Certificate2(), CredentialPipeline.GetInstance(null), mockMsalClient)); var method = "ClientCertificateCredential.GetToken"; await AssertCredentialGetTokenFailedAsync(credential, method, expExMessage); }
public void VerifyClientCertificateCredentialException(bool usePemFile) { string expectedInnerExMessage = Guid.NewGuid().ToString(); var mockMsalClient = new MockMsalConfidentialClient(new MockClientException(expectedInnerExMessage)); var expectedTenantId = Guid.NewGuid().ToString(); var expectedClientId = Guid.NewGuid().ToString(); var certificatePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "Data", "cert.pfx"); var certificatePathPem = Path.Combine(TestContext.CurrentContext.TestDirectory, "Data", "cert.pem"); var mockCert = new X509Certificate2(certificatePath); ClientCertificateCredential credential = InstrumentClient( usePemFile ? new ClientCertificateCredential(expectedTenantId, expectedClientId, certificatePathPem, default, default, mockMsalClient) : new ClientCertificateCredential(expectedTenantId, expectedClientId, mockCert, default, default, mockMsalClient)
public async Task EnvironmentCredentialAuthenticationFailedException() { string expectedInnerExMessage = Guid.NewGuid().ToString(); var mockMsalClient = new MockMsalConfidentialClient(new MockClientException(expectedInnerExMessage)); ClientSecretCredential innerCred = new ClientSecretCredential(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), CredentialPipeline.GetInstance(null), mockMsalClient); var credential = InstrumentClient(new EnvironmentCredential(CredentialPipeline.GetInstance(null), innerCred)); var ex = Assert.ThrowsAsync <AuthenticationFailedException>(async() => await credential.GetTokenAsync(new TokenRequestContext(MockScopes.Default))); Assert.IsInstanceOf(typeof(MockClientException), ex.InnerException); Assert.AreEqual(expectedInnerExMessage, ex.InnerException.Message); await Task.CompletedTask; }
public async Task ValidateClientSecretCredentialSucceededEvents() { var mockMsalClient = new MockMsalConfidentialClient(AuthenticationResultFactory.Create()); var credential = InstrumentClient(new ClientSecretCredential(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), default, default, mockMsalClient));
public void TestSetup() { expectedTenantId = null; expectedReplyUri = null; authCode = Guid.NewGuid().ToString(); options = new TokenCredentialOptions(); expectedToken = Guid.NewGuid().ToString(); expectedUserAssertion = Guid.NewGuid().ToString(); expiresOn = DateTimeOffset.Now.AddHours(1); result = new AuthenticationResult( expectedToken, false, null, expiresOn, expiresOn, TenantId, new MockAccount("username"), null, new[] { Scope }, Guid.NewGuid(), null, "Bearer"); mockConfidentialMsalClient = new MockMsalConfidentialClient() .WithSilentFactory( (_, _tenantId, _replyUri, _) => { Assert.AreEqual(expectedTenantId, _tenantId); Assert.AreEqual(expectedReplyUri, _replyUri); return(new ValueTask <AuthenticationResult>(result)); }) .WithAuthCodeFactory( (_, _tenantId, _replyUri, _) => { Assert.AreEqual(expectedTenantId, _tenantId); Assert.AreEqual(expectedReplyUri, _replyUri); return(result); }) .WithOnBehalfOfFactory( (_, _, userAssertion, _, _) => { Assert.AreEqual(expectedUserAssertion, userAssertion.Assertion); return(new ValueTask <AuthenticationResult>(result)); }) .WithClientFactory( (_, _tenantId) => { Assert.AreEqual(expectedTenantId, _tenantId); return(result); }); expectedCode = Guid.NewGuid().ToString(); mockPublicMsalClient = new MockMsalPublicClient(); deviceCodeResult = MockMsalPublicClient.GetDeviceCodeResult(deviceCode: expectedCode); mockPublicMsalClient.DeviceCodeResult = deviceCodeResult; var publicResult = new AuthenticationResult( expectedToken, false, null, expiresOn, expiresOn, TenantId, new MockAccount("username"), null, new[] { Scope }, Guid.NewGuid(), null, "Bearer"); mockPublicMsalClient.SilentAuthFactory = (_, tId) => { Assert.AreEqual(expectedTenantId, tId); return(publicResult); }; mockPublicMsalClient.DeviceCodeAuthFactory = (_, _) => { // Assert.AreEqual(tenantId, tId); return(publicResult); }; mockPublicMsalClient.InteractiveAuthFactory = (_, _, _, _, tenant, _, _) => { Assert.AreEqual(expectedTenantId, tenant, "TenantId passed to msal should match"); return(result); }; mockPublicMsalClient.SilentAuthFactory = (_, tenant) => { Assert.AreEqual(expectedTenantId, tenant, "TenantId passed to msal should match"); return(result); }; mockPublicMsalClient.ExtendedSilentAuthFactory = (_, _, _, tenant, _, _) => { Assert.AreEqual(expectedTenantId, tenant, "TenantId passed to msal should match"); return(result); }; mockPublicMsalClient.UserPassAuthFactory = (_, tenant) => { Assert.AreEqual(expectedTenantId, tenant, "TenantId passed to msal should match"); return(result); }; mockPublicMsalClient.RefreshTokenFactory = (_, _, _, _, tenant, _, _) => { Assert.AreEqual(expectedTenantId, tenant, "TenantId passed to msal should match"); return(result); }; }