Registrar una aplicación para la API Graph de Microsoft en la Nube Nacional Alemana

He registrado con éxito mi solicitud paragraph.microsoft.com, pero ahora también necesita trabajar congraph.cloudapi.de.

losPortal de registro de aplicaciones no parece ser el correcto para la nube nacional alemana.

Además, las aplicaciones registradas enportal.microsoftazure.de solo funciona con la API de SharePoint, no Graph.

Aquí hay un ejemplo de intercambio HTTP entre mi programa y la nube alemana de Microsoft. Estoy codificando manualmente las solicitudes HTTP en Delphi. El intercambio funciona con graph.microsoft.com, pero no con graph.microsoft.de.

Comienzo la autenticación a través de la siguiente URL https:

login.microsoftonline.de/common/oauth2/v2.0/authorize?response_type=code&client_id=xyz&prompt=login&scope=https%3A%2F%2Fgraph.microsoft.de%2Fuser.read%20&response_mode=query&state=5736109994698155204&redirect_uri=https%3A%2F%2Fwww.syncovery.com%2Foauthresult.php

La nube luego dirige a mi URL de redireccionamiento con un parámetro de código largo, como

code=AQABAAIAAQDnLpu3ikefR73l_aNlxt5xxdvNhQ9JVAI7b0ciTej............

Hasta aquí todo bien. Ahora la parte difícil:

POST /common/oauth2/v2.0/token HTTP/1.1 
Host: login.microsoftonline.de 
Keep-Alive: 300 
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded 
Content-Length: 805

client_id=xyz&client_secret=abc&code=AQABAAIAAQD_very_long&redirect_uri=https%3A%2F%2Fwww.xyz.com%2Foauthresult.php&grant_type=authorization_code&scope=https%3A%2F%2Fgraph.microsoft.de%2Fuser.read%20

Respuesta:

HTTP/1.1 401 Unauthorized
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
x-ms-request-id: e83986c0-5da4-4af7-92fc-46e2fb950100
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
Set-Cookie: esctx=AQABAAAAA_longish domain=.login.microsoftonline.de; path=/; secure; HttpOnly
X-Powered-By: ASP.NET
Date: Wed, 07 Feb 2018 11:11:44 GMT
Content-Length: 449

{
    "error": "invalid_client",
    "error_description": "AADSTS70002: Error validating credentials. AADSTS50012: Invalid client secret is provided.\r\nTrace ID: e83986c0-5da4-4af7-92fc-46e2fb950100\r\nCorrelation ID: 044f44e3-ec09-4f76-b073-0ff6b72b696a\r\nTimestamp: 2018-02-07 11:11:45Z",
    "error_codes": [70002, 50012],
    "timestamp": "2018-02-07 11:11:45Z",
    "trace_id": "e83986c0-5da4-4af7-92fc-46e2fb950100",
    "correlation_id": "044f44e3-ec09-4f76-b073-0ff6b72b696a"
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta