Application 連携 API
    • PDF

    Application 連携 API

    • PDF

    Article Summary

    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 AliasString必須-Tenant作成時に発行された Tenant IDまたは Tenant Alias
    • リクエストパラメータ

      パラメータ名タイプ要否制約事項説明
      response_typeString必須codeまたは tokenAuthorization Codeまたは Implicitフロー進行時に必要な値
      client_idString必須-Applicationの登録時に発行された Client ID
      redirect_uriString必須Applicationの登録時に入力した Redirect URIと必ず一致権限付与完了後に遷移されるページの URL
      scopeString必須-アクセス可能範囲。追加範囲をリクエストするには、一つ以上の範囲値を空白で区分して含める。
      stateString選択-CSRFを防御するための任意の値。state権限付与完了後、stateを含めて redirect_uriに入力したページに遷移
      code_challengeString選択-PKCEの適用時に必要な code_challengeの値
      code_challenge_methodString選択plain または S256PKCEの適用時に必要な 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_uriString必須リクエスト時に含めた redirect_uri権限付与完了後に遷移されるページの URL
      codeString必須流出の危険を防ぐために、1分後に有効期限切れIDPで作成した Authorization code
      stateString選択-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_uriString必須リクエスト時に含めた redirect_uri権限付与完了後に遷移されるページの URL
      access_tokenString必須-権限が付与された Access Token
      expires_inNumber必須-Access Tokenの有効期間
      stateString選択-Clientがリクエストした値

    Tokenの発行

    アクセス権限付与後、資格証明のための Tokenの発行に必要な APIについて説明します。

    リクエスト

    権限付与後、または Refresh Tokenを使用して Access Tokenや ID Tokenの発行のために送信するリクエストは次の通りです。

    POST /tenants/{Tenant Id or Alias}/oauth2/token
    
    • リクエスト Path

      パラメータ名タイプ要否制約事項説明
      Tenant Id or AliasString必須-Tenant作成時に発行された Tenant IDまたは Tenant Alias
    • リクエストヘッダ

      ヘッダ名タイプ要否制約事項説明
      AuthorizationString必須Basic Base64({Client Id}:{Client Secret})Client識別子
      Content-TypeString必須application/x-www-form-urlencodedリソースのメディアタイプ
    • リクエストパラメータ

      パラメータ名タイプ要否制約事項説明
      grant_typeString必須authorization_codeまたは refresh_tokenTokenの返却方式
      codeString選択grant_typeauthorization_codeの場合に使用IDPが送信した Authorization code
      redirect_uriString選択grant_typeauthorization_codeの場合に使用権限付与リクエスト時に含めた redirect_uri
      scopeString選択grant_typerefresh_tokenの場合に使用修正する scope
      code_verifierString選択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_tokenString必須-権限が付与された Access Token
    token_typeString必須BearerTokenの形式
    expires_inNumber必須-Access Tokenの有効期間
    refresh_tokenString必須-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 AliasString必須-Tenant作成時に発行された Tenant IDまたは Tenant Alias
    • リクエストヘッダ

      ヘッダ名タイプ要否制約事項説明
      AuthorizationString必須Basic Base64({Client Id}:{Client Secret})Client識別子
      Content-TypeString必須application/x-www-form-urlencodedリソースのメディアタイプ
    • リクエストパラメータ

      パラメータ名タイプ要否制約事項説明
      tokenString必須-キャンセルしたい Token
      token_type_hintString必須access_tokenまたは refresh_tokenキャンセルしたい Tokenのタイプ

    レスポンス

    リクエストに対するレスポンスは次の通りです。

    {
      "status": "ok"
    }
    

    認証されたユーザーのクレーム返却

    認証されたユーザーに対してのクレームを返却するために必要な APIについて説明します。

    リクエスト

    ユーザーのクレームを返却するために送信するリクエストは、次の通りです。

    POST /tenants/{Tenant Id or Alias}/oauth2/userinfo
    
    • リクエスト Path

      パラメータ名タイプ要否制約事項説明
      Tenant Id or AliasString必須-Tenant作成時に発行された Tenant IDまたは Tenant Alias
    • リクエストヘッダ

      ヘッダ名タイプ要否制約事項説明
      AuthorizationString必須Bearer {AccessToken}Client識別子

    レスポンス

    リクエストに対するレスポンスは次の通りです。

    {
      "sub" : "String",
      "id_no" : "String",
      "user_type" : "String",
      "user_id": "String",
      "user_name" : "String",
      "mbr_no" : "Number"
      "groups" : "List"
    }
    
    パラメータ名タイプ要否制約事項説明
    subString必須-Subject(end-user)識別子
    id_noString必須-NAVERクラウドプラットフォームで使用されるユーザー識別子
    user_typeString必須Customerまたは Subユーザータイプ
    user_idString必須-ログイン ID
    user_nameString必須-ユーザー名
    mbr_noNumber必須-ユーザーの会員番号
    groupsList選択-user_typeSubの場合、subAccountが属したグループ名リスト

    ID Token署名キーの返却

    ID Tokenの署名に使用される公開キーを返却する際に必要な APIについて説明します。

    リクエスト

    ID Tokenの署名に使用される公開キーを返却するために送信するリクエストは次の通りです。

    GET /tenants/{Tenant Id or Alias}/oauth2/jwks
    
    • リクエスト Path

      パラメータ名タイプ要否制約事項説明
      Tenant Id or AliasString必須-Tenant作成時に発行された Tenant IDまたは Tenant Alias

    レスポンス

    リクエストに対するレスポンスは次の通りです。

    {
      "keys" : [ {
        "kty" : "String",
        "e" : "String",
        "kid" : "String",
        "n" : "String"
      } ]
    }
    
    パラメータ名タイプ要否制約事項説明
    ktyString必須-IETF Datatrackerの Key Typeを参照
    eString必須-IETF Datatrackerの RSA Exponentを参照
    kidString必須-IETF Datatrackerの Key IDを参照
    nString必須-IETF Datatrackerの RSA Modulusを参照

    Endpoint

    APIの Endpointは次の通りです。

    EndpointURI Path説明
    Authorization Endpoint/tenants/{Tenant Id or Alias}/oauth2/authorizeClientが 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/revokeAccess Tokenまたは Refresh Tokenをキャンセル
    User Info Endpoint/tenants/{Tenant Id or Alias}/oauth2/userinfo認証されたユーザーに対するクレーム返却

    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.