Codeunit "Microsoft Graph UTCAP"
Properties
| Name | Value |
|---|---|
| Access | Public |
| SingleInstance | True |
Methods
RequestAdminConsent
Ouvre une page pour demander le consentement administrateur pour une application.
procedure RequestAdminConsent(TenantId: Text; ClientId: Text; RedirectUri: Text)
Parameters
| Name | Type | Description |
|---|---|---|
| TenantId | Text |
Identifiant ou domaine du tenant. Vide : tenant « common ». |
| ClientId | Text |
Identifiant de l'inscription d'application. |
| RedirectUri | Text |
URI de redirection déclarée dans l'inscription d'application. |
GetAccessToken
Renvoie un jeton d'application (flux client credentials) pour Microsoft Graph, mis en cache pour la session.
procedure GetAccessToken(ClientId: Text; ClientSecret: SecretText; TenantId: Text): SecretText
Parameters
| Name | Type | Description |
|---|---|---|
| ClientId | Text |
Identifiant de l'inscription d'application. |
| ClientSecret | SecretText |
Secret de l'inscription d'application. |
| TenantId | Text |
Identifiant ou domaine du tenant. |
Returns
| Type | Description |
|---|---|
| SecretText |
Remarks
À réserver aux appels que "Graph Request UTCAP" ne couvre pas : cette façade gère déjà le jeton, la reprise sur
throttling, la pagination et les erreurs. Poser le jeton sans le convertir en texte, pour qu'il reste protégé
du débogueur : Headers.Add('Authorization', SecretStrSubstNo('Bearer %1', AccessToken)).
GetAccessToken
Renvoie un jeton d'application (flux client credentials) pour une ressource Entra ID quelconque (ex. Azure DevOps), mis en cache pour la session.
procedure GetAccessToken(ClientId: Text; ClientSecret: SecretText; TenantId: Text; Scope: Text): SecretText
Parameters
| Name | Type | Description |
|---|---|---|
| ClientId | Text |
Identifiant de l'inscription d'application. |
| ClientSecret | SecretText |
Secret de l'inscription d'application. |
| TenantId | Text |
Identifiant ou domaine du tenant. |
| Scope | Text |
Scope demandé, de la forme « {ressource}/.default ». |
Returns
| Type | Description |
|---|---|
| SecretText |
Remarks
Le cache distingue tenant, application, scope et secret : plusieurs jetons coexistent sans s'écraser, et un
appelant qui ne présente pas le bon secret n'obtient jamais le jeton d'un autre.
La durée de validité n'étant pas renvoyée par Entra ID via la System Application, un jeton est conservé 45 minutes ;
appeler
InvalidateAccessToken
Oublie le jeton Microsoft Graph mis en cache. À appeler sur un refus 401 : un jeton révoqué avant son échéance serait sinon servi jusqu'à expiration.
procedure InvalidateAccessToken(ClientId: Text; ClientSecret: SecretText; TenantId: Text)
Parameters
| Name | Type | Description |
|---|---|---|
| ClientId | Text | |
| ClientSecret | SecretText | |
| TenantId | Text |
InvalidateAccessToken
Oublie le jeton mis en cache pour un scope. À appeler sur un refus 401 : un jeton révoqué avant son échéance serait sinon servi jusqu'à expiration.
procedure InvalidateAccessToken(ClientId: Text; ClientSecret: SecretText; TenantId: Text; Scope: Text)
Parameters
| Name | Type | Description |
|---|---|---|
| ClientId | Text | |
| ClientSecret | SecretText | |
| TenantId | Text | |
| Scope | Text |