Skip to content

Application setOnPremisesPublishing not working #356

@danfeldmann

Description

@danfeldmann

Describe the bug

Hi,

I am trying to update an applications onPremisesPublishing configuration, which isn't working.

I have used the following guide Configure Microsoft Entra application proxy using Microsoft Graph APIs which works until the Step 2.2 where the onPremisesPublishing settings should be set/updated.

I only get the follow translated OData-Error:

InvalidJson_BadRequest : Valid JSON content expected.

Expected behavior

That the settings would be set at the MS Graph Beta API would return an 204 - No Content.

How to reproduce

I used the following code Step 2.2: Configure the onPremisesPublishing property

<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\Application;
use Microsoft\Graph\Beta\Generated\Models\OnPremisesPublishing;
use Microsoft\Graph\Beta\Generated\Models\ExternalAuthenticationType;


$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);

$requestBody = new Application();
$onPremisesPublishing = new OnPremisesPublishing();
$onPremisesPublishing->setExternalAuthenticationType(new ExternalAuthenticationType('aadPreAuthentication'));
$onPremisesPublishing->setInternalUrl('https://contosoiwaapp.com');
$onPremisesPublishing->setExternalUrl('https://contosoiwaapp-contoso.msappproxy.net');
$onPremisesPublishing->setIsHttpOnlyCookieEnabled(true);
$onPremisesPublishing->setIsOnPremPublishingEnabled(true);
$onPremisesPublishing->setIsPersistentCookieEnabled(true);
$onPremisesPublishing->setIsSecureCookieEnabled(true);
$onPremisesPublishing->setIsStateSessionEnabled(true);
$onPremisesPublishing->setIsTranslateHostHeaderEnabled(true);
$onPremisesPublishing->setIsTranslateLinksInBodyEnabled(true);
$requestBody->setOnPremisesPublishing($onPremisesPublishing);

$result = $graphServiceClient->applications()->byApplicationId('application-id')->patch($requestBody)->wait();

SDK Version

v2.25.0

Latest version known to work for scenario above?

No response

Known Workarounds

I have tested around with the follow client bruno.

If I use the following body, I am able to update the settings:

{
  "@odata.type": "#microsoft.graph.application",
  "microsoft.graph.onPremisesPublishing": {    
    "@odata.type": "#microsoft.graph.onPremisesPublishing",
    "isOnPremPublishingEnabled": true
  }
}

This is the json body which is generated from the SDK:

{
  "@odata.type": "#microsoft.graph.application",
  "onPremisesPublishing": {    
    "isOnPremPublishingEnabled": true
  }
}

which was not working as I have tried it with bruno.

Even using:

{
  "@odata.type": "#microsoft.graph.application",
  "onPremisesPublishing": {    
    "@odata.type": "#microsoft.graph.onPremisesPublishing",
    "isOnPremPublishingEnabled": true
  }
}

did not worked.

There must be something "in the back" what is causing the above mentioned error.

Debug output

Configuration

  • OS: macOS Sequoia 15.1.1
  • architecture: M3 Pro
  • used PHP version:
PHP 8.3.16 (cli) (built: Jan 17 2025 01:31:19) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.16, Copyright (c), by Zend Technologies
    with Xdebug v3.4.1, Copyright (c) 2002-2025, by Derick Rethans

Other information

I have check the OpenAPI-file at github.com/microsoftgraph/msgraph-metadata/blob/master/openapi/beta/openapi.yaml and couldn't see any issue/error why this is not working 😟

Disclaimer: I know that is the beta API version 😄

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions