OAuth-Clientanwendung erstellen und aktivieren

Dieser Abschnitt enthält Beispielanforderungen zum Erstellen und Aktivieren einer OAuth-Clientanwendung mit der REST-API für Identitätsdomains.

OAuth-Clientanwendung erstellen

Eine OAuth-Clientanwendung ist ein HTTP-Client, der ein Zugriffstoken anfordern und dann verwenden kann. Es gibt drei Typen von OAuth-Clientanwendungen, die Sie erstellen können: Vertraulich, Vertrauenswürdig und Öffentlich. Sowohl die vertraulichen als auch die vertrauenswürdigen Clientanwendungen werden mit CustomWebAppTemplateId als Wert für das Attribut basedOnTemplate angegeben. Die öffentliche Clientanwendung wird mit CustomBrowserMobileTemplateId als Wert für das Attribut basedOnTemplate angegeben. Die folgenden Beispiele zeigen, wie Sie eine Anforderung erstellen, um jeden der Clientanwendungstypen zu erstellen.

Wenn Sie eine OAuth-Clientanwendung erstellen, die Selfservicevorgänge unterstützt, muss der Clientanwendung die Rolle "Ich" erteilt werden. Wenn Sie dem Client diese Rolle erteilen, wird sichergestellt, dass das generierte Zugriffstoken den Geltungsbereich "urn:opc:idm:t.user.me" enthält. Dieser Geltungsbereich ermöglicht dem Client den Zugriff auf Endpunkte, um Selfservicevorgänge wie /Me, /MyApps usw. auszuführen. Verwenden Sie den Endpunkt /Grants, um einer App eine AppRole zu erteilen.

Hinweis

Wenn Sie das optionale Attribut name in Ihrer Anforderung verwenden, müssen Sie nur alphanumerische Zeichen und den Unterstrich ( _ ) im Wert verwenden.

Vertraulich

{
     "schemas": [
          "urn:ietf:params:scim:schemas:oracle:idcs:App"
        ],
     "displayName": "demoapp",
     "isOAuthClient" : true,
     "description": "demoapp",
     "active": true,
     "clientType": "confidential",
     "basedOnTemplate": {
          "value": "CustomWebAppTemplateId"
     },
     "redirectUris": [
          "http://<fully qualified url>/demoapp/return"
        ],
     "logoutUri": "http://<fully qualified url>/demoapp/logout.jsp",
     "postLogoutRedirectUris": ["http://<fully qualified url>/demoapp/logout.jsp"],
     "allUrlSchemesAllowed": true,
     "allowedScopes": [
                {
                     "fqs": "http://example.com/photos"
                },
                {
                     "fqs": "http://example.com/presentations"
                },
                {
                     "fqs": "http://example.com/documents"
                }
          ],
     "allowedGrants": [
          "authorization_code",
          "client_credentials",
          "password",
          "refresh_token",
          "urn:ietf:params:oauth:grant-type:jwt-bearer"
      ],
    "certificates":[ 
      {
      "certAlias":"SampleOAuthClient_1"
      }
   ]
}
curl -X POST
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps

Vertrauenswürdig

{
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:App"
    ],
    "displayName": "trustedClientApp",
    "isOAuthClient" : true,
    "description": "trusted client",
    "active": true,
    "clientType": "trusted",
     "basedOnTemplate": {
        "value": "CustomWebAppTemplateId"
     },
    "redirectUris": [     
        "http://`hostname -f`:9090/demoapp/return",     
        "http://`hostname -f`:9090/IDCSExample"     
    ],
    "logoutUri": "http://`hostname -f`:9090/demoapp/logout.jsp",
    "postLogoutRedirectUris": ["http://`hostname -f`:9090/demoapp/logout.jsp"],
    "allowedScopes": [
                {
                    "fqs": "http://example.com/photos"
                },
                {
                    "fqs": "http://example.com/presentations"
                },
                {
                    "fqs": "http://example.com/documents"
                }
        ],
    "allowedGrants": [
        "authorization_code",
        "client_credentials",
        "password",
        "refresh_token",
        "urn:ietf:params:oauth:grant-type:jwt-bearer"
    ],
    "certificates":[ 
      {
      "certAlias":"SampleOAuthClient_2"
      }
   ]
}
curl -X POST
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps

Öffentlich

Hinweis

Weitere Informationen zur Verwendung dieses zulässigen Vorgangs beim Erstellen einer öffentlichen OAuth-Clientanwendung finden Sie unter onBehalfOf Allowed Operation.
{
    "schemas": [
        "urn:ietf:params:scim:schemas:oracle:idcs:App"
    ],
    "displayName": "publicClientApp",
    "isOAuthClient" : true,
    "description": "public client",
    "active": true,
    "clientType": "public",
     "basedOnTemplate": {
        "value": "CustomBrowserMobileTemplateId"
     },
    "redirectUris": [     
        "http://`hostname -f`:9090/demoapp/return",     
        "http://`hostname -f`:9090/IDCSPlayground"     
    ],
    "logoutUri": "http://`hostname -f`:9090/demoapp/logout.jsp",
    "postLogoutRedirectUris": ["http://`hostname -f`:9090/demoapp/logout.jsp"],
    "allowedScopes": [
                {
                    "fqs": "http://example.com/photos"
                },
                {
                    "fqs": "http://example.com/presentations"
                },
                {
                    "fqs": "http://example.com/documents"
                }
        ],
    "allowedGrants": [
        "authorization_code",
        "implicit"
    ]
} 
   curl -X POST
   -H "Content-type: application/json"
   -H "Authorization: Bearer <access token value>"
   --data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/Apps

Erforderliche Anwendungsattribute für eine OAuth-Clientanwendung

Erforderliches Anwendungsattribut Beschreibung
displayName Gibt den Anzeigenamen der Anwendung an. Der Anzeigename ist benutzerfreundlich, und ein Administrator kann den Wert jederzeit ändern.
basedOnTemplate Gibt das Anwendungs-Template an, auf dem die Anwendung basiert.
isOAuthClient Wenn diese Option auf true gesetzt ist, wird angegeben, dass diese Anwendung als OAuth-Client fungiert.
clientType Gibt den Zugriffstyp an, den diese App hat, wenn sie als OAuth-Client fungiert. Die möglichen Werte sind confidential, trusted und public.

OAuth-Clientanwendung aktivieren

Verwenden Sie das folgende Beispiel, um eine Anforderung zum Aktivieren einer OAuth Resource Server-Anwendung zu erstellen.

{
        "active" : true,
        "schemas": [
             "urn:ietf:params:scim:schemas:oracle:idcs:AppStatusChanger"
        ]
}
   curl -X PUT 
   -H "Content-type: application/json"
   -H "Authorization: Bearer <access token value>"
   --data @/tmp/OAuthClientApp.json http://<domainURL>/admin/v1/AppStatusChanger/<appID>