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.
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
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>