Microsoft Graph API を使用してアプリケーション プロキシの構成を自動化するAutomate the configuration of Application Proxy using the Microsoft Graph API

この記事では、アプリケーションの Azure Active Directory (Azure AD) アプリケーションプロキシ を作成して構成する方法について説明します。In this article, you'll learn how to create and configure Azure Active Directory (Azure AD) Application Proxy for an application. アプリケーションプロキシは、オンプレミスの web アプリケーションへのリモートアクセスとシングルサインオンをセキュリティで保護します。Application Proxy provides secure remote access and single sign-on to on-premises web applications. アプリケーションのアプリケーションプロキシを構成した後、ユーザーは外部 URL、個人用アプリポータル、またはその他の内部アプリケーションポータルを使用してオンプレミスアプリケーションにアクセスできます。After configuring Application Proxy for an application, users can access their on-premises applications through an external URL, the My Apps portal, or other internal application portals.

この記事では、コネクタが既にインストールされており、コネクタが Azure AD services と通信できるように、アプリケーションプロキシの 前提条件 を完了していることを前提としています。This article assumes you have already installed a connector and completed the prerequisites for Application Proxy so that connectors can communicate with Azure AD services.

次の API を呼び出すためのアクセス許可があることを確認します。Make sure you have the corresponding permissions to call the following APIs.

リソースの種類Resource type メソッドMethod
アプリケーションapplications
onPremisesPublishingonPremisesPublishing
アプリケーションを作成するCreate application
アプリケーションを更新するUpdate application
コネクタグループへのアプリケーションの追加Add application to connectorGroup
connectorconnector コネクタを取得するGet connectors
connectorGroupconnectorGroup connectorGroupsを作成するCreate connectorGroup
connectorGroupにコネクタを追加するAdd connector to connectorGroup
servicePrincipalsservicePrincipals servicePrincipal を作成するCreate servicePrincipal
servicePrincipalを更新するUpdate servicePrincipal
CappRoleAssignments を作成するCreate appRoleAssignments

注意

この記事に示されている要求では、サンプル値を使用します。The requests shown in this article use sample values. これらを更新する必要があります。You will need update these. 表示されている応答オブジェクトは読みやすくするために短縮される場合もあります。The response objects shown might also be shortened for readability.

手順 1: アプリケーションを作成するStep 1: Create an application

  1. Microsoft Graph Explorer を起動します。Start Microsoft Graph Explorer.
  2. [ Microsoft とのサインイン ] を選択して、Azure AD のグローバル管理者またはアプリ管理者の資格情報を使用してサインインします。Select Sign-in with Microsoft and sign in using an Azure AD global administrator or App Admin credentials.
  3. サインインに成功すると、左側のウィンドウにユーザーアカウントの詳細が表示されます。Upon successful sign in, you'll see the user account details in the left pane.

アプリケーションを作成するCreate an application

API を使用してアプリのアプリケーションプロキシを構成するには、アプリケーションを作成し、サービスプリンシパルをアプリに追加した後、アプリケーションの onPremisesPublishing プロパティを更新して、アプリのプロキシ設定を構成します。To configure Application Proxy for an app using the API, you create an application, add a service principal to the app, and then update the application's onPremisesPublishing property to configure the App Proxy settings. アプリケーションを作成するときに、アプリケーションの signInAudience を "AzureADMyOrg" に設定します。When creating the application, set the application's signInAudience to "AzureADMyOrg".

要求Request

POST https://graph.microsoft.com/beta/applications
Content-type: application/json

{
  "displayName": "Contoso IWA App",
  "signInAudience":"AzureADMyOrg"
}

応答Response

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#applications/$entity",
  "id": "bf21f7e9-9d25-4da2-82ab-7fdd85049f83",
  "deletedDateTime": null,
  "addIns": [],
  "appId": "d7fbfe28-c60e-46d2-8335-841923950d3b",
  "applicationTemplateId": null,
  "identifierUris": [],
  "createdDateTime": "2020-08-11T21:07:47.5919755Z",
  "description": null,
  "displayName": "Contoso IWA App",
  "isAuthorizationServiceEnabled": false,
  "isDeviceOnlyAuthSupported": null,
  "isFallbackPublicClient": null,
  "groupMembershipClaims": null,
  "notes": null,
  "optionalClaims": null,
  "orgRestrictions": [],
  "publisherDomain": "f128.info",
  "signInAudience": "AzureADandPersonalMicrosoftAccount",
  "tags": [],
  "tokenEncryptionKeyId": null,
  "uniqueName": null,
  "verifiedPublisher": {
      "displayName": null,
      "verifiedPublisherId": null,
      "addedDateTime": null
  },
}

