使用 MSAL.NET 对 Netatmo API 进行身份验证会导致“错误:ClientId 不是 GUID。”

问题描述 投票:0回答:1

我正在编写一个 Windows 应用程序,它将从 Netatmo 检索气象站读数。 该应用程序需要使用 Netatmo API(身份验证代码授予)进行身份验证,我正在尝试为此使用 MSAL 的

PublicClientApplicationBuilder

Netatmo 的应用程序注册提供的客户端 Id 是一个 24 个字符的字符串,而 MSAL 接缝只接受可以解析为 GUID 的字符串。因此,构建器抛出 MsalClientException 消息:“错误:ClientId 不是 GUID。”。

var publicClientApp = PublicClientApplicationBuilder
   .Create("8543a5684dbe6325b15bcc4b")
   .WithAuthority("https://api.netatmo.com/oauth2")
   .Build();

根据 OAuth2 (RFC 6749),客户端 ID 不需要是 GUID。

所以问题是,他们是解决 MSAL 中这个奇怪要求的方法,还是我应该使用不同的身份验证客户端? 该应用程序已经使用 MSAL 对 outlook.office.com 进行身份验证,因此这是我的第一选择。

.net oauth-2.0 msal
1个回答
0
投票

Microsoft 身份平台(又名 Azure AD)专门为其客户端 ID 使用 GUID。由于 MSAL 是专门为与之交互而设计的库,并且官方不支持其他身份提供者,因此他们决定在库本身中强制执行此限制。这是他们 GitHub 存储库中的一个长期存在的问题

与此同时,您可能不得不使用不同的库,或者自己滚动。

© www.soinside.com 2019 - 2024. All rights reserved.