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