アプリケーションオブジェクト ID と appId を取得するRetrieve the application object ID and appId

前の呼び出しからの応答を使用して、アプリケーションオブジェクト ID とアプリ ID を取得して保存します。Use the response from the previous call to retrieve and save the application object ID and app ID.

"application": {
  "id": "bf21f7e9-9d25-4da2-82ab-7fdd85049f83",
  "appId": "d7fbfe28-c60e-46d2-8335-841923950d3b"
}

アプリケーションの servicePrincipal を作成し、必要なタグを追加するCreate a servicePrincipal for the application and add required tags

AppIdを使用して、アプリケーションのサービスプリンシパルを作成します。Use the appId to create a service principal for the application. 次に、アプリのアプリケーションプロキシを構成するために必要なタグを追加します。Then add the tags required for configuring Application Proxy for an app.

要求Request

POST https://graph.microsoft.com/beta/serviceprincipals
Content-type: appplication/json

{
  "appId":"d7fbfe28-c60e-46d2-8335-841923950d3b",
  "tags": [
    "WindowsAzureActiveDirectoryIntegratedApp",
    "WindowsAzureActiveDirectoryOnPremApp"
  ]
}

応答Response

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals/$entity",
  "id": "a8cac399-cde5-4516-a674-819503c61313",
  "deletedDateTime": null,
  "accountEnabled": true,
  "alternativeNames": [],
  "createdDateTime": null,
  "deviceManagementAppType": null,
  "appDescription": null,
  "appDisplayName": "Contoso IWA App",
  "appId": "d7fbfe28-c60e-46d2-8335-841923950d3b",
  "applicationTemplateId": null,
  "appOwnerOrganizationId": "7918d4b5-0442-4a97-be2d-36f9f9962ece",
  "appRoleAssignmentRequired": false,
  "description": null,
  "displayName": "vtestapi2",
  "errorUrl": null,
  "homepage": null,
  "isAuthorizationServiceEnabled": false,
  "loginUrl": null,
  "logoutUrl": null,
  "notes": null,
  "notificationEmailAddresses": [],
  "preferredSingleSignOnMode": null,
  "preferredTokenSigningKeyEndDateTime": null,
  "preferredTokenSigningKeyThumbprint": null,
  "publisherName": "f/128 Photography",
  "replyUrls": [],
  "samlMetadataUrl": null,
  "samlSingleSignOnSettings": null,
  "servicePrincipalNames": [
      "b92b92d4-3874-46a5-b715-a00ea01cff93"
  ],
  "servicePrincipalType": "Application",
}

手順 2: アプリケーションプロキシのプロパティを構成するStep 2: Configure Application Proxy properties

OnPremisesPublishing 構成を設定するSet the onPremisesPublishing configuration

前の手順のアプリケーションオブジェクト ID を使用して、アプリのアプリケーションプロキシを構成し、 onPremisesPublishing プロパティを目的の構成に更新します。Use the application object ID from the previous step to configure Application Proxy for the app and update the onPremisesPublishing property to the desired configuration. この例では、内部 URL を持つアプリを使用しています。 https://contosoiwaapp.com また、外部 url に既定のドメインを使用しています。 https://contosoiwaapp-contoso.msappproxy.netIn this example, you're using an app with the internal URL: https://contosoiwaapp.com and using the default domain for the external URL: https://contosoiwaapp-contoso.msappproxy.net.

要求Request

PATCH https://graph.microsoft.com/beta/applications/bf21f7e9-9d25-4da2-82ab-7fdd85049f83
Content-type: appplication/json

{
    "onPremisesPublishing": {
        "externalAuthenticationType": "aadPreAuthentication",
        "internalUrl": "https://contosoiwaapp.com",
        "externalUrl": "https://contosoiwaapp-contoso.msappproxy.net"
    }
}

応答Response

HTTP/1.1 204 No content

アプリケーションの構成を完了するComplete the configuration of the application

アプリケーションの Redirecturiidentifieruri、および ホーム Pageurl プロパティを、 onPremisesPublishing プロパティで構成されている外部 UR に更新します。Update the application's redirectUri, identifierUri, and homepageUrl properties to the external UR configured in the onPremisesPublishing property. ImplicitGrantSettingstrue Enabledtokenissuance用に、enabledAccessTokenIssuance に更新し false ます。 enabledAccessTokenIssuanceThen update implicitGrantSettings to true for enabledTokenIssuance and false for enabledAccessTokenIssuance.

