Application 連携 API

Prev Next

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_typecodeの場合

    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_challengecode_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_typetokenの場合

    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_typecodeの場合

    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_typetokenの場合

    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_typeauthorization_codeの場合に使用 IDPが送信した Authorization code
    redirect_uri String 選択 grant_typeauthorization_codeの場合に使用 権限付与リクエスト時に含めた redirect_uri
    scope String 選択 grant_typerefresh_tokenの場合に使用 修正する scope
    code_verifier String 選択 grant_typeauthorization_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_typeSubの場合、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 認証されたユーザーに対するクレーム返却