- 印刷する
- PDF
Application 連携 API
- 印刷する
- PDF
Classic/VPC環境で利用できます。
登録した Application Single Sign-Onに連携する方法を説明します。Single Sign-Onで提供する連携 APIを通じて連携します。Single Sign-Onの連携 APIが提供する機能は次の通りです。
- Single Sign-Onの連携 APIを使用する前に、OAuth 2.0に関する主な概念を Single Sign-Oneとはで確認することをお勧めします。
- ここでは、Single Sign-Onの連携時使用する APIのみ説明します。NAVERクラウドプラットフォームの Single Sign-Onが提供する全体 APIに関する説明は、Single Sign-On APIガイドをご参照ください。
権限付与
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を参照 |
e | String | 必須 | - | IETF Datatrackerの RSA Exponentを参照 |
kid | String | 必須 | - | IETF Datatrackerの Key IDを参照 |
n | String | 必須 | - | IETF Datatrackerの RSA Modulusを参照 |
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 | 認証されたユーザーに対するクレーム返却 |