要求Request

PATCH https://graph.microsoft.com/beta/applications/bf21f7e9-9d25-4da2-82ab-7fdd85049f83
Content-type: appplication/json

{
  "identifierUris": ["https://contosoiwaapp-contoso.msappproxy.net"],
  "web": {
    "redirectUris": ["https://contosoiwaapp-contoso.msappproxy.net"],
    "homePageUrl": "https://contosoiwaapp-contoso.msappproxy.net",
    "implicitGrantSettings": {
      "enableIdTokenIssuance": true,
      "enableAccessTokenIssuance": false
    }
  }
}

応答Response

HTTP/1.1 204 No content

手順 3: コネクタグループをアプリケーションに割り当てるStep 3: Assign the connector group to the application

コネクタを取得するGet connectors

コネクタを一覧表示し、応答を使用してコネクタオブジェクト ID を取得して保存します。List the connectors and use the response to retrieve and save the connector object ID. コネクタオブジェクト ID は、コネクタをコネクタグループに割り当てるために使用されます。The connector object ID will be used to assign the connector to a connector group.

要求Request

GET https://graph.microsoft.com/beta/onPremisesPublishingProfiles/applicationProxy/connectors

応答Response

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#connectors",
    "value": [
        {
            "id": "d2b1e8e8-8511-49d6-a4ba-323cb083fbb0",
            "machineName": "connectorA.redmond.contoso.com"",
            "externalIp": "131.137.147.164",
            "status": "active"
        },
        {
            "id": "f2cab422-a1c8-4d70-a47e-2cb297a2e051",
            "machineName": "connectorB.contoso.com"",
            "externalIp": "68.0.191.210",
            "status": "active"
        },
        {
            "id": "8555cc3c-5c8b-48a8-a8b2-5e97c32ef907",
            "machineName": "connectorC.contoso.com",
            "externalIp": "40.78.66.161",
            "status": "active"
        }
    ]
}

コネクタグループを作成するCreate a connectorGroup

この例では、アプリケーションで使用される "IWA Demo コネクタグループ" という名前の新しいコネクタグループが作成されます。For this example, a new connectorGroup is created named "IWA Demo Connector Group" that is used for the application. コネクタが既に適切なコネクタグループに割り当てられている場合は、この手順を省略することもできます。You can also skip this step if your connector is already assigned to the appropriate connectorGroup. 次の手順で使用するコネクタグループのオブジェクト ID を取得して保存します。Retrieve and save the connectorGroup object ID to use in the next step.

要求Request

POST https://graph.microsoft.com/beta/onPremisesPublishingProfiles/applicationProxy/connectorGroups

Content-type: application/json
{
   "name": "IWA Demo Connector Group"
}

応答Response

HTTP/1.1 201
Content-type: connectorGroup/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#connectorGroups/$entity",
    "id": "3e6f4c35-a04b-4d03-b98a-66fff89b72e6",
    "name": "IWA Demo Connector Group",
    "connectorGroupType": "applicationProxy",
    "isDefault": false
}

コネクタをコネクタグループに割り当てるAssign a connector to the connectorGroup

要求Request

POST https://graph.microsoft.com/beta/onPremisesPublishingProfiles/applicationProxy/connectors/8555cc3c-5c8b-48a8-a8b2-5e97c32ef907/memberOf/$ref

Content-type: application/json
{
  "@odata.id":"https://graph.microsoft.com/beta/onPremisesPublishingProfiles/applicationProxy/connectorGroups/3e6f4c35-a04b-4d03-b98a-66fff89b72e6"
}

応答Response

HTTP/1.1 204 No content

コネクタグループにアプリケーションを割り当てるAssign the application to the connectorGroup

要求Request

PUT https://graph.microsoft.com/beta/applications/bf21f7e9-9d25-4da2-82ab-7fdd85049f83/connectorGroup/$ref
Content-type: application/json

{
"@odata.id":"https://graph.microsoft.com/onPremisesPublishingProfiles/applicationproxy/connectorGroups/3e6f4c35-a04b-4d03-b98a-66fff89b72e6"
}

応答Response

HTTP/1.1 204 No content

手順 4: シングルサインオンを構成するStep 4: Configure single sign-on

