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 abrufen und dann verwenden kann. Sie können drei Typen von OAuth-Clientanwendungen erstellen: vertraulich, vertrauenswürdig und öffentlich. Sowohl die vertraulichen als auch die vertrauenswürdigen Clientanwendungen werden angegeben, indem CustomWebAppTemplateId als Wert für das Attribut basedOnTemplate verwendet wird. Die öffentliche Clientanwendung wird angegeben, indem CustomBrowserMobileTemplateId als Wert für das Attribut basedOnTemplate verwendet wird. Die folgenden Beispiele zeigen, wie Sie eine Anforderung erstellen, um die einzelnen 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. Mit diesem Geltungsbereich kann der Client auf Endpunkte zugreifen, um Selfservicevorgänge auszuführen, wie /Me, /MyApps usw. 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 Zulässiger Vorgang.
{
"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 App-Attribute 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 die Anwendungsvorlage an, auf der die Anwendung basiert. |
isOAuthClient
|
Wenn dieser Wert auf true gesetzt ist, bedeutet dies, dass diese Anwendung als OAuth-Client fungiert. |
clientType
|
Gibt den Zugriffstyp an, den diese App hat, wenn sie als OAuth-Client fungiert. Mögliche Werte: 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>