microsoftgraph / microsoftgraph/msgraph-sdk-powershell

Connect-MgGraph fails after Connect-ExchangeOnline

Open
#3,394 24 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:bug
Dominant language
C#
Stars
898
Forks
230
Avg merge
2d 5h
Merged PRs (30d)
31

Description

Describe the bug

I don't know, if this is related to the ExchangeOnlineManagement module (my suspicison) or to Microsoft.Graph, but you should know; too, I guess:

I updated Microsoft.Graph from 2.29.1. to 2.30.0 yesterday and ExchangeOnlineManagement from 3.8.0 to 3.9.0. After the update I found that when I run Connect-ExchangeOnline before Connect-MgGraph, the latter fails with the following error:

Connect-MgGraph: ClientCertificateCredential authentication failed: Method not found: '!0 Microsoft.Identity.Client.BaseAbstractApplicationBuilder`1.WithLogging(Microsoft.IdentityModel.Abstractions.IIdentityLogger, Boolean)'.

When I run Connect-MgGraph first and then Connect-ExchangeOnline, it works.

Expected behavior

IMO it should not matter, which command is run first.

How to reproduce
  • On Powershell 7.5.2 ...
  • Install Microsoft.Graph 2.30.0
  • Install ExchangeOnlineManagement 3.9.0
  • First run Connect-ExchangeOnline. ( I used certificate authentication )
  • Second run Connect-MgGraph. It does not matter if user or certificate authentication. I tried both
  • You should get the error described above
SDK Version

2.30.0

Latest version known to work for scenario above?

2.29.1 together with ExchangeOnlineManagement 3.8.0

Known Workarounds
  1. First run Connect-MgGraph
  2. Then run Connect-ExchangeOnline
Debug output
Click to expand log ```

DEBUG: ClientCertificateCredential.GetToken invoked. Scopes: [ https://graph.microsoft.com/.default ] ParentRequestId:
DEBUG: ClientCertificateCredential.GetToken was unable to retrieve an access token. Scopes: [ https://graph.microsoft.com/.default ] ParentRequestId: Exception: Azure.Identity.AuthenticationFailedException (0x80131500): ClientCertificateCredential authentication failed: Method not found: '!0 Microsoft.Identity.Client.BaseAbstractApplicationBuilder1.WithLogging(Microsoft.IdentityModel.Abstractions.IIdentityLogger, Boolean)'. ---> System.MissingMethodException (0x80131513): Method not found: '!0 Microsoft.Identity.Client.BaseAbstractApplicationBuilder1.WithLogging(Microsoft.IdentityModel.Abstractions.IIdentityLogger, Boolean)'.
Connect-MgGraph: ClientCertificateCredential authentication failed: Method not found: '!0 Microsoft.Identity.Client.BaseAbstractApplicationBuilder`1.WithLogging(Microsoft.IdentityModel.Abstractions.IIdentityLogger, Boolean)'.

</details>


### Configuration

Name Value


PSVersion 7.5.2
PSEdition Core
GitCommitId 7.5.2
OS Microsoft Windows 10.0.26100
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

Architecture: x64

### Other information

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the documented command order on PowerShell 7.5.2 with Microsoft.Graph 2.30.0 and ExchangeOnlineManagement 3.9.0, then compare it with the known-working versions. Trace Connect-ExchangeOnline and Connect-MgGraph around the reported Microsoft.Identity.Client.WithLogging MissingMethodException; done means either command order works without the authentication failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, powershell
Domain
api, authentication
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.