Criando e Ativando um Aplicativo Cliente OAuth
Esta seção fornece exemplos de solicitações para criar e ativar um Aplicativo Cliente OAuth usando a API REST dos domínios de identidade.
Criar um Aplicativo Cliente OAuth
Um aplicativo cliente OAuth é um cliente HTTP que pode adquirir e, em seguida, usar um token de acesso. Há três tipos de aplicativos cliente OAuth que você pode criar: Confidencial, Confiável e Público. Os aplicativos clientes confidenciais e confiáveis são especificados usando CustomWebAppTemplateId
como o valor do atributo basedOnTemplate
. O aplicativo cliente público é especificado usando CustomBrowserMobileTemplateId
como o valor do atributo basedOnTemplate
. Os exemplos a seguir mostram como criar uma solicitação para criar cada um dos tipos de aplicativo cliente.
Se você estiver criando um Aplicativo Cliente OAuth que suporte operações de autoatendimento, o aplicativo cliente deverá receber a atribuição "Eu". A concessão ao cliente dessa atribuição garante que o token de acesso gerado contenha o escopo "urn:opc:idm:t.user.me"
. Esse escopo permite que o cliente acesse pontos finais para executar operações de autoatendimento, como /Me,
/MyApps
, etc. Use o ponto final /Grants
para conceder um AppRole a um aplicativo.
Se você estiver usando o atributo
name
opcional em sua solicitação, certifique-se de usar apenas caracteres alfanuméricos e o caractere de sublinhado ( _ ) no valor.Confidencial
{
"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
Confiável
{
"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
Público
Consulte onBehalfOf Operação Permitida para obter mais informações sobre o uso dessa operação permitida ao criar um aplicativo Cliente OAuth público.
{
"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
Atributos de Aplicativo Obrigatórios para um Aplicativo Cliente OAuth
Atributo de Aplicativo Obrigatório | Descrição |
---|---|
displayName
|
Identifica o nome para exibição do aplicativo. O nome de exibição deve ser amigável e um administrador pode alterar o valor a qualquer momento. |
basedOnTemplate
|
Indica o modelo de aplicativo no qual o aplicativo se baseia. |
isOAuthClient
|
Se definido como true , indica que esse aplicativo atua como um Cliente OAuth. |
clientType
|
Especifica o tipo de acesso que este Aplicativo tem quando atua como um Cliente OAuth. Os valores possíveis são confidential, trusted e public. |
Ativar um Aplicativo Cliente OAuth
Use o exemplo a seguir para criar uma solicitação para ativar um aplicativo do Servidor de Recursos OAuth.
{
"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>