--- title: "Application 連携 API" slug: "sso-integration-api" tags: ["Ncloud Single Sign-On"] updated: 2026-09-17T09:28:51Z published: 2026-09-17T09:28:51Z canonical: "guide.ncloud-docs.com/sso-integration-api" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Application 連携 API Classic/VPC環境で利用できます。 登録した Application Single Sign-Onに連携する方法を説明します。Single Sign-Onで提供する連携 APIを通じて連携します。Single Sign-Onの連携 APIが提供する機能は次の通りです。 - [権限付与](/docs/ja/sso-integration-api#%EA%B6%8C%ED%95%9C%EB%B6%80%EC%97%AC) - [Tokenの発行](/docs/ja/sso-integration-api#Token%EB%B0%9C%EA%B8%89) - [Tokenのキャンセル](/docs/ja/sso-integration-api#Token%EC%B7%A8%EC%86%8C) - [認証されたユーザーのクレーム返却](/docs/ja/sso-integration-api#%EC%9D%B8%EC%A6%9D%EB%90%9C%EC%82%AC%EC%9A%A9%EC%9E%90%EC%9D%98%ED%81%B4%EB%A0%88%EC%9E%84%EB%B0%98%ED%99%98) - [ID Token署名キーの返却](/docs/ja/sso-integration-api#IDToken%EC%84%9C%EB%AA%85%ED%82%A4%EB%B0%98%ED%99%98) 参考 - Single Sign-Onの連携 APIを使用する前に、OAuth 2.0に関する主な概念を [Single Sign-Oneとは](/docs/ja/sso-integration-info)で確認することをお勧めします。 - ここでは、Single Sign-Onの連携時使用する APIのみ説明します。NAVERクラウドプラットフォームの Single Sign-Onが提供する全体 APIに関する説明は、[Single Sign-On APIガイド](https://api.ncloud-docs.com/docs/ja/single-sign-on-overview)をご参照ください。 ## 権限付与 Resource Ownerと相互作用し、保護されているリソースにアクセスする権限を付与されるために必要な APIについて説明します。 ### リクエスト Clientが保護されているリソースにアクセスできるように IDPに送信するリクエストは次の通りです。 ``` GET /tenants/{Tenant Id or Alias}/oauth2/authorize ``` - リクエスト Path | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Tenant Id or Alias` | String | 必須 | - | Tenant作成時に発行された Tenant IDまたは Tenant Alias | - リクエストパラメータ | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `response_type` | String | 必須 | `code`または `token` | Authorization Codeまたは Implicitフロー進行時に必要な値 | | `client_id` | String | 必須 | - | Applicationの登録時に発行された Client ID | | `redirect_uri` | String | 必須 | Applicationの登録時に入力した Redirect URIと必ず一致 | 権限付与完了後に遷移されるページの URL | | `scope` | String | 必須 | - | アクセス可能範囲。追加範囲をリクエストするには、一つ以上の範囲値を空白で区分して含める。 | | `state` | String | 選択 | - | CSRFを防御するための任意の値。state権限付与完了後、stateを含めて `redirect_uri`に入力したページに遷移 | | `code_challenge` | String | 選択 | - | PKCEの適用時に必要な code_challengeの値 | | `code_challenge_method` | String | 選択 | `plain` または `S256` | PKCEの適用時に必要な Code Challenge Methodの値 | 例は次の通りです。 - `response_type`が `code`の場合 ``` GET /tenants/{Tenant Id or Alias}/oauth2/authorize?client_id=${Client Id}&scope=${Scope}&response_type=code&redirect_uri=${Redirect URI}&state=${State} HTTP/1.1 Host: sso.ncloud.com ``` - `code_challenge`と `code_challenge_method`を追加して権限付与をリクエストした場合 ``` GET /tenants/{Tenant Id or Alias}/oauth2/authorize?client_id=${Client Id}&scope=${Scope}&response_type=code&redirect_uri=${Redirect URI}&state=${State}&code_challenge=${Code Challenge}&code_challenge_method=${Code Challenge Method} HTTP/1.1 Host: sso.ncloud.com ``` - `response_type`が `token`の場合 ``` GET /tenants/{Tenant Id or Alias}/oauth2/authorize?client_id=${Client Id}&scope=${Scope}&response_type=token&redirect_uri=${Redirect URI}&state=${State} HTTP/1.1 Host: sso.ncloud.com ``` ### レスポンス リクエストに対するレスポンスは次の通りです。 - `response_type`が `code`の場合 ``` HTTP/1.1 302 Found Location: {Redirect URI} ?code=${Authorization code} &state=${State} ``` | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `redirect_uri` | String | 必須 | リクエスト時に含めた `redirect_uri` | 権限付与完了後に遷移されるページの URL | | `code` | String | 必須 | 流出の危険を防ぐために、1分後に有効期限切れ | IDPで作成した Authorization code | | `state` | String | 選択 | - | Clientがリクエストした値 | - `response_type`が `token`の場合 ``` HTTP/1.1 302 Found Location: {Redirect URI} ?access_token={Access Token} &token_type=Bearer &expires_in={Access Token Expire Date} &state={State} ``` | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `redirect_uri` | String | 必須 | リクエスト時に含めた `redirect_uri` | 権限付与完了後に遷移されるページの URL | | `access_token` | String | 必須 | - | 権限が付与された Access Token | | `expires_in` | Number | 必須 | - | Access Tokenの有効期間 | | `state` | String | 選択 | - | Clientがリクエストした値 | ## Tokenの発行 アクセス権限付与後、資格証明のための Tokenの発行に必要な APIについて説明します。 ### リクエスト 権限付与後、または Refresh Tokenを使用して Access Tokenや ID Tokenの発行のために送信するリクエストは次の通りです。 ``` POST /tenants/{Tenant Id or Alias}/oauth2/token ``` - リクエスト Path | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Tenant Id or Alias` | String | 必須 | - | Tenant作成時に発行された Tenant IDまたは Tenant Alias | - リクエストヘッダ | ヘッダ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Authorization` | String | 必須 | Basic Base64`({Client Id}:{Client Secret})` | Client識別子 | | `Content-Type` | String | 必須 | `application/x-www-form-urlencoded` | リソースのメディアタイプ | - リクエストパラメータ | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `grant_type` | String | 必須 | `authorization_code`または `refresh_token` | Tokenの返却方式 | | `code` | String | 選択 | `grant_type`が `authorization_code`の場合に使用 | IDPが送信した Authorization code | | `redirect_uri` | String | 選択 | `grant_type`が `authorization_code`の場合に使用 | 権限付与リクエスト時に含めた `redirect_uri` | | `scope` | String | 選択 | `grant_type`が `refresh_token`の場合に使用 | 修正する `scope` | | `code_verifier` | String | 選択 | `grant_type`が `authorization_code`の場合に使用されます。過去に付与した `scope`の範囲と同じかそれ以下である必要があります | 権限付与リクエスト時に含めた`code_challenge`, `code_challenge_method`に対応する値 | 例は次の通りです。 - 権限付与後に Authorization codeを含めて Access Tokenの発行をリクエストする場合 ``` POST /tenants/{Tenant Id or Alias}/oauth2/token HTTP/1.1 Host: sso.ncloud.com Authorization: Basic Base64(${Client Id}:${Client Secret}) Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=${Authorization code}&redirect_uri=${Redirect URI} ``` - 権限付与後に Access Tokenの発行リクエストに `code_verifier`が含まれている場合 ``` POST /tenants/{Tenant Id or Alias}/oauth2/token HTTP/1.1 Host: sso.ncloud.com Authorization: Basic Base64(${Client Id}:${Client Secret}) Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=${Authorization code}&redirect_uri=${Redirect URI}&code_verifier=${Code Verifier} ``` - Refresh Tokenで Access Tokenの発行をリクエストする場合 ``` POST /tenants/{Tenant Id or Alias}/oauth2/token HTTP/1.1 Host: sso.ncloud.com Authorization: Basic Base64(${Client Id}:${Client Secret}) Content-Type: application/x-www-form-urlencoded grant_type=refresh_token&refresh_token=${Refresh Token}&scope=${Scope} ``` ### レスポンス リクエストに対するレスポンスは次の通りです。 ``` { "access_token": "String", "token_type": "Bearer", "expires_in": "Number", "refresh_token": "String" } ``` | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `access_token` | String | 必須 | - | 権限が付与された Access Token | | `token_type` | String | 必須 | Bearer | Tokenの形式 | | `expires_in` | Number | 必須 | - | Access Tokenの有効期間 | | `refresh_token` | String | 必須 | - | Access Token発行時に使用される Refresh Tokenの値 | ## Tokenのキャンセル Access Tokenまたは Refresh Tokenをキャンセルする時に必要な APIについて説明します。 ### リクエスト Access Tokenまたは Refresh Tokenをキャンセルするために送信するリクエストは次の通りです。 ``` POST /tenants/{Tenant Id or Alias}/oauth2/revoke ``` - リクエスト Path | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Tenant Id or Alias` | String | 必須 | - | Tenant作成時に発行された Tenant IDまたは Tenant Alias | - リクエストヘッダ | ヘッダ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Authorization` | String | 必須 | Basic Base64`({Client Id}:{Client Secret})` | Client識別子 | | `Content-Type` | String | 必須 | `application/x-www-form-urlencoded` | リソースのメディアタイプ | - リクエストパラメータ | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `token` | String | 必須 | - | キャンセルしたい Token | | `token_type_hint` | String | 必須 | `access_token`または `refresh_token` | キャンセルしたい Tokenのタイプ | ### レスポンス リクエストに対するレスポンスは次の通りです。 ``` { "status": "ok" } ``` ## 認証されたユーザーのクレーム返却 認証されたユーザーに対してのクレームを返却するために必要な APIについて説明します。 ### リクエスト ユーザーのクレームを返却するために送信するリクエストは、次の通りです。 ``` POST /tenants/{Tenant Id or Alias}/oauth2/userinfo ``` - リクエスト Path | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Tenant Id or Alias` | String | 必須 | - | Tenant作成時に発行された Tenant IDまたは Tenant Alias | - リクエストヘッダ | ヘッダ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Authorization` | String | 必須 | Bearer `{AccessToken}` | Client識別子 | ### レスポンス リクエストに対するレスポンスは次の通りです。 ``` { "sub" : "String", "id_no" : "String", "user_type" : "String", "user_id": "String", "user_name" : "String", "mbr_no" : "Number" "groups" : "List" } ``` | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `sub` | String | 必須 | - | Subject(end-user)識別子 | | `id_no` | String | 必須 | - | NAVERクラウドプラットフォームで使用されるユーザー識別子 | | `user_type` | String | 必須 | `Customer`または `Sub` | ユーザータイプ | | `user_id` | String | 必須 | - | ログイン ID | | `user_name` | String | 必須 | - | ユーザー名 | | `mbr_no` | Number | 必須 | - | ユーザーの会員番号 | | `groups` | List | 選択 | - | `user_type`が`Sub`の場合、subAccountが属したグループ名リスト | ## ID Token署名キーの返却 ID Tokenの署名に使用される公開キーを返却する際に必要な APIについて説明します。 ### リクエスト ID Tokenの署名に使用される公開キーを返却するために送信するリクエストは次の通りです。 ``` GET /tenants/{Tenant Id or Alias}/oauth2/jwks ``` - リクエスト Path | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `Tenant Id or Alias` | String | 必須 | - | Tenant作成時に発行された Tenant IDまたは Tenant Alias | ### レスポンス リクエストに対するレスポンスは次の通りです。 ``` { "keys" : [ { "kty" : "String", "e" : "String", "kid" : "String", "n" : "String" } ] } ``` | パラメータ名 | タイプ | 要否 | 制約事項 | 説明 | | --- | --- | --- | --- | --- | | `kty` | String | 必須 | - | IETF Datatrackerの [Key Type](https://datatracker.ietf.org/doc/html/rfc7517#section-4.1)を参照 | | `e` | String | 必須 | - | IETF Datatrackerの [RSA Exponent](https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.1.2)を参照 | | `kid` | String | 必須 | - | IETF Datatrackerの [Key ID](https://datatracker.ietf.org/doc/html/rfc7517#section-4.5)を参照 | | `n` | String | 必須 | - | IETF Datatrackerの [RSA Modulus](https://datatracker.ietf.org/doc/html/rfc7518#section-6.3.1.1)を参照 | ## Endpoint APIの Endpointは次の通りです。 | Endpoint | URI Path | 説明 | | --- | --- | --- | | Authorization Endpoint | `/tenants/{Tenant Id or Alias}/oauth2/authorize` | Clientが Resource Ownerと相互作用して保護されているリソースにアクセスできる権限付与リクエスト | | Token Endpoint | `/tenants/{Tenant Id or Alias}/oauth2/token` | アクセス権限または Refresh Tokenを通じて Access Token、ID Tokenを発行 | | Token Revocation Endpoint | `/tenants/{Tenant Id or Alias}/oauth2/revoke` | Access Tokenまたは Refresh Tokenをキャンセル | | User Info Endpoint | `/tenants/{Tenant Id or Alias}/oauth2/userinfo` | 認証されたユーザーに対するクレーム返却 |