このアプリケーションでは、統合 Windows 認証 (IWA) を使用します。This application uses Integrated Windows Authentication (IWA). IWA を構成するには、 singleSignOnSettings リソースの種類でシングルサインオンプロパティを設定します。To configure IWA, set the single sign-on properties in the singleSignOnSettings resource type.

要求Request

PATCH https://graph.microsoft.com/beta/applications/bf21f7e9-9d25-4da2-82ab-7fdd85049f83
Content-type: appplication/json

{
   "onPremisesPublishing": {
      "singleSignOnSettings": {
         "kerberosSignOnSettings": {
            "kerberosServicePrincipalName": "HTTP/iwademo.contoso.com",
        "kerberosSignOnMappingAttributeType": "userPrincipalName"
         },
         "singleSignOnMode": "onPremisesKerberos"
      }
   }
}

応答Response

HTTP/1.1 204 No content

手順 5: ユーザーを割り当てるStep 5: Assign users

アプリケーションの appRole を取得するRetrieve appRole for the applicaiton

要求Request

GET https://graph.microsoft.com/beta/servicePrincipals/a8cac399-cde5-4516-a674-819503c61313/appRoles

応答Response

HTTP/1.1 200
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals('a8cac399-cde5-4516-a674-819503c61313')/appRoles",
    "value": [
        {
            "allowedMemberTypes": [
                "User"
            ],
            "description": "User",
            "displayName": "User",
            "id": "18d14569-c3bd-439b-9a66-3a2aee01d14f",
            "isEnabled": true,
            "origin": "Application",
            "value": null
        },
        {
            "allowedMemberTypes": [
                "User"
            ],
            "description": "msiam_access",
            "displayName": "msiam_access",
            "id": "b9632174-c057-4f7e-951b-be3adc52bfe6",
            "isEnabled": true,
            "origin": "Application",
            "value": null
        }
    ]
}

前の呼び出しからの応答を使用して、次の手順で使用する appRole ID を取得して保存します。Use the response from the previous call to retrieve and save the appRole ID to use for the next step.

      {
            "description": "User",
            "displayName": "User",
            "id": "18d14569-c3bd-439b-9a66-3a2aee01d14f"
        }

ユーザーとグループをアプリケーションに割り当てるAssign users and groups to the application

アプリケーションにユーザーを割り当てるには、次のプロパティを使用します。Use the following properties to assign a user to the application.

プロパティProperty 説明Description IDID
principalIdprincipalId アプリに割り当てられるユーザーのユーザー IDUser ID of the user that will be assigned to the app 2fe96d23-5dc6-4f35-8222-0426a8c115c82fe96d23-5dc6-4f35-8222-0426a8c115c8
principalTypeprincipalType ユーザーの種類Type of user UserUser
appRoleIdappRoleId アプリの既定のアプリの役割のアプリの役割 IDThe App role ID of the default app role of the app 18d14569-c3bd-439b-9a66-3a2aee01d14f18d14569-c3bd-439b-9a66-3a2aee01d14f
resourceIdresourceId アプリの servicePrincipal IDThe servicePrincipal ID of the app a8cac399-cde5-4516-a674-819503c61313a8cac399-cde5-4516-a674-819503c61313

要求Request

POST https://graph.microsoft.com/beta/servicePrincipals/b00c693f-9658-4c06-bd1b-c402c4653dea/appRoleAssignments

Content-type: appRoleAssignments/json

{
  "principalId": "2fe96d23-5dc6-4f35-8222-0426a8c115c8",
  "principalType": "User",
  "appRoleId":"18d14569-c3bd-439b-9a66-3a2aee01d14f",
  "resourceId":"a8cac399-cde5-4516-a674-819503c61313"
}

応答Response

HTTP/1.1 200
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#appRoleAssignments/$entity",
    "id": "I23pL8ZdNU-CIgQmqMEVyLJ0E6fx0ixEo92az8MnhtU",
    "creationTimestamp": "2020-06-09T00:06:07.5129268Z",
    "appRoleId": "18d14569-c3bd-439b-9a66-3a2aee01d14f",
    "principalDisplayName": "Jean Green",
    "principalId": "2fe96d23-5dc6-4f35-8222-0426a8c115c8",
    "principalType": "User",
    "resourceDisplayName": "Contoso IWA App",
    "resourceId": "a8cac399-cde5-4516-a674-819503c61313"
}

詳細については、「appRoleAssignment」 リソースの種類を参照してください。For more information, see appRoleAssignment resource type.

追加の手順Additional steps