OAuthクライアント・アプリケーションの作成およびアクティブ化

この項では、アイデンティティ・ドメインのREST APIを使用してOAuthクライアント・アプリケーションを作成およびアクティブ化するリクエストの例を示します。

OAuthクライアント・アプリケーションの作成

OAuthクライアント・アプリケーションは、アクセス・トークンを取得して使用するHTTPクライアントです。作成可能なOAuthクライアント・アプリケーションには、Confidential、Trusted、Publicの3種類があります。機密およびトラステッド・クライアント・アプリケーションはいずれも、basedOnTemplate属性の値としてCustomWebAppTemplateIdを使用することにより指定されます。パブリック・クライアント・アプリケーションは、basedOnTemplate属性の値としてCustomBrowserMobileTemplateIdを使用することにより指定されます。次の例では、各クライアント・アプリケーション・タイプを作成するためのリクエストを作成する方法を示しています。

セルフサービスの操作をサポートするOAuthクライアント・アプリケーションを構築する場合は、クライアント・アプリケーションに"Me"ロールを付与する必要があります。クライアントにこのロールを付与すると、生成されたアクセス・トークンにスコープ"urn:opc:idm:t.user.me"が含まれます。このスコープにより、クライアントはエンドポイントにアクセスして、/Me, /MyAppsなどのセルフサービスの操作を実行できます。/Grantsエンドポイントを使用して、AppRoleをアプリケーションに付与します。

ノート

リクエストでオプションのname属性を使用している場合、値では英数字およびアンダースコア( _ )文字のみを使用するようにしてください。

機密

{
     "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

信頼できる

{
    "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

公開

ノート

パブリックOAuthクライアント・アプリケーションを作成するときに、この許可される操作を使用する方法の詳細は、onBehalfOf許可される操作を参照してください。
{
    "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

OAuthクライアント・アプリケーションに必要なアプリケーション属性

必要なアプリケーション属性 説明
displayName アプリケーションの表示名を識別します。表示名はユーザーにとってわかりやすいことを目的とし、管理者が値をいつでも変更できます。
basedOnTemplate アプリケーションの基礎になっているアプリケーション・テンプレートを示します。
isOAuthClient trueに設定した場合は、このアプリケーションがOAuthクライアントとして機能することを示します。
clientType このアプリケーションがOAuthクライアントとして機能する場合に所有するアクセスのタイプを指定します。指定可能な値は、confidential, trustedおよびpublic.です

OAuthクライアント・アプリケーションのアクティブ化

次の例を使用して、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>