Azure active directory 验证用户在德国国家云中使用graph api

Azure active directory 验证用户在德国国家云中使用graph api,azure-active-directory,microsoft-graph-api,Azure Active Directory,Microsoft Graph Api,我有一个应用程序,它使用以下作用域访问Microsoft Graph中的数据: [ 'openid', 'offline_access', 'email', 'profile', 'https://graph.microsoft.com/Mail.ReadWrite', 'https://graph.microsoft.com/Mail.Send', 'https://graph.microsoft.com/User.Read', 'https://graph.microsoft

我有一个应用程序,它使用以下作用域访问Microsoft Graph中的数据:

[
 'openid',
 'offline_access',
 'email',
 'profile',
 'https://graph.microsoft.com/Mail.ReadWrite',
 'https://graph.microsoft.com/Mail.Send',
 'https://graph.microsoft.com/User.Read',
 'https://graph.microsoft.com/Contacts.ReadWrite',
 'https://graph.microsoft.com/Calendars.ReadWrite'
]
我在我的节点应用程序中使用身份验证。 它适用于不同公司的Office 365电子邮件,但不适用于德国域名(例如
abc@abc.onmicrosoft.de

我已经尝试了中指定的解决方案

使用
graph.microsoft.de
作为microsoft图形URI,使用
login.microsoft.de
作为授权端点

目前,我正在使用的应用程序已在
apps.dev.microsoft.com
上注册

我尝试使用我的德国o365帐户登录时出现此错误

令牌错误:AADSTS90043:跨云请求中不支持机密客户端

我的问题是,我应该在哪里注册一个适用于所有德国O365实例的应用程序,因为该应用程序需要支持多个域帐户。 我试着用 导致无效客户端机密错误的授权url如下所示

https://login.microsoftonline.de/common/oauth2/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A1345%2Fauthorize&scope=openid%20offline_access%20email%20profile%20https%3A%2F%2Fgraph.microsoft.de%2FMail.ReadWrite%20https%3A%2F%2Fgraph.microsoft.de%2FMail.Send%20https%3A%2F%2Fgraph.microsoft.de%2FUser.Read%20https%3A%2F%2Fgraph.microsoft.de%2FContacts.ReadWrite%20https%3A%2F%2Fgraph.microsoft.de%2FCalendars.ReadWrite&state=key%3Dlocal-dt&client_id=7beb27dd-805c-47e5-bbb4-639a3e41a9dd

apps.dev.microsoft.com
门户是“聚合”应用程序身份验证(即支持AAD和个人MSA帐户的v2端点)的全局注册。目前不支持此v2终结点

从:

注意:Azure AD v2.0授权和令牌端点仅在全球服务上可用;它们还不支持用于国家云部署

为了使应用程序同时与全球和国家云端点一起工作,您需要使用v1端点。这是通过Azure广告门户而不是
apps.dev.microsoft.com
完成的


您正在导航的授权URI也具有正确的v1端点URL(
https://login.microsoftonline.de/common/oauth2/authorize
)但您提供的是v2端点查询参数:

https://login.microsoftonline.de/common/oauth2/authorize
?response_type=code
&redirect_uri=http://localhost:1345/authorize
&scope=openid offline_access email profile https://graph.microsoft.de/Mail.ReadWrite https://graph.microsoft.de/Mail.Send https://graph.microsoft.de/User.Read https://graph.microsoft.de/Contacts.ReadWrite https://graph.microsoft.de/Calendars.ReadWrite
&state=key=local-dt
&client_id=7beb27dd-805c-47e5-bbb4-639a3e41a9dd
v1终结点不支持动态作用域。相反,范围由您通过Azure门户注册的应用程序定义

您的URL原型应如下所示:

https://login.microsoftonline.de/common/oauth2/authorize?
client_id=7beb27dd-805c-47e5-bbb4-639a3e41a9dd
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%3A1345%2Fauthorize
&response_mode=query
&state=key=key%3Dlocal-dt

我尝试在azure active directory中创建应用程序。如果我使用该应用程序,则会出现以下错误:AADSTS90130:应用程序“7beb27dd-805c-47e5-bbb4-639a3e41a9dd”(测试)不受/common或/consumers端点的支持。请使用/组织或特定于租户的终结点。将“多租户”设置为“是”时出现上述错误。如果我将multi-tenanted设置为no,则会出现以下错误:AADSTS70001:在目录9f02abcd-7b81-45d8-8AFDY中找不到标识符为“7beb27dd-805c-47e5-bbb4”的应用程序。您需要在身份验证URI中使用
/organizations
而不是
/common
https://login.microsoftonline.de/organizations/oauth2/authorize。这告诉它排除消费者MSA帐户。AADSTS90002:未找到租户组织。如果租户没有活动订阅,则可能发生这种情况。请与您的订阅管理员